From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14D06C433FE for ; Wed, 9 Nov 2022 13:18:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 890876B0072; Wed, 9 Nov 2022 08:18:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 840046B0073; Wed, 9 Nov 2022 08:18:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B9818E0001; Wed, 9 Nov 2022 08:18:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5CC8D6B0072 for ; Wed, 9 Nov 2022 08:18:19 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A11261A0AD0 for ; Wed, 9 Nov 2022 13:18:18 +0000 (UTC) X-FDA: 80113957476.24.9FACF11 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf25.hostedemail.com (Postfix) with ESMTP id 31305A0013 for ; Wed, 9 Nov 2022 13:18:09 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2A9Csrp9017508; Wed, 9 Nov 2022 13:17:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=CDg/f3ANrIy5rpLC4QQWmsrbKI9RpzB8KwjMU74km8A=; b=3H+GNzOPz3qR6j+uBmK29LhLKERNADD7XPgx2a4HpYnAui2eehcOKEMnioUmIkrqHQtb gIV4hHyr/kw+Eqih1tGx72hHQT8WAypbRvDlUwHWdjSgQKNXAhKPUePLum6vKg4ehUPj vIMsKMlO6ZBEq/LhLvb4RRP0Qf5RBcta+eYGs+WwJTcY++mCcrWe8oipnHxbOJmcSxuz jFSbCYHDnjj/oX850nbKEmTuTSXUhxbkm0mav1WYXDczT7XxHNiFzpwKXzNC1tYi6fT3 fxoAOt0ygFN6y0wlqemPRPwSnk77LUIsPOKr/RMtH1wIfzQEEdjWN7J54IkR9Y8nKywb rQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3krcmkg333-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Nov 2022 13:16:58 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2A9CFtmE000306; Wed, 9 Nov 2022 13:15:43 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2106.outbound.protection.outlook.com [104.47.70.106]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3kpcsexs1g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Nov 2022 13:15:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TYlma2xdrPeN+eXdvlRz6UyoqNG/GmU/vxZPcrunQHx3V2+wseAy0z0Sbc+5GJNdsawYd3Ch6VKTiVjsTr22hsNt/rUYbv7bUxjOXXFaaIuylsW3HkFTLg1yGBtqE1yazCIa1aGP5zZvWdYzX4rElTQsc7i4HQLQ5Pp3x8l6dMK8tm3/YfiQd8J+9xpWkc8B8meLw5Hj4ki1ARlokMWEUaq+HorQjwaNvLVY8PhKjKXBFyfe0ifz43kYjwCxrXBID2eUsmSY376pVK4nlPe3S8xrXbrNXjA/XU1xKlSaCZLr3t+/IVvNBb6DL8gLQOrPHwQG0bhv3t0nG+AbIlbTPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CDg/f3ANrIy5rpLC4QQWmsrbKI9RpzB8KwjMU74km8A=; b=e0nPjmFtwi5OV1GMAIiY1KcyiGy0KxjMlF8dowVhk67GiKosm6l//Adi9j6b0qIcQR9guK1O530UlFjh0dBN/tG7dMGzbUgt8mr/Npkc7AIKdQW+PSFI7dD+d4kJ2GzXVoWNr3jRoOUl5uxQ/16M+sd1ZCVBM5fBxqTwKh7Kz3Cnfh2nILQVeIv96V3B4dcVvOoXIUplo7sN01xybDBoKjat37VKKG1MwOfuDSKv8Jd4/Krf6tRnfYnOmZhOmpbWqDFkWFDCHGNUKCp03TzvfvUQNqm03wBMgbXqBW+ZvkZc4/CLRgP0/iibfBXFYqdEYaUthPx4dEG2hWhn+gggFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CDg/f3ANrIy5rpLC4QQWmsrbKI9RpzB8KwjMU74km8A=; b=Tt3kqkiEk6GLofWa/7V1lDyoh9X4j8xC0m08FbFBR0dUgDDiWdBFXjEGpN21vQYMEj/+lRP6SEgB9989VilHIkAcnP/krawPpQrd+CJk7dPrK3r4ErQc6HMc3L8TPbZkg+LBGjFY6GPZF1JDBBiXOVPy4n7/m3DCuSbvMTaAK2Q= Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by PH0PR10MB5684.namprd10.prod.outlook.com (2603:10b6:510:149::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27; Wed, 9 Nov 2022 13:15:41 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::29f3:99bc:a5f0:10ec]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::29f3:99bc:a5f0:10ec%2]) with mapi id 15.20.5791.027; Wed, 9 Nov 2022 13:15:41 +0000 Message-ID: <1dcf6d8c-dcb0-4f52-8fcc-9aa56bd0cdd6@oracle.com> Date: Wed, 9 Nov 2022 13:15:36 +0000 Subject: Re: [PATCH v2] mm/hugetlb_vmemmap: remap head page to newly allocated page Content-Language: en-US To: Muchun Song Cc: Linux Memory Management List , Muchun Song , Mike Kravetz , Andrew Morton References: <20221107153922.77094-1-joao.m.martins@oracle.com> <28F33F85-1DCC-49B5-95A5-B005A7B11E57@linux.dev> <8482a2e8-89fb-bb20-6b83-81c548bff639@oracle.com> From: Joao Martins In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM0PR02CA0035.eurprd02.prod.outlook.com (2603:10a6:208:3e::48) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLAPR10MB4835:EE_|PH0PR10MB5684:EE_ X-MS-Office365-Filtering-Correlation-Id: db6f4b13-b075-447d-f119-08dac254806e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CiL6VCW44t63nG4uu/7mQJqmbsY+x0zZHJCvJXzX02waF7h6RyhQVa1CVhEbDmaZcl7wvPNJb7zHICKEe7Inxnx4B58Ma5m4euuwjMCGH+cQHMpOFL4Nu94CHqbIyX1m+dlyicLO1yN15mhkioLXLHKoC5UPY3KkJcQHmI5Y/fcYtiOY7yC3qHcJNQnIrXd0++sCf/Fxo6VXvtPVw+T6s0rmDv0k3skw76bnoBOZ7FU6I4pm/nKj9ShVVIU/hRyvYbFRiD+kzDGF72GO/nwIAPbi05SZumt0TKggWDQmPwyvogief+ivhNVCx9a5B+rLoVE4U9G90iCpZCdy4Tz3t0bt0bp+7pKZ7JmSHLv8mYxKZ5Jqj72+uL8Cc/aE4MLDgVQ+qycTTbOWjsVlUNJ33Fv/8jH/MlsYuRo7M2OyqSFNiUUS8oMep5CKtrYE8cO50xfKqeZM6QoA4Gxe0diw4epPyNlgp0G29YwbSMP/7KNqL0GgVrqMT8RwYzChU6oMeoiqzN21OWaSkiTfU1fwmVv/9L9SSgkSCoyCRcZJK3p5KYSvnFJqIqMng7Qkr1xySB5vFm3aw/Zgu473K7Cxg74FM0MFfqRVhYkEALR4AwV4IVT2pQ7SKx/29QaVSGUx5sP3XYVeRkRy/2a8QznTof9YCDJuJ5jiq18ys0ugk7rT9fUGwibjc5DoKUcbygC6JpzRl5Dxw/rgDwtBZGDhH9dE912ySJJ5xEnkHMlkmr/hSXPtzigm1dTR0QFaKQWD X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB4835.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(376002)(39860400002)(396003)(346002)(366004)(451199015)(66476007)(5660300002)(66946007)(66556008)(8936002)(478600001)(41300700001)(36756003)(31696002)(86362001)(2906002)(83380400001)(6486002)(186003)(6666004)(26005)(6512007)(2616005)(6506007)(316002)(53546011)(54906003)(8676002)(4326008)(6916009)(38100700002)(31686004)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NHZOcFEyVHBYbzhiakU1NEUxQmx5MUJSb1J1ai95MzZZTEdvVjhtaFFaRStn?= =?utf-8?B?T2lqWWNMWFdycFk3c01jM3BXVDVHV1ZQOW92aGpsUHl5MG1wOXh1RmFrUksv?= =?utf-8?B?UTB3ZVFiWnByZ3paT3ZndjNwYlBPQ0VVdERTR2cxK2JCcHBtZWhuTm5sYlk1?= =?utf-8?B?bEU4K3ZyeWFwMmp1WEJTMHgrSDdMRGFRYnJNaDFYQlp6Sk14WlpMenNRT3dr?= =?utf-8?B?WEJJbGNMU00rWTdLeFdNWXZDUGdncDVBdXRDVjc4UEQ1bUNwL0VlRitvbVBG?= =?utf-8?B?UW1VRUdjY2thSTBheGlUdkptV1dvS3hlYmNyV1hkVGxKQW1jYWR4cjNmMUpu?= =?utf-8?B?WmQyRmcwcFVzNlNCM2xxdVBxdHlmd3JYRVlQV2dnck5IM0w0UUJFTk9nSmtZ?= =?utf-8?B?Q29sODN2SHR0US8vUEZtTGxLUEFYU05tRElFTHNCVHlMSGt0eUpEdTluNU5G?= =?utf-8?B?MXFGejZ0ck5qOHhDVlVzeWdjVVRCSTNGM3U4NExBRStPWHVPbTlIUy9jczJy?= =?utf-8?B?U1FMQ1NYbzN6YU5PZHR6Z3cwc1U2bkltcTRzUE1GWVdIMmJaZFBGeVh5OUti?= =?utf-8?B?em1EbkdlendRRnB2REdUTXlGNWZ6bDBoSVg1SmRkWFVRdE9CL2EyRjhEQU1N?= =?utf-8?B?bTNhenpySDJndFJWWTFpdnhySnNnWTVobHZjSEJyQ1kzbjFuZjdReGs0NjZD?= =?utf-8?B?VjIrWW9DL053L1FoSE1FcDA1aHVUQ3lwZVpaaDc3Y3BQcWFSanN2Mlk4QjdO?= =?utf-8?B?L1RRTE9ldzY4U2Z4Um1nNnZyZVhwQ3lRem93dTRVT1Z6RG4rZTR4L3gxQlF1?= =?utf-8?B?YitiejROMzl5dXlBa242ZzM1ZXlJRm82VWhLc2VISjlVYUFsS0V6RXlvQmt4?= =?utf-8?B?NUpqOVd6VUVaRzNnVDFvY2l6ckQ5ajZIby80dlVtakxhdVc3UzNUd3hHbU56?= =?utf-8?B?QldwOXMyZDZkVXRDZFRraHo5a3JJbDB2Ynp3c3R0bEc2U3AxS3k4NTg1cHpV?= =?utf-8?B?MDlQdXlHLy83ZmJ1ME1mckR0NzVpb3NMOEFDbzhyclVlOVBYZTM0cFNVQVJj?= =?utf-8?B?RzEyZG12YkFQVlVISWxBbjVpSTZpbmVDS3B1dXJXZ21aUUJac1dRSEhsSTdh?= =?utf-8?B?Q1k5KzRkM1FXdUdsREd3eEU1VnRWb2dYQlo5d0JqMVk3azhWQzlMZE9iQ2tQ?= =?utf-8?B?YWFONU5MSU1xb3JRTjRpcHhlcjV1d1hINnllbXlHUUQvUStPMlBxMHQzWXQ1?= =?utf-8?B?NVNUaWxHbFpDUnVqTUJHeCtNdzc5Um9tUFhFOGczaUQwaWZlNzJRRVlTUkd5?= =?utf-8?B?ayt0VEk1cVZURnFIRk4wV1U4T2txbzJKVXhJazlGUnd5WVpObnJrZEp4WFlF?= =?utf-8?B?U05UckxVb0ZZMU1GcUpqdkVpN2tCV1FqSTF0SFk0bkVvcW9hUFJQMUxUSzFN?= =?utf-8?B?RGJnaE9lU3hBSkpMMkp2Y2E0Z3dRZi9EaGtra0RjbTB2c05Pb1pZbk5QWEta?= =?utf-8?B?VEQzUDl2amU2VXVzZkpENUsvYUt4OS84UXNtSDRlSDJoSmxNaXdQTklrUWcz?= =?utf-8?B?TjBqcjJXenoyU2orZkJhUGpJTVZVczVtT09TNHRuTkVzcHorK0tReUNjYW93?= =?utf-8?B?dzdKUEkybzJXaW4xZk12QzNwU1grL29BMUVBbTBIV2dHTm0wd0RIS2l3N2tz?= =?utf-8?B?RU4vMDNPU0psOEdtMXdIandtVk5qcVZYL3BYSzBMSkp4bEh3WS83WlQ0WmdB?= =?utf-8?B?dUlyNHRUT041UVhsVEtpS290Tk04RDIvR253RGY3UzVoVmJPNmptZHRPVjN5?= =?utf-8?B?QmZYd0tWNUJVTUtmNXRzZi9sRnlZRWVMYW9iYnF0ckovQ21JUVdycXY2UUpS?= =?utf-8?B?OVhRcHFLUERodHFYYW5JNGhZbEhSQmU3eEVTaTlOK3ZyS0NrRUZ2M0hZd0d6?= =?utf-8?B?b2VMUzMrVjQxRUtGTWZweVZVcUdJSUU3ZG5qUE9qby94WEZyUzNiMzA0WVFi?= =?utf-8?B?Z3JoSTM0K3hJL0pKTUxnanQzaFJBM3Fja3dYRjBnOTFEVkdGRzlHNzFYVlU5?= =?utf-8?B?aDJVZXVRd2E1YW92M2ExWVphOGVaYXM1ejdKVlpGYVliYjBOcElCRDJpcGVN?= =?utf-8?B?U0RhZWJlUThrdjQvRmxsaEt2UFdQTmc3NFZsdlRVcFlONGxxTDFoMkJTeDFw?= =?utf-8?B?d0E9PQ==?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: db6f4b13-b075-447d-f119-08dac254806e X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2022 13:15:41.6485 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QWq3AnBzJCN4qL0qPHo6StSXlA0W3ZC7sFNAV7Cqbhu41QG6Va42aluQHjDnkSEg9T0PJNaSuzZNfd1ooleuqA0fzNCcde2fnnT2iCBNbic= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5684 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-09_05,2022-11-09_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211090101 X-Proofpoint-GUID: vscGDzx7FZljiv8VI_bwSL4DRp-_wG9W X-Proofpoint-ORIG-GUID: vscGDzx7FZljiv8VI_bwSL4DRp-_wG9W ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1667999896; a=rsa-sha256; cv=pass; b=WHACLq7ZlHBPVJWqbacNIJ+m08l26F7IOmiSCU4JufsPov0Ee3SFCZyYWFQeckFwhXDeYn vjuE+rVi3wPXZtQNbij//l6qnwLOPzibAY6A8/SEl5JpH8IEsUs70F325O00+dTlIEZK+m oxLtsI2pbwpcA6PROKItWNrvw+3TnAo= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=3H+GNzOP; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Tt3kqkiE; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf25.hostedemail.com: domain of joao.m.martins@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=joao.m.martins@oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667999896; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CDg/f3ANrIy5rpLC4QQWmsrbKI9RpzB8KwjMU74km8A=; b=XijUy0MLKRlKSetnkN8TeTFHiP9t2L7mGrAXli74TQY5FS1Zbg9tX7Z6tJyjXxz1We1i+4 mdH3zPDJTEBAZj5HOLLfGwpZfuDVis7Le6pAWpqLtk22h197wZBj8ziKNYmFQvvSMtG+lO ZY4fVOyIMEmXC2CIbo0Ve/knZ0AIN2I= X-Rspamd-Queue-Id: 31305A0013 Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=3H+GNzOP; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Tt3kqkiE; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf25.hostedemail.com: domain of joao.m.martins@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=joao.m.martins@oracle.com X-Rspam-User: X-Rspamd-Server: rspam01 X-Stat-Signature: rgzi8fyft5njk8mbcgzyst8i1mhr3z98 X-HE-Tag: 1667999889-419911 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 09/11/2022 02:42, Muchun Song wrote: >> On Nov 8, 2022, at 18:38, Joao Martins wrote: >> On 08/11/2022 09:13, Muchun Song wrote: >>>> On Nov 7, 2022, at 23:39, Joao Martins wrote: >>>> + int nid = page_to_nid((struct page *)start); >>>> + struct page *page = NULL; >>>> + >>>> + /* >>>> + * Allocate a new head vmemmap page to avoid breaking a contiguous >>>> + * block of struct page memory when freeing it back to page allocator >>>> + * in free_vmemmap_page_list(). This will allow the likely contiguous >>>> + * struct page backing memory to be kept contiguous and allowing for >>>> + * more allocations of hugepages. Fallback to the currently >>>> + * mapped head page in case should it fail to allocate. >>>> + */ >>>> + if (IS_ALIGNED((unsigned long)start, PAGE_SIZE)) >>> >>> I'm curious why we need this check. IIUC, this is unnecessary. >>> >> >> So if the start of the vmemmap range (the head page) we will remap isn't the >> first struct page, then we would corrupt the other struct pages in >> that vmemmap page unrelated to hugetlb? That was my thinking > > Actually, @start address should be always aligned with PAGE_SIZE. If not, > vmemmap_remap_range() will complain. So the check can be removed. > True, but it will be a VM_BUG_ON(). I can remove this check here, but I would suggest that rather than crashing that we detect the error in the caller (vmemmap_remap_free()) prior to proceeding. >> >>>> + page = alloc_pages_node(nid, gfp_mask, 0); >>>> + walk.head_page = page; >>>> >>>> /* >>>> * In order to make remapping routine most efficient for the huge pages, >>>> -- >>>> 2.17.2 >>>> >>> >>> I have implemented a version based on yours, which does not introduce >>> ->head_page field (Not test if it works). Seems to be simple. >>> >> >> Let me try out with the adjustment below >> >>> Thanks. >>> >>> diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c >>> index c98805d5b815..8ee94f6a6697 100644 >>> --- a/mm/hugetlb_vmemmap.c >>> +++ b/mm/hugetlb_vmemmap.c >>> @@ -202,12 +202,7 @@ static int vmemmap_remap_range(unsigned long start, unsigned long end, >>> return ret; >>> } while (pgd++, addr = next, addr != end); >>> >>> - /* >>> - * We only change the mapping of the vmemmap virtual address range >>> - * [@start + PAGE_SIZE, end), so we only need to flush the TLB which >>> - * belongs to the range. >>> - */ >>> - flush_tlb_kernel_range(start + PAGE_SIZE, end); >>> + flush_tlb_kernel_range(start, end); >>> >>> return 0; >>> } >>> @@ -246,6 +241,12 @@ static void vmemmap_remap_pte(pte_t *pte, unsigned long addr, >>> pte_t entry = mk_pte(walk->reuse_page, pgprot); >>> struct page *page = pte_page(*pte); >>> >>> + /* The case of remapping the head vmemmap page. */ I changed this comment to: /* Remapping the head page requires r/w */ >>> + if (unlikely(addr == walk->reuse_addr)) { >> >> You replace the head_page with checking the reuse_addr , but that is >> set on the tail page. So if we want to rely on reuse_addr perhaps >> best if do: >> >> if (unlikely(addr == (walk->reuse_addr - PAGE_SIZE))) { >> ... >> } > > I don't think so. The @addr here should be equal to @walk->reuse_addr > when vmemmap_remap_pte() is fist called since @addr does not be updated > from vmemmap_pte_range(). Right? > Ah, yes -- I misread it. I'm confusing with the 2 vmemmap pages reuse rather the 1 (which is the latest, yes). And thus the reuse_addr is pointed at the head page. Ok, this should be much cleaner with these adjustments you proposed, and works just as good as far as I tested I'll respin v3.