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 9EAABC64EC4 for ; Wed, 8 Mar 2023 21:38:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B59A6B0074; Wed, 8 Mar 2023 16:38:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 065A86B0078; Wed, 8 Mar 2023 16:38:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E2116280001; Wed, 8 Mar 2023 16:38:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D33846B0074 for ; Wed, 8 Mar 2023 16:38:47 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id ABF318104D for ; Wed, 8 Mar 2023 21:38:47 +0000 (UTC) X-FDA: 80547045894.08.3A80579 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf07.hostedemail.com (Postfix) with ESMTP id 4842B40008 for ; Wed, 8 Mar 2023 21:38:44 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=Cg35YsFj; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=f0b2uco7; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf07.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com; dmarc=pass (policy=none) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678311524; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=WYm3SoLaQa4tgdB9ONNRbkMFG+rp1jpyMfxs23FMpI0=; b=bse4ocq5+xduPUqE79+8w8qW3rmt4mIvaH7qA7LFLE0JMuHCX1OSgtbGPGyUu/GDppllY5 xR6yePNmW6vTbxY2/qx1oJLt5pl2/aPwEUTdO+EO7/MadwglcT5w5rPvG2WZIS/jzb6UdE 6lMqAhxumvtYbnAy2CE5UV8GzrSNS+I= ARC-Authentication-Results: i=2; imf07.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=Cg35YsFj; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=f0b2uco7; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf07.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com; dmarc=pass (policy=none) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1678311524; a=rsa-sha256; cv=pass; b=BLMlXDtoHQi08068gJkTRN39i7tzkK9hPJtyeAC4DmkANFrxmQvQfyJ2YSnaeyEwYx1bks ftrw7suoqZ1Tr/e15HrzQj/S++bPDMG95kSjThXwmPfANNOpOBfGrW8iWHvE6BDGcJdDEj YFvAmQ+Pnn0hSFpgCbrhdhPngg7qMtg= Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 328Jwtao021240; Wed, 8 Mar 2023 21:38:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : content-type : in-reply-to : mime-version; s=corp-2022-7-12; bh=WYm3SoLaQa4tgdB9ONNRbkMFG+rp1jpyMfxs23FMpI0=; b=Cg35YsFj/8HmPPqJNwaMTEVzSw/dgAtn8ohPAJ1BSN6nENKRceL2FOdTYkjJmsvWlEA+ nVwajUhzzaBSboszSa6ukbbksqR3dp/sckXHo7B8mjC2yeZNFn6GEl/hf2IyQqcNvp3F ZRjMkTnZQ69fhpN0VWsAW8Rr3iV12OOgCxx3drElJBw+K9D9h5MkpfHmx7830hMXG/Hi VXkFIf5eIq9rmLSLP9OvIq54PlX6R5GW3idz2IN9q1/v0TMdQauwkq5iLkM0jITqpHg9 yIRRm7OEK2E3I4jRlkEnqvdyCA+/L5oZ1LHsVJjpojXzXJV9Yqu/KR9sYAOwLukJ41Fl RQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3p418116nu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 08 Mar 2023 21:38:34 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 328KFfvt007321; Wed, 8 Mar 2023 21:38:33 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3p6g4gb5bv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 08 Mar 2023 21:38:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UEjOaf7Qoog7dUqsQbEv/c2tjm+3m6pKNmaYKlFaFczVvTbai2BH4pcbmMoXflxFZ7xtgiSLDrnV3ITqXsXvMEiA8jCpdYoKQ7T1j4nlYID9+Zq6YlKNKscH7X3yHDAScrsljy2hpsboSKYP3+l/qcd7Kopa+fGixTCyYQUvdT4Ds3nWxijfplDzxshb4OSnW7ibYTZl73Oq87nC/+kaX5RlkiUECDODCUMA2S76dwXP4rk2e7DwF/3YgO1300EcKfSplBMSvDFYrOPSWk+WtaLYGPCR4Azqt5knfm41ftEwggDmH+M8chZfCZZlekrIJ1Fq9lSyMIbt4lf9iLj/qg== 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=WYm3SoLaQa4tgdB9ONNRbkMFG+rp1jpyMfxs23FMpI0=; b=CKcOhIIr9JxMZp4wMTySS74ZXRotmuQL2nwPG+3KH6PqtQXTfmbPubuGUnJlgE7Gdvf49LocT48F/km5sH/inLf1udOmEpVD7V9Kr6tsrXz/2h5y7WKzSceDjru4klbZ7EI+qu82YQqAOrdK1x0tPqrTKgH8FbF6MK7FFC2Pk9nP2lCZZoctIurAsk6mNaxvwthhys6/SwaGyiaEyAQMJrWH2iY29QeOzInyrGz7Iqeu8Cil22vuxcxL78j1Wic4Smy+bavQ/F8uJm0o8a06VuneU5C9n0x6MEWq7HkpwiW8N9xIQneLtBgZeIbMTiVMG9IpSvweN5lY94DOQT+DBw== 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=WYm3SoLaQa4tgdB9ONNRbkMFG+rp1jpyMfxs23FMpI0=; b=f0b2uco7pcNdHZY5SILWdom50+TsDTLe28lQCF45BgQ27ub4LoMjQ6NQgjpdTjcY7V01sWJov4hX0ZVRzX1E7gvr89Sg3WgU8yg2c5vZ/i933rGVTI/PlcIC0KjT1MxvT7FgkufaGqbollq+ivTfL5BluDuH4dUbrJacxYdwS5s= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by PH0PR10MB4727.namprd10.prod.outlook.com (2603:10b6:510:3f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.17; Wed, 8 Mar 2023 21:38:31 +0000 Received: from BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::3db5:6e11:9aca:708a]) by BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::3db5:6e11:9aca:708a%8]) with mapi id 15.20.6156.029; Wed, 8 Mar 2023 21:38:31 +0000 Date: Wed, 8 Mar 2023 13:38:27 -0800 From: Mike Kravetz To: Yin Fengwei Cc: linux-mm@kvack.org, akpm@linux-foundation.org, willy@infradead.org, sidhartha.kumar@oracle.com, naoya.horiguchi@nec.com, jane.chu@oracle.com, david@redhat.com Subject: Re: [PATCH v3 1/5] rmap: move hugetlb try_to_unmap to dedicated function Message-ID: <20230308213827.GB4005@monkey> References: <20230306092259.3507807-1-fengwei.yin@intel.com> <20230306092259.3507807-2-fengwei.yin@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230306092259.3507807-2-fengwei.yin@intel.com> X-ClientProxiedBy: MW4PR04CA0333.namprd04.prod.outlook.com (2603:10b6:303:8a::8) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4196:EE_|PH0PR10MB4727:EE_ X-MS-Office365-Filtering-Correlation-Id: fd0ea788-7237-404a-c960-08db201d760f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yXqiOEInOsm/llmFbsAdbJD+x6zdAHEJ+TnOfaZfxewa7Uq8InrqkqhnVIBJf8ti1AlyF6aAAILff4PEVXmp64GTd27nzUNVonrkw+wPWaTvo4zZZXo+i4Tmwjt+6AiUxJ/NUDMz/tx3tXgthvoNsVzjtrGp8BtesezoyxyfNGjBxdNDWrswgkHvIvIM/4rQaAXu3rC3/yHyAv6q2tGvRAtdYSY/Bt4SeHIOVFgGx8ok344Dzc3aIqQ2KqjqP1kEYk/MAbUNYoA1+Hoi3ck+qdYL0iepEbcU5zzyg7VXyr1a4vC/hLFBy4+X7z2P1kltXWAqJH/X8UjGkmex+2Ibcriez0r9OqpI66qzxt1yoPWkLS8mXHKGSwT7la6wWpN4Nob+UfhPxBQp9FFRJpmPXpmlfp5xj9po7v9y6qWtCjNWFkHkxcWkR8jdFAsA5Fl9kjJ+bhq8k35uC6wS/27sR6CA9DVKOpCw9g5C0Tgr9l/v73NbEgmiQYL0f2Gq/H5YyK+pQM6le+1GK7PkEjbVGmedTE/YGnvzkUe96vEa1eUPZdB/7dx6mtXdnOe9owvzFu/mF0CvQVXzJgLO+ClI2J8iS+rBdBPtow4qfcPP18/c20tD02GG8Q4idpZsU4KEfArq7yWcez6+G3SlExhnNQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4196.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(7916004)(396003)(366004)(346002)(39860400002)(376002)(136003)(451199018)(8936002)(6666004)(5660300002)(6916009)(8676002)(4326008)(86362001)(66946007)(66556008)(83380400001)(478600001)(316002)(33656002)(41300700001)(66476007)(6486002)(33716001)(9686003)(186003)(2906002)(38100700002)(1076003)(6506007)(44832011)(53546011)(6512007)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KrupPZjdP/6ScfZdJAsUUM5q/xEfDHZrB9h/Gq8nH5TTu/GDRPb5U79YD8mt?= =?us-ascii?Q?zgGtE4BjEqElIHlPaekB2PK9zXL1rdVDpbMBhoZwKNMKq1hSBmBJnZ/GAGbu?= =?us-ascii?Q?SZ1piVAROBYMTkSAb9KkHAaX+RnpeQm6PrB7zYHXfYrWY68l7o5kESt/JYzv?= =?us-ascii?Q?nSlFLiTn9DAm9NG/A2bcTyx7BIOBa+KDix5E1cAVULIRzyJbixrtjQBvmHV8?= =?us-ascii?Q?wvjDmya6JTMi+4lZCoGC+XR4KMpjvbjhfFOkQMReHehWJWVu9FJs5y3WxUTA?= =?us-ascii?Q?X886gssKf+mqVefnOCpx4rfO+H4abOozCIbrdh9NhTdMhXbz6iT+B4LZ4p2w?= =?us-ascii?Q?9oY/Oph3/r/iQvHcr5AJewDV7jtNDv9kYkn7PC3uzRSxV07HIl3KaMMcq533?= =?us-ascii?Q?3HCRKOrDp4H+Aunb+L9gGFU/3+T2O7dVIqGH7iojPMsj6o45rZLxZib4VxRB?= =?us-ascii?Q?8Hhle4+qWEAze37SWoCg7axAYtneOj8ejTTv/X920U/KhMiXRfd2nukhfhhN?= =?us-ascii?Q?un3GkvdGKivH9VWa2arPowGYyo2K53w7co4oJZLCPo73SF6B4xuWtGypzMYO?= =?us-ascii?Q?XAu9f3biPxlArhuxgKmRlh5SxljCHQwqDqZOjTXPULCOGlffa3UHlf6c6vx0?= =?us-ascii?Q?DAtWka+tGfzamT4NvcCYgEURShjuTt89DP40LCNfGdgYhhR4jW1xvx0ZsW2E?= =?us-ascii?Q?j28WTPeo4e7MI1YDlz/Kfm5Ob/Y4JEex2EW3alelK98Ma8B0Xt/+iqCOjiDz?= =?us-ascii?Q?q8Ehb7meoJMdUYppsQcb0f9kU6eH1R8QkLbVc32CqO/v3PQvxmdMCCkjiVyA?= =?us-ascii?Q?/0ARe36u4B+D9bAbmyZYnhSfKHXB9V3+bmhkk0RmEu1xKxUqolsndbVEExhi?= =?us-ascii?Q?1X/GDMp42qum54plrUQcJAsQQv0iRwk5iNsNm10R9RAE8n7K9SOBUL0ppT/v?= =?us-ascii?Q?dzoCvIkyN6UuKyWlrRjIP0XaBsrAxM6AvrGJliWOyhRlrswfOIIAJ33bzXYI?= =?us-ascii?Q?erEP/OjqEYAnYre8yIFVUm1+l3Zf5hCcPOXhuxpLpTERJrydRsY775y2Ks54?= =?us-ascii?Q?J6O4kcaBpJC1YqfppGIf/zUFa4fp7ySWeyQvEULnZcRSh70P9G1eBWvwXBOH?= =?us-ascii?Q?NbwcOZaAJIlYxkgOKKCIwAlEBajAwqInelC+47y8CE/EPoR5Yt8/tFsRdAXi?= =?us-ascii?Q?2dwlUR24d2Lptz/v2jaeMRXd2wgwRNKw68GJIcC+ZyAHYl0nVwAzw7NWGy6X?= =?us-ascii?Q?yYo0H5Xj+OF9gUOGVs/ZOoAynjw/G+ksDbZIvg2hZj9wuBPrRzf4FwoXN7m8?= =?us-ascii?Q?XkVyRsLcmz43mtGs4i7Wm7iSdwD+sdAq1d+kwiRo5OUzOKytFmuZ3t51Mrl+?= =?us-ascii?Q?GErVSsJXbNVBFM1QkEsjzcrEbfKpZW4hGCFGGjIavxbvge0BO4FMQctyHYZ2?= =?us-ascii?Q?u0Ug3b/IKTjfS3b6zNP6lPXeS/txqNEmyYLmg90p8229/K+K0wIjBpkSneg6?= =?us-ascii?Q?yBhSj3+xjHp+d8NAnDiPto8OWMwR6W5oqUamuNF46J7vfpHdiHP2NB2HGpQR?= =?us-ascii?Q?8wN0nGh/WYC19JMkEs+LCHXdvFY4q3a6IeAQmmUqB/QhAThV0z7wjIVPgmOE?= =?us-ascii?Q?fQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Oht0jEY/zEyuRrpWq1d44xuX1hxbtYOFIQ09FmHCHBGjnaACY61eFcxYFByE1M0dV27DNTsSmpZhFbmB0q0qSYvxJGS9+yST5LmIUMCeoZDg/YBkxGEt0W+U6WgdWsjRW1fcS8sCvnHmh71+Mlb9eMbzqueDS+QQ4gpv15ZXhCho77S+mxMd1Gq2tOU2ojbToa297B6PJ4JZbtTC5vnoxaUtzWYa/METB1bVz63Vy8R/rFcf/iUR1VMhA4zzVgr/ndDRtauU0hYwcBYxuKwC3q6O7U2YG+NN+o2Mxa3FC+43ZAky4PokqmAbh6bmYWefjZRdeu6K+PLEE5FeM1cQiWgK0PDNqWVPAisOqHLXRxYsr3ld7MVMdC5sJQP5b7/qp+0VltZq5reGD7gWQ15PTYWyI4oW4NJw4g86fbFCjl0H1YHzVQF2tDy24L/dcMxse0qZLOHZhz+tOzs8ltqHA1700LQ3rl+Qet1ONEj7mjO92l4CP2NPxoIKvc2it+p/AD5pQg0W4tng5f8y+jD5TDla4wVWoyttVmzH8OGGYnls4g7A1DL8OlTzBSJyuv9wWWOWy2gRr4xGH+WL+eNmmYjm2KW4tTgTfr5vMuUS7yoJwPnEXSAUqcE4Hu5z6etwgwOusrhoVbHS1B/FocyZ82MpYkJlyKgZqFn530oZu/dwd2sOAaM338lZOfW1mEFHaXvUMMsgE9wJbcC0Fw9KM3Ro/toIe3uA09Riqz459eyaTosPbIOqm1FwSO8U4gVBhCm9NazCAeAvrYMcV778y8Lcav73rSh3DS3Cp7ybz7SwOhB5cYsLDLuMgTxWBBDueoUjESrRA8Vg1gbJDWh/NQLV/4yBy1ZXC+lLrPnKhXmI9Yjeu3z/augtXmJg+Sl5Gl4QjuPgaI2uH+xZMYgqyzX943VNP6hCA8rTij3UpSY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd0ea788-7237-404a-c960-08db201d760f X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2023 21:38:31.4474 (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: xMJpzcrtVhjX8y9FE2AfnDpZiDibcbRinA/fJgOCszKm5bXAFKRk+DQlHu8A7BwmP7PbRoSNN5357fMbVSBDtQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-08_15,2023-03-08_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 bulkscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303080182 X-Proofpoint-ORIG-GUID: UsRcoIMT1WzfpwlqHvfPPWn7mTSRt35r X-Proofpoint-GUID: UsRcoIMT1WzfpwlqHvfPPWn7mTSRt35r X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 4842B40008 X-Stat-Signature: wuucbqn7d7ott8gbw53tj8ymggdkqyr4 X-Rspam-User: X-HE-Tag: 1678311524-197637 X-HE-Meta: U2FsdGVkX1+hP53OSkNixB/sS5IbjZYo38D6XvzFwdq4qsV05q5NtU9/S8ZxlLGXevyQNWmUR6WgwJRpy6ElWSjFLK7KfjVU9dal4gnojLOKRQUyZ/WK15G/BWYnQFXAY0QYlgB4MWF7knpT4Xaqf/DTe0Q/rqWl4+13352spLLpEVJQhbdxuJY+sb9SPSSXnf3phkarfRedeZBiu+v5yTHDZcRWG2RjxFCye14IUXldI57qX27tGyF307otPeRlEGJZMflrUR1WaS+3NYsb8ZsJbXb0amRUnB01g7td18olItsb+Qi3zq/QVlkvJSjh8hjzwueSpC9i7R0tmkOGDAhv/pOUB3LvfvK8mxUNGqPpcd+JWzgvePRfMYiFAqNWp0INzoorXPXDXxohLjk/i1A0IICLDRIEC4dt13M/CqJ0AfzrE+4gEBTotaZ1uQwOLWiK5ehvaz+q3lMVf6mod69YU8jqhU5699QtxlSlZcMHHljsENb0P5esVZPUpmSaF82trQCfMqtK4yUXlfewrxTPBO0P5HoOOEfhj+Qc4aCGIwoe9UIN8vmEPtM5uVHJmZDi76+dVXPPax0j52OuUGRBIXDMRDfR6HmZ6vEKBTM+u/+YDvJyPhpHLgWG8OmxnYSCkmXH0skMuHuF7U55wW+KX+ZvO08vgVu4HhCDHcYKT/8Lpxa5LDOForDz/guRthlXfi81VWW8BnEVSDKpoI+j3YKEO4/v+2gGXOWgftkxnHQf40HmrmPXshsJNjPy/gwk1mOAtLD0QoQMBdzKTeihX31PVUdMwXTbUssOeJYSThdDdJdawuFR5LII3EWpSq2fUFQP9Y0mcEA2mRPLQFPBA0jsuP2xnS6W7JaB9DuORzCk7NRp4QBm6Kf7rTUDXJJigZLZVdJw8APPVeHrBt06g4Hmj9SWTGVnlycfrkdAvpRll5mCwBgiaX+wpfgs0yrujh3aBnn1/owxlUR 7e9VNafI vPDIedzzQRabuVkxn17BXwj5taTsHs95CLBm9w6kfU0q1V8BRHlcy0GK1pMIdNZc6B7hjWHpWt8R5U7irvyh/O4Z0sK/Y4XKr5FGOXe8W5CCYTjTOTJ1glgrycoc2cm0eTQ9pPILUaO/w4op63iJdMV3rq85LPGdK7iszRpUo5T+2VpxncWi1YHZXrFYEm3uM8ySgN6F6LtNhC13sQ1jHILLylkJIHZsTcC1JT76A5C8vdaLpQyCQ+c3t6Eo5SsLyJg/3oArEDaAhlSz6YR1NQ/y5UKSqzdK3/A4e5Jr4YnI7VCFubpV6j6ZfZwBeg6RjYfLSGCwuO9/B/qMiwEww1zGZjgoKNdPqEeNNxEF7JZhvHT/v8YcnPIbmQB5KCD87Z36megkxU6tzlp1NCw5Rl6EsGZivASlz86c8dsGRKdm9uCJzC8dNF3i9y4yi3O+hU4Gwz3Dutx0cOgsupJGgsfUhzzQZbGmUPpon 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 03/06/23 17:22, Yin Fengwei wrote: > It's to prepare the batched rmap update for large folio. > No need to looped handle hugetlb. Just handle hugetlb and > bail out early. > > Signed-off-by: Yin Fengwei > --- > mm/rmap.c | 200 +++++++++++++++++++++++++++++++++--------------------- > 1 file changed, 121 insertions(+), 79 deletions(-) Looks good, Reviewed-by: Mike Kravetz A few nits below. > > diff --git a/mm/rmap.c b/mm/rmap.c > index ba901c416785..508d141dacc5 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1441,6 +1441,103 @@ void page_remove_rmap(struct page *page, struct vm_area_struct *vma, > munlock_vma_folio(folio, vma, compound); > } > > +static bool try_to_unmap_one_hugetlb(struct folio *folio, > + struct vm_area_struct *vma, struct mmu_notifier_range range, > + struct page_vma_mapped_walk pvmw, unsigned long address, > + enum ttu_flags flags) > +{ > + struct mm_struct *mm = vma->vm_mm; > + pte_t pteval; > + bool ret = true, anon = folio_test_anon(folio); > + > + /* > + * The try_to_unmap() is only passed a hugetlb page > + * in the case where the hugetlb page is poisoned. > + */ > + VM_BUG_ON_FOLIO(!folio_test_hwpoison(folio), folio); > + /* > + * huge_pmd_unshare may unmap an entire PMD page. > + * There is no way of knowing exactly which PMDs may > + * be cached for this mm, so we must flush them all. > + * start/end were already adjusted above to cover this nit, start/end are adjusted in caller (try_to_unmap_one) not above. > + * range. > + */ > + flush_cache_range(vma, range.start, range.end); > + > + /* > + * To call huge_pmd_unshare, i_mmap_rwsem must be > + * held in write mode. Caller needs to explicitly > + * do this outside rmap routines. > + * > + * We also must hold hugetlb vma_lock in write mode. > + * Lock order dictates acquiring vma_lock BEFORE > + * i_mmap_rwsem. We can only try lock here and fail > + * if unsuccessful. > + */ > + if (!anon) { > + VM_BUG_ON(!(flags & TTU_RMAP_LOCKED)); > + if (!hugetlb_vma_trylock_write(vma)) { > + ret = false; > + goto out; > + } > + if (huge_pmd_unshare(mm, vma, address, pvmw.pte)) { > + hugetlb_vma_unlock_write(vma); > + flush_tlb_range(vma, > + range.start, range.end); > + mmu_notifier_invalidate_range(mm, > + range.start, range.end); > + /* > + * The ref count of the PMD page was > + * dropped which is part of the way map > + * counting is done for shared PMDs. > + * Return 'true' here. When there is > + * no other sharing, huge_pmd_unshare > + * returns false and we will unmap the > + * actual page and drop map count > + * to zero. > + */ > + goto out; > + } > + hugetlb_vma_unlock_write(vma); > + } > + pteval = huge_ptep_clear_flush(vma, address, pvmw.pte); > + > + /* > + * Now the pte is cleared. If this pte was uffd-wp armed, > + * we may want to replace a none pte with a marker pte if > + * it's file-backed, so we don't lose the tracking info. > + */ > + pte_install_uffd_wp_if_needed(vma, address, pvmw.pte, pteval); > + > + /* Set the dirty flag on the folio now the pte is gone. */ > + if (pte_dirty(pteval)) nit, technically, I suppose this should be huge_pte_dirty but it really is the same as pte_dirty which is why it works in current code. > + folio_mark_dirty(folio); > + > + /* Update high watermark before we lower rss */ > + update_hiwater_rss(mm); > + > + /* Poisoned hugetlb folio with TTU_HWPOISON always cleared in flags */ > + pteval = swp_entry_to_pte(make_hwpoison_entry(&folio->page)); > + set_huge_pte_at(mm, address, pvmw.pte, pteval); > + hugetlb_count_sub(folio_nr_pages(folio), mm); > + > + /* > + * No need to call mmu_notifier_invalidate_range() it has be > + * done above for all cases requiring it to happen under page > + * table lock before mmu_notifier_invalidate_range_end() > + * > + * See Documentation/mm/mmu_notifier.rst > + */ > + page_remove_rmap(&folio->page, vma, folio_test_hugetlb(folio)); nit, we KNOW folio_test_hugetlb(folio) is true here so can just pass 'true'. In addition, the same call in try_to_unmap_one is now known to always be false. No need to check folio_test_hugetlb(folio) there as well. -- Mike Kravetz