From patchwork Fri Oct 6 03:20:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Kravetz X-Patchwork-Id: 13410939 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 44BC4E92FDB for ; Fri, 6 Oct 2023 03:21:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 515A5940010; Thu, 5 Oct 2023 23:21:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 49D6694000B; Thu, 5 Oct 2023 23:21:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22D5D940010; Thu, 5 Oct 2023 23:21:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0933894000B for ; Thu, 5 Oct 2023 23:21:28 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CD8EFA0002 for ; Fri, 6 Oct 2023 03:21:27 +0000 (UTC) X-FDA: 81313586214.06.5D4B5EC Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf23.hostedemail.com (Postfix) with ESMTP id 70D9314001D for ; Fri, 6 Oct 2023 03:21:24 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=W4L9Ypjy; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DECk5jqG; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf23.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696562484; 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=ts++G+BYdmdUFqdAtNKLn3GW8JSwEPzR7WlqhqbkpgY=; b=4/re4bwVs4qA2xOL4pgHjiQwryqFlmi3YonkkUhQt9ASTLflsznVr+4VFSrPLXct7kUB+L Asd0ipUjdWTCbR5NKTosCAO+JTgtYLkKKD9wp0XvRkwn+amp0lWeqz3NJ1g0LDvsBR0iLy 24jgj69Ei2fK/+RSawxazF/YW4SY5Wg= ARC-Authentication-Results: i=2; imf23.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=W4L9Ypjy; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DECk5jqG; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf23.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1696562484; a=rsa-sha256; cv=pass; b=As4xesqtods7ij+1Y8miEAgkDIigiUqgIPpNKrt61mbA03Us4P7s5UfVE4YGpqQk1R1CfR sm0XS6EgOpQ6MxhBj99G6uZ+f7GGnwR2M8G9aDfJwDJCHn3Tfxg0qWbGxr5nTr5/Qxrn2O EhGHHrOmM1AACxOS4oFWFqU9l4XWxdM= Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3962Pdhg002406; Fri, 6 Oct 2023 03:20:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=ts++G+BYdmdUFqdAtNKLn3GW8JSwEPzR7WlqhqbkpgY=; b=W4L9YpjywekoEZjjH0n4FHcRYLam6SSCpSinxXSFhbpAD2BBVvWOYIu8rFOzNdskjVjK YTE+Mut1YdouHqJJ9OArvuFyCAuh3wVynhNiHUERSMM0A2fu0X2d6MVLvOKxAf40KdNH ZcaY7egjo+yaX91/KxPl3+TScufb6Np9W5nMRk09ZqI0IDPDxIFWh1iX/dm2TN7K0aqJ icug3BoAQ0ssyvqUhCNjc8dH5xUiV96nNuW2y+lZQ/zeSKB3rbz0i1f9UhHPNBetO2b1 RmaULL/02sfLMy74XNEObMz74l/ZSVfI5NviQ0frJ9EciM9WGj4Os2UotRqfDgZ35CPU Kg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3teakck2e2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 06 Oct 2023 03:20:47 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 3960toAS002971; Fri, 6 Oct 2023 03:20:46 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2043.outbound.protection.outlook.com [104.47.56.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3tea49yq0h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 06 Oct 2023 03:20:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VSO9hTXC0YBw/ofp/+LUk16b+mwsW4t+kUFA8uCgYFPWyusK9En9SBgKazaWHwH5c07pdtc56lUb8wNrrWl/xyEra2C/c2LZ06jepVXhuDhNaIcdwet2jpXQm0qNjfIsQLJ9+nBT4j3AX+PDodNLEU4gjTHizjZRiAfhme+bct8sTm27mrVAyFivXZ3UeOTSX3J3Qftg2bscgDbNaxZu76coGfSUOd/UGGXQFQRvJ0aWTTz2qhEi+2NfXpIZ0ne0KP6GRNc4m0h1XsLZ84qK18v9V0Qr+m81IJY0Lg7bQiYezBYZAjajOfBYkM7UYl/2ADgR8upx3ordJXeaRwE+uA== 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=ts++G+BYdmdUFqdAtNKLn3GW8JSwEPzR7WlqhqbkpgY=; b=ER6CjpJ+4Vs9KKv92IfWbfZeYFlWzUsfu1IHCoIP9SxjHgfSFNtKwpFU2w/sUkVGv41gridE2e/9/waTpC6cWb7GcrTMGX5d3eMZmrAa1KU71FgVX9RtTZ51NrOCd5ycWecwPhsxfgkIfcLSsH/Vw7vMuak/2wflK/KmD4lset6J3O1dsy11ZTJnFuVGAj9Z35oFrkxbozLj6z7M0sM1RKRE3R+Mk/iTmOFz+hNcVNo8wSQfEHjUnZcvAjUdT4RMK0HJUc9YZ7nv/a5843Trmz/bP605edVh0qI6ZilDxSX0RA4p9B+ayPil9tbUIRAIjNPBC6r0tUu5LdrMRrGj7A== 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=ts++G+BYdmdUFqdAtNKLn3GW8JSwEPzR7WlqhqbkpgY=; b=DECk5jqGuq+T4ojIJKIEAZe3DxoCRzIX6wuem4Q41tLq15H0EGRX1gFntkJSZc9T3VcSHGnmhqgH0X75wQC0ms/I4iw5Rb/v0OJpeHHrOg9v9UYU53Zxv2pKsNkq3LF88SNBuDvPyzCcWll4wmN4Lbu5Sq1aaWJDNaBuDmnX68g= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by DS7PR10MB5391.namprd10.prod.outlook.com (2603:10b6:5:3ac::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.38; Fri, 6 Oct 2023 03:20:44 +0000 Received: from BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::59f7:ec45:eb41:d8c2]) by BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::59f7:ec45:eb41:d8c2%6]) with mapi id 15.20.6838.033; Fri, 6 Oct 2023 03:20:44 +0000 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Muchun Song , Joao Martins , Konrad Dybcio , Oscar Salvador , David Hildenbrand , Miaohe Lin , David Rientjes , Anshuman Khandual , Naoya Horiguchi , Barry Song <21cnbao@gmail.com>, Michal Hocko , Matthew Wilcox , Xiongchun Duan , Andrew Morton , Mike Kravetz Subject: [PATCH v7 8/8] hugetlb: batch TLB flushes when restoring vmemmap Date: Thu, 5 Oct 2023 20:20:10 -0700 Message-ID: <20231006032012.296473-9-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231006032012.296473-1-mike.kravetz@oracle.com> References: <20231006032012.296473-1-mike.kravetz@oracle.com> X-ClientProxiedBy: MW4PR04CA0283.namprd04.prod.outlook.com (2603:10b6:303:89::18) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4196:EE_|DS7PR10MB5391:EE_ X-MS-Office365-Filtering-Correlation-Id: f4302c32-2a9a-4014-55c5-08dbc61b39f3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uDUhy576Vei0M6EPV4/DzehaHW8FWsqFhiFJDWZ7swelFl9XFE5xsthi6SkoOLIdxgjYYOVNc2oBa+daIl8tqfbQw26zqX5z1jIqn0P805kRepK0svoKTyajO/3tU+pP/N5keBF1XbKeH8XSpXSEB5pERCQUhbIGQ1KSSagAKNL8jMOoCqpzD4Nj79bxIu9hGXta0ZGmqsQhlzTCTWgihH0YUAHTNSsxTT2qj/DQxtdnOlW2owMV6J2xDChH6axCk3INhnVnAo6CM7kd6OpLxsUcp5a4+OHUuXDzJl4mB+cT7c3Cjvjx9PvQ6RPid96AWW4nuFXJixd8hAjumr0JBD/tbPHDZnO1INRhO0P81f3kxm8lhlUvuTtX4jXa5kapwA4G3x7moPvjxGyfIhctbpCZow+s11aHHOQ8aQSsff7OCQI/gl5xkUZoylmU34XrENPt51g7ZETKzeOa3hDp62K7yEXUvsW2hwvmUyyzzbnJsnURL6s6ILioe9LsnJAKsQDBmvmyF3IzU77gHfDaKi1ZD6mwUQrD3SEHsSs2rsGbluSfR/tgNHcAARKzaqVF 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:(13230031)(39860400002)(396003)(366004)(376002)(136003)(346002)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(6506007)(6666004)(6512007)(6486002)(478600001)(38100700002)(86362001)(2906002)(7416002)(316002)(41300700001)(2616005)(83380400001)(1076003)(107886003)(26005)(36756003)(44832011)(66946007)(66556008)(66476007)(5660300002)(54906003)(4326008)(8936002)(8676002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vkGV686udWlCGJwfKCCS7dwnslBcyl++oKGE0APluLZRGOQXYNFU475kPzKCs6vAiB/anYlKA3gDN248A53XPuyAwiQkjypkfV7mNdqNacU9lCkUO951+kSAz3wCBIBgfXZunLJok5vqXvY7LNzdYdfS5farhwhsUmJUpcbUY9dXSCfN1QPfThusVqM/opa3+BEqnx892OOwZPFWP/hKq/FK6rARvP33RgAAS8y3N0H3GRTzOFe1prXAdwj+9a4HxI1BQuJEcSSmmuP4t58ueff09joyNOi8lEb9+2bDRuUYCCOV+HkKdg6Pr1Zh0V2TD0hRiGAhP8VvM1k07l3vCmuKdfNvAN6le5Nj1RC+zqB70XlT/RzizSoygdIZbLHMc0g0bNx6TVR0djQjelT+xCL0+jGmf2A1j9PFMcGByNUOAdahh46TIXfUFG0+Uq0DL4X7MtRNKb4OzgYOz+1eNgfRTH11fkpwKmfOQcDEeslllwLF0yHbTdpFzy+t5ayCFO382xO234ymySqs1+l1e8ZQIjBMJg/KTlrAt59jNuYt0ywnoCUSExsZZkhQARCunh2ZILiBM6taCpHCtkHvsBBC7KFBg80gmSP9ig8leH0Z3xnF3+ePa9GugQnFwr8A3vPsxCJs+olOousSSJ/eI+49EH6KbP7WaOZeDb1sxeY9+aszMthJbZs7go7XFTBQ7gGeCteJpz/JUMKlvRJtnolGXrv9xZ9K7+Xqj1DphmpXeMM8rrQVMSHv8nk/ioLWHG5uSsK2vyedtZ4D6kAlPaGRryRQ046wK0tINmAZfg0S+DwS/aDLwgUm9vwzbyr2Yth8WpL+lBdAxA30rKhTokv4Qo5Qfe0V7+MAzvKpRKk+nIhao3pvUlkFtgcFEJWJoNAM3Kr+Hj1nxU8xbu0MQ394T2gyFKirUWPduWSc1YbKGPbxe88sTXO9d0K5f+W3SnYYwwNBNcjbaeFCvvyUQUNM5+Iu/giKgknphCwJdLjfQEhQ9Ixb5lvayhpD7AW27eEYo3zYUvLANo2K38827YFoP/46c4xqPUhwRRku1dgrgZcb3Zp0ZHgRB5ZORz7Ol7v3x70sls52hy9OWC/DNeQkw9tcuBfvDb4GCH62PFkVUm8mQg4cFwCySij0F/YW/3jsgOW/Q7infv/qqPu3QDRLMYQZ3qse5Hm8EJyeKFEIhbOwDqOjLNhLuERplkfJUpTDIB03I/ojXqStfzKhq6lL4kkKHOLiFFXOxRTAD6k9Wg4/9AqtQk/HU+cZzrsX0wJGvShb3Zy5qISMYXuRJ0gR6z+2Eqar0V8kWLynFC6VpIrEVOZIyKxQVc5AtMUhnu9VnD263ZJaLZHuKnF4aUQjFc/RGK2+fKrzK6ZDWQP9jqLFr2x/SmRijbMOH7dYykffVETMjqBnykC2kmqGeqRKtIfz237IN6/HglwhUXaaLcEnSntZnS5La8F7cJKD0NOCzoJ083BjEl7b6vyQ3gYdUHzGYlbDaG4e0Orddpt+tqgPieKZEyoBZ87GMs/aHfI3aV5zHu47v93DgcDQBCjxU2fnxrh2RFja2Ekc192R9Q1nJYhG3X08SpRNHfP+JQeg8U1eOoyK0lKdDIob4g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sYWOesysSsb4uk/T4Ws9ERaH/CmViu4yJMGmLm+c9AxdhWRg0ncyzobQ+C3flwf6tWserEpAVLhtDDL679NdDnkSGIB0sRev4yaSoRYUIAfatXOocFDnwCrl7y+ZFt4pOIM5dW/oc2f0n8bTi1vpfuZKHAFXJvv/DEypx0ERn0FGPSp7vGgmgbzU3W9yQ0hwh/avxlkl9afWWt0DRC5y9L+oAWsYEtq2eswKJXTZtmVKruLWc8lv+FSdnpHgVIV1/5z5d6dAgMgB0Vp2XY3q7hmb/xk6QVHh5gVZcpa6GYDcLvmxXlfLHP9D/B97c3gDi7Z1GMmn/Mf9hqrYJS5LOnq5+ogL6mT+CMW54IKy4XxTPApseGCotLqqPrhUb4TNEK2sJNVGADswKeRTPRfUw5biVAb5kl90AY9IizTcjggtBuU64Verd7OHiptlXZ0to6+B/GZW8PKQPfut8y1WZRBrX7ANgRfRs3G//xDolKtk7KE0nkpoIn9XaLnhHqwbSksO+rXuTY2Hcia/1k1HvuxYQB1ZTcnlnDqQhy15xbwv8lUV/YjIXECNgwbjadi2JCst3GnJuhG7YLBs72IXuL0s0mlQFy4kH7R7ZhGY9rYdKKW9kiMxHRzJ/w6CDPok2kpcpgkYbuRToZOf22JzZmHBRay9xHqeHgX6t2KVhzHbALzShcxILt/44672ERu3FGVpKnG18F/ULD7E/n7i6mRnPnpc6IP/R1EdobjMhWDun965LBNq4CNEiFSmHqcRfiecWY/Q3rwOKUdE2EPq/vfYAmMrutAZldfcpK9iHJwz74I+nlkJYGJH9jj6QBsFXenmJvfXyITTI/4syjgRcOcJA1ailbM9t8FxKf/s+mFFYYLM7lahWeoxubzzWV37EL8jdhF8yTm/E7bEMyehc4wBO5EmcVFySAzn0/W8WRtH85gPf7OIyjDYzE6vlxIN+VTTuMKvvb7tSldb11hqwj9AP1bv8lXL+aAPThl2VNQQ6k9EMIV0RtAZEsOkSjvfNLXnjKoyJRyVK48obbF0aAq5hbmktAtZqaYXHXPfMz3weoTP1AXD3PYNhwAxD3aKVE/lMrnHK+ax2yXsOa3SZdteQ9jrR6UfEaw8GBMBokRyNOWDgvIDGFeqIehvCP8SWSJhDLQw7wQr3J29W9RO8Q== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f4302c32-2a9a-4014-55c5-08dbc61b39f3 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2023 03:20:44.2980 (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: 9QhQSvPVReA668Q/6dI4PtjJ+ySQzzt9C+CMWRMNeMaEZB4RFRjwNdZdVDABz8GJa1l4vwjdTA/UL28uXLIoQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5391 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-05_18,2023-10-05_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2310060024 X-Proofpoint-GUID: hGyZmpWMRUcFCQu6hR3LLaKda783hnLa X-Proofpoint-ORIG-GUID: hGyZmpWMRUcFCQu6hR3LLaKda783hnLa X-Rspam-User: X-Stat-Signature: txmqneuocxjyc3nm6zpyfsgypp8rkwri X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 70D9314001D X-HE-Tag: 1696562484-256065 X-HE-Meta: U2FsdGVkX1+4/na1707Usvyf9pymGhZdcWDD2kTk2iLlp3BCpGtfEUgfZiJ6wMk3cddR7V6uXO+3ma6raHio+a46bmaME3dgQc24pTbG8ArX6BYrgSvJYrAIUog5nmIThnu8Hj+1W9IIG3zLE7r52zMsFGB/FxbbQe3JfL8XSJdmgvzF88TMInOwR/b46hvZXuMfIGgKCk6rYQIsiOwA2JnrY5SeT0Lcr0+Qg8WvD43jkMTMrz02/3YVnr4JchYxkHGfKZLXMwfu4DyObbCnIDbi8gjnH4/6HG2Qr8A4I3NqRuQyFnifnRyoDd2leAbFmDZM60mWKXBDOT/r8UIV1Gh7vT244rpc5R65WdixIhPKrb5UQ0kaljBLEeTOyodNqS5iZk8keZa7EHixyrYsq21U8A6UPMY7ZttNQjT4ibSjzCgf2xAZWiu6LAUm509g1MS4Q8gYdnRl9n03nxhDBs92oLLq3wac+tgAL6g3fz7wF2hsm/Gh8mrbEBbrssts3rmOITd18i/PC9wE4NHFBuGLd+xLsXOgdxEU1GFBGvi5ihwiaMpqH4jWFmbHc1v09WDTgqObWv1y1oy5sDIvKZ0v4JzyaefVlDeALl3FqlTsBlGj6ynfOseFbDlCpiU7MvDV/1wsP2fZxC8AnQpTgzVtbXkcbucHOGJVhP185GmlZXGT3RdOVD+aFpk9HfkK7Ul4XW3JWonUFOALAhGuwT2Ny7X10jJU4Uru8xPGju4eiNCHD6xhGC/ef/xGWqNCycJ/f/lCDYx6U4TB/43z4v7MicqDWYY0/77GA9qnsrboXenz1CkJ8cYdvvfSaXpDcasO+dIARYMFWhRJxXNAYGyKnmizmlLh9BCx3MF6Pt6S5dxo6IgezarawQmP9wCeYNHvddNNO3bcuUiJib4nlQLSgTcOdwzpMvXoEps5cfjfUGiVuFPr1yKncXoL5qkeEKZExQVqIQ9SdLgNBsf ojiZH/S3 k+SFlejhl9RdDraNdDdDWUb6jXemNdbnN70nx25ywlAB1YnCr5eEnJdiCmOfOJct8d0ileZ5iKz8wR5f1wHKEebfUpbxpK86o9s1oiPcyeD8vwousj+Nz6bpSTlyX4M1uyuM9vCwr8pT7Oigkwr+IDeSKZj2PUkqZPPYi1dUSobehPpzqrTWwU6HdORjmYECjXDS1K5XFisJsCDSWmg3UUEJVsHO9FUBrPVHqRgaixLqay6mxHsviBb2rptjYpppTEpq0QhHDythDvVnCP/Qvr0CrYVGBlHGskgfA7ufkPxiY/DeEDuqC2KlKcwyE9Qoj/aKgr7f6GR0TlGUc+s3WISP9BPVS4Tke2WbHpIG+QXGEiWCQMe8k+iuq5SIAg4rv5iNE1U55KA8ehw5JNoKIc45hupjxoHG4FYDCLCIbubLQh7xR5+34rjbSd5d9H2UbC/PbEddvoR7pIAa+Tm7BAww/AyH9eHwJbFZg 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: Update the internal hugetlb restore vmemmap code path such that TLB flushing can be batched. Use the existing mechanism of passing the VMEMMAP_REMAP_NO_TLB_FLUSH flag to indicate flushing should not be performed for individual pages. The routine hugetlb_vmemmap_restore_folios is the only user of this new mechanism, and it will perform a global flush after all vmemmap is restored. Signed-off-by: Joao Martins Signed-off-by: Mike Kravetz Reviewed-by: Muchun Song --- mm/hugetlb_vmemmap.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c index 9df350372046..d2999c303031 100644 --- a/mm/hugetlb_vmemmap.c +++ b/mm/hugetlb_vmemmap.c @@ -461,18 +461,19 @@ static int alloc_vmemmap_page_list(unsigned long start, unsigned long end, * @end: end address of the vmemmap virtual address range that we want to * remap. * @reuse: reuse address. + * @flags: modifications to vmemmap_remap_walk flags * * Return: %0 on success, negative error code otherwise. */ static int vmemmap_remap_alloc(unsigned long start, unsigned long end, - unsigned long reuse) + unsigned long reuse, unsigned long flags) { LIST_HEAD(vmemmap_pages); struct vmemmap_remap_walk walk = { .remap_pte = vmemmap_restore_pte, .reuse_addr = reuse, .vmemmap_pages = &vmemmap_pages, - .flags = 0, + .flags = flags, }; /* See the comment in the vmemmap_remap_free(). */ @@ -494,17 +495,7 @@ EXPORT_SYMBOL(hugetlb_optimize_vmemmap_key); static bool vmemmap_optimize_enabled = IS_ENABLED(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON); core_param(hugetlb_free_vmemmap, vmemmap_optimize_enabled, bool, 0); -/** - * hugetlb_vmemmap_restore - restore previously optimized (by - * hugetlb_vmemmap_optimize()) vmemmap pages which - * will be reallocated and remapped. - * @h: struct hstate. - * @head: the head page whose vmemmap pages will be restored. - * - * Return: %0 if @head's vmemmap pages have been reallocated and remapped, - * negative error code otherwise. - */ -int hugetlb_vmemmap_restore(const struct hstate *h, struct page *head) +static int __hugetlb_vmemmap_restore(const struct hstate *h, struct page *head, unsigned long flags) { int ret; unsigned long vmemmap_start = (unsigned long)head, vmemmap_end; @@ -525,7 +516,7 @@ int hugetlb_vmemmap_restore(const struct hstate *h, struct page *head) * When a HugeTLB page is freed to the buddy allocator, previously * discarded vmemmap pages must be allocated and remapping. */ - ret = vmemmap_remap_alloc(vmemmap_start, vmemmap_end, vmemmap_reuse); + ret = vmemmap_remap_alloc(vmemmap_start, vmemmap_end, vmemmap_reuse, flags); if (!ret) { ClearHPageVmemmapOptimized(head); static_branch_dec(&hugetlb_optimize_vmemmap_key); @@ -534,6 +525,21 @@ int hugetlb_vmemmap_restore(const struct hstate *h, struct page *head) return ret; } +/** + * hugetlb_vmemmap_restore - restore previously optimized (by + * hugetlb_vmemmap_optimize()) vmemmap pages which + * will be reallocated and remapped. + * @h: struct hstate. + * @head: the head page whose vmemmap pages will be restored. + * + * Return: %0 if @head's vmemmap pages have been reallocated and remapped, + * negative error code otherwise. + */ +int hugetlb_vmemmap_restore(const struct hstate *h, struct page *head) +{ + return __hugetlb_vmemmap_restore(h, head, 0); +} + /** * hugetlb_vmemmap_restore_folios - restore vmemmap for every folio on the list. * @h: hstate. @@ -557,7 +563,8 @@ long hugetlb_vmemmap_restore_folios(const struct hstate *h, list_for_each_entry_safe(folio, t_folio, folio_list, lru) { if (folio_test_hugetlb_vmemmap_optimized(folio)) { - ret = hugetlb_vmemmap_restore(h, &folio->page); + ret = __hugetlb_vmemmap_restore(h, &folio->page, + VMEMMAP_REMAP_NO_TLB_FLUSH); if (ret) break; restored++; @@ -567,6 +574,8 @@ long hugetlb_vmemmap_restore_folios(const struct hstate *h, list_move(&folio->lru, non_hvo_folios); } + if (restored) + flush_tlb_all(); if (!ret) ret = restored; return ret;