From patchwork Mon Sep 25 23:48:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Kravetz X-Patchwork-Id: 13398581 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 BDA45E7D0C5 for ; Mon, 25 Sep 2023 23:49:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 490ED8D0056; Mon, 25 Sep 2023 19:49:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4182B8D0007; Mon, 25 Sep 2023 19:49:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1CED28D0056; Mon, 25 Sep 2023 19:49:45 -0400 (EDT) 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 061688D0007 for ; Mon, 25 Sep 2023 19:49:45 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DC64DA023C for ; Mon, 25 Sep 2023 23:49:44 +0000 (UTC) X-FDA: 81276764688.30.D8FA277 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf28.hostedemail.com (Postfix) with ESMTP id 79C14C0013 for ; Mon, 25 Sep 2023 23:49:41 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=tTkyREEu; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=xHO55F1Y; dmarc=pass (policy=none) header.from=oracle.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:dns request to arcselector9901._domainkey.microsoft.com failed: no records with this name}"); spf=pass (imf28.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=1695685781; 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=wop91Vn2thHKTczlqkauN3ZgszKMNCLF+DVzOTx6zso=; b=4khrUDE/YkMaw4AN1Y1G43DHWIDYXT854cL1fQ8En7KYO4VM6r8NdLRdDkk0BPHuWa5Dtp xdMjc4WMA6jqdsRYx+mRzyYk68o9dCEDIvyON6tDcIpmOCYCTlJNwvw35Cdf2lChuF5aDK nIGD8ZCzOa/b5cLUG5mmVsMEITAWkCk= ARC-Authentication-Results: i=2; imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=tTkyREEu; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=xHO55F1Y; dmarc=pass (policy=none) header.from=oracle.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:dns request to arcselector9901._domainkey.microsoft.com failed: no records with this name}"); spf=pass (imf28.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=1695685781; a=rsa-sha256; cv=fail; b=5MtshlsvfXXyhu3VRX6XlnuEK0Q6Dno/4ItY/D0Ac9OKzPaGmL8HBefwPheYtrrlpFeEG8 3MTRmxhgYEjkwO4I0m2YB5C6nnfjojxGR95jNTL8IqMI4pK8Oef/XZBwpuaxN1b/X0UajU gvpq1/BR/Wvc/L47po8PGe0urpwBR+I= Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38PNECG6011832; Mon, 25 Sep 2023 23:49:12 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=wop91Vn2thHKTczlqkauN3ZgszKMNCLF+DVzOTx6zso=; b=tTkyREEus1vZ0vrDzN8bPKtzQKfpAiGC1GOGPaIkTQapP39ASs7lLyOyDeufLNRhS0Bq mLyLV30tsnRIKhGGCcZ9F9+OnCGxyIjWYIhvoj7jeR7bQ2G/21PoLxrzx3PxR7dkt68u zJAkC9rPtaWVEqSAaaQ5DTvxU0CVJmK5RdfNL9Qr2eS57H0CqH6NDqqcpCJu/cpYcAp+ HmwocPBprZp4f1QkA9sEaUOaeWJi+MogV6ekyWxuy1flr6PuTmPdpU2d9HWiSpiIp3uS 0jtEngGWVq5iwYwk5sm6OEVdA7zRy0RSTHMOPNe0qOOI9ay1Do6UMjQpPqonX0L/f2W2 DQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9rjud6cv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 Sep 2023 23:49:11 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 38PMKL8A034986; Mon, 25 Sep 2023 23:49:11 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2109.outbound.protection.outlook.com [104.47.55.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pf5ghug-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 Sep 2023 23:49:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NZwOQSCPCLhjP2+ylha47wYrCIv9Z3199JZ0XiV9pWPR+/tYvLBBNsp+8GRXLg1ZgVLiMCExsHoAqv78pAOMu5SqNYO6zl+DywoTncYllbdyKsf7iMyDY8X/BllCK4PojzqnNmvpJJ3O13/oTvqSfhOk3GPUYeVXhp0/J4ANfljq/shKLPhG+dCkscyaXY2Hj0ZOTwvT1QJtqwEWvLqIK4VquQpRwGFb+aM8QdbTj4/QlSJmZ5VYewJ6ntraA+0V+GashGWk9N0d/cHKH8x7KPxx6f9hA2h3A+XmVIEFA+dXgwE6Hw4lXQaYeVWGuRzNq15zNZaMBdo+OOT65B6F1A== 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=wop91Vn2thHKTczlqkauN3ZgszKMNCLF+DVzOTx6zso=; b=Ni5vbv/L8c7keanSmSajLhytGwjKnN07Ff40hUksPz/wRiI+RkTahQVOzot+aPDW/SF5f00H9BvFrT8D/JunecGfKmdBi+9t9x1MM1Gg7cnpLJsuhE3mtC4ba7JrTzFHtxdmkszbOSD0s75zG+69B+18LVB7LQty/Wup0KtR3+lQMLk0yslAFGCAdrnYI8msQglcYDo6uRcRVW48SPURYCPNakONNZ5xNRr0Lbk4nZcrHJnP8aPayRtzK/xlBJ1ucAOOHRETfNgstjY8HRMBMtEDOYbYyg2Eu5rANdzS/gnDT9KfyTTVCbPFu4/Dij63sy0qmb16XuJqBg7yEdJ4Zg== 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=wop91Vn2thHKTczlqkauN3ZgszKMNCLF+DVzOTx6zso=; b=xHO55F1Y7vpmQliU/v5oVMTf8eqhsgbGIc6t4ZsffPIPDe9aR9elk9G/RuncmknNnmYNzp7vjORz4DkavSaBXFvR9spKy0VDqINCiL0u7NOIcNNyJN9B84slBy+tWdyNr6WZlp5XG/s+tApQlGXHYGYvY0Jw0hFzuRdVMhl5zdk= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by CY8PR10MB6730.namprd10.prod.outlook.com (2603:10b6:930:95::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20; Mon, 25 Sep 2023 23:49:08 +0000 Received: from BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::c621:12ca:ba40:9054]) by BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::c621:12ca:ba40:9054%5]) with mapi id 15.20.6813.027; Mon, 25 Sep 2023 23:49:08 +0000 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Muchun Song , Joao Martins , 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 v6 8/8] hugetlb: batch TLB flushes when restoring vmemmap Date: Mon, 25 Sep 2023 16:48:36 -0700 Message-ID: <20230925234837.86786-9-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230925234837.86786-1-mike.kravetz@oracle.com> References: <20230925234837.86786-1-mike.kravetz@oracle.com> X-ClientProxiedBy: MW4P223CA0017.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:80::22) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4196:EE_|CY8PR10MB6730:EE_ X-MS-Office365-Filtering-Correlation-Id: 33069808-d3ed-45da-3aa2-08dbbe2202b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UzC9s3jxM8bMObKUzSWGxl8NtcI/OTOVbEuxSL5Svf86thYIXYr2PAKjD5Msdj50wCCFI37gwqJpCPfmJOI5aYKBqjlC01sULB+ty6VGrkLgGalomTuKYgubXtSKIvEzuP3mhh2flklVdlPUU4fThjI61FKhDSlkgnWWSnL8nQ6hKMxf42VD7GBKAqa5KdSej2IkQddEoiP1wingXCgMEwjnc2rxCY5DNbLiiolti7L0DzXZ3MFQgIr+1hz0GsXf8kBF3WIrN5vSFfs8w88HiNsvmaAZHvAa8uwWVD3AWteAfeom12DhnMwG07DoyyXch0kjDewxqzH8CAkr0fh/fH03RoS1Krx+TESER11rttTrh1Sq78FIzsC4xvZhEqre3XjD2R+0d5KVxro3hSE+RW0Ogj0zkDc8Ne7t2rKBGWxKWMuI7+FRmcCQ+spRRnInr8H1typsVhRwbY+10OZSUds0Z5CaP3yPZlqxVEzu3pWdcn7ztfoLVP9Jn15oF9z8lCxdu6u92yZhaCvpZSneuflWttURHfkivolMItf8F66X5RKz7aiXrXga8SnoqGgf 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)(136003)(366004)(376002)(346002)(230922051799003)(186009)(1800799009)(451199024)(478600001)(6506007)(6666004)(6486002)(1076003)(2906002)(2616005)(5660300002)(6512007)(7416002)(54906003)(316002)(107886003)(66946007)(8936002)(66476007)(8676002)(4326008)(41300700001)(44832011)(66556008)(26005)(38100700002)(36756003)(86362001)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KRkVZXgshpr0ZwNWrmijfqP32KUN83tktdmkDcQkR33ChILvoMzafRauz7t4S9g58+TK0xU4ygKKYloBhh6yv5K/tbjs/v8F7xXOP+46LENYi81JF3mx3b2knGApkvQpOT6I/gdC9N1PVQY0xRPihh7a9RH+z6hstJIUPLQNdG3e0xADcxYgX9MuNp164tKS15Zusu9j3Nks5B/0OOGt/yJn0p4mHMBhhNtSdhETFLJFIPW9ghxeqaK0cGAzJu91P+41BoRygzvCWQ7ZA+4J9xchemn49B2U48LuhgeJhLUIoCaMI6yCDGkmY3k9o/nnqcqrDMiXPVFtbAPKp+Bc94Z/7YYDigQSqfawtbL8TFJhYjDtjmfxB7U+Wakh2YYzELIilBBEjkyy34gXsIZRgSuxkj1K28zHBH/XbDMXAbjsn0ZqC5v6DFhvYvvI8Q4catZDLayW6uzKO3XijQGQmkZZG4rumaSzgcraKKujLiC/fN8QnarZKL5TP/pSnbhlmxLuJlxyyVPQNPKqU/m7buViyt2WOWK+HD1k5848bjBQFvl4OF3BVmFCMmU9HZvWL+m+Rn2fves/KyMuBrtmClsYnBDMuonetf8ZlplkxmiBEehOnSVvUD7inrp/B5rkVqNKosL2IHXZuK57W8eGaLww3bKmjAZGfnfw+IeMjZLHU1WIgfSoV99Egfev/akJ0kvOJJ3bAu7criGWu3nZFt8zl7aAsFwnF5R8XcsxPo21vcm1HjPQ8K+u0S6j4dD+0p8TbxeNNt9cxp+3leIXnf6qseL9ccQc/bu+lJgRk7Ulrf8M+IqEnATLK0p4bBVcPUBhi3uNPrn3PqX1PLc8aBDExi+ddmrhSG+ENt1qoYI3tZ+YfYkthgZ22X8VDQAJDC+0lnIXrrNS8rR8nw/taPhZWpckJxerwglwyZUvFfmtML5ko06LhHdQQlbiUG53DztZYo3WyRKlhsYwWyeHffbZ4fY/qmar8LVefl5um8MFVE8tMW2DVKSGRNxREkwILTsdWjKHb2/QaFPUtLC/bX7aOzcoFFzsgH3bN3BvctiuRCV9ODWJJ+iXJuYBmtY/tVSXoCJVsQat726COoKS0J3fXy4neZczeHLZJS2SlWOIeRE6cx0XZDs4EGaYzeCFnQy6X10x1vltZZ8HV4vNwqm4YkG+hOQeLlbgMd9R4xCZSNsbb5ORh5q58uQ0U4Y86OmQsssNqH7cuRYMbJONEkMdUzZcjJGKjr8hlAuTCIbIj0+16l8Vksx7utfRMrP/a7XNAs3c4KqeLufMdM8fKQNhINMbylh+11BtA1K2WsCZdb593NcAW/ehT0eVEPGpHZj0I82cYmhewJZ02fsUaj94eSBchi4rId/WCo2l4g/5UXD5gmU3vOLxCCa7OIVClIuv6kYha5m6d1qcFhNs26WaicaFwTALWt03mfpaTrtCHIBZPtjPEmMT02kHd7s4tGkZcTh6BRU7/CP5u7kwnIvoUktTTX6T5glQ88+TGzmjBuH/68fxGM5qXIxMppefPhexvzoEqm96/4K2eSaMJzSP8OvVhTDBzfTjZ4BJdEt9fTE23hCxOKsSKfnW5OEaizuD0U5QlU0ODewnb28b7w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qzbJk0zHL3K4reegkmZaWVWTpGKn5JHySJvVXe787q+2sB/zMvXJUWshizXz68fvlgUdmaobfWWwcRF6d8A/c1WrB0bC/HpTwc9edUgUmNAFHLD/MUS9+jCjaZxHy8GRMOkS4jaMnoyAWNdoGr+FjcJh4ol0a5YTrKoNW67DRuOH+PmWJAqr9e1nQzgA/ABw4RwByt8XPNEOWaHynF91zuNgFCG8qeADUiIMEKfKSYley5Vc6Let3m/kTQyTdQXS97kzLMd49uzfVErerW5V0GYfniPIXpFFqC6Y1j8ky6SGoRqWiWF58u7u3gkAgIvPu4935wJXu1Jm0cGwAVQCblaYypXKvOZ+a/fjwOGpaQ6H89A30F2ejKOmcdEx5g9LoPl/JsEA10G4jxtc7orI7fZOYl9dsfa0ct7IcaXIwdOkPlEanAWd7CReBhcyZqeEFqD286R5kfaQnW1JTFgl5rDiLjehlqtfDsQzqjbo1Hs5IkoMDAsP6xkJfI3CspfrasS4pz4nmVpuw4jQ2qjso0jaly2V0D3NLysuPf7GybrcV4XAIIMqnOvdzJfo/OZUavLBpdeXA4aqFak7PS6FIp0QhBWLHNckTIz89IQ217zgX1c/7FhLH7AYBCr2DazeITtGrO0eC85D+UW4kJF70PtA1iRKdcgi+AloECWfAVsLb6fDRpbIUKgKNPJa/MF+mUq1AUZouqwkH30rBUPPx92cpFOmEwDza7JQgmRIN1LgF+1cLcUJUQMk/QxkCuBU1yCRSDtfFinJqm4VAMcMiMOCvvWuQ4H9xtnQtBLkSkO8haIfUkhzY6iJ2i+I1SZQ/DptKCbqB6H4LSBJKl9RyRLrUgkU5lmhJFqprEF1+c2LxO5/ajFL0AfH7md8CwF3aoVOcfB6tVAsmD8md0s2RSS6HkbPGrgOnO88CA+Dg1SKLFcNJSg7Hm2Vu7rYAyBzVoT/lvCL0B0eBkcNsV4AlXdTr5duJiy1B3MP0xG8gbUAGPY/PfIhBUlczlMCst7JQDmAWxPfbvv9yektpKt1rSv31NckRzJJEzwnSqCxzj/KzFuifD/+BfIJ5GMwlOfqIYgGaAIQ3fv+fsuip/zonu9ZJegi2FHiix2mic7mKZeLMzfuc8IaQ4EIB8i3ZsZg X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33069808-d3ed-45da-3aa2-08dbbe2202b0 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2023 23:49:08.7588 (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: uqkSeEHVZC/+w1DIELPieGGrlz5rzL5ah83wPksISv1qVOkMvCB8QXxEhDiKBQOv1Bl8HE/71RddTeCOr1o+MA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6730 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-09-25_18,2023-09-25_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309250185 X-Proofpoint-ORIG-GUID: 6RnVGTnEGP7DRF1qI71bwVf5vsu-1iSt X-Proofpoint-GUID: 6RnVGTnEGP7DRF1qI71bwVf5vsu-1iSt X-Rspam-User: X-Stat-Signature: 7pt8q77irotxhkact7y8yg84ibrfbw3a X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 79C14C0013 X-HE-Tag: 1695685781-757692 X-HE-Meta: U2FsdGVkX19iyhSLEZRWkBzcJ7jG3pbnB/RTxuSHqVP38KZGUnHJMMVdAYmfgUxNjEGwCrVlEX0v5j6h5ZXzYvEUQkgq9g775xwVvJ55cowErn2HvyEUFlr768BYCt0VUhkUNE2KmIueyF9JghdEN9XFnpn8vjMjsWiQP9XrBDT6YRBs6IoGjKylyUxGqe0Z6uMUWJG9DODurcmuFds85sk0aCcsXuHjJ/36pFcaT6HAdwgjC0PmiC65jeiRFKF1/RZ5RvMS+fF75Cv3ZnxanPpDlY1V2cxUgzbmz1HkseVwnLJMrWAKDiLLz6H87WE9cwHWJfOnBI2zKv1R8G99ru8xVFOfq6Q2n3E4gJzvD4zocoOTVJRQvadk2EaV4HS/Jfco6E6xreFITYoHpc+/T3Lv+iaJvOWE8RG+pt6UqUxBwbeZuDfWYVDOvZwFAmQhnJciXbJNcq1XeS7hO4D9eJRtR977bYqD3j50rMj2McWSw53Hkiob/EOIcF29Ab4/fvlVzYPEMyHmIsK9OOkHfWEa5vi5AveD/wqjskGQJMpuTgG80RvPQOXzGezfNJ6iLA/0ZKZfNaxuJBwqJuXxoVqgbwswbNg+1yoaYmUkX4l6K4k8aEntjmKbpZLNzMzeGS6H9W5BwSP4KCw1uYBK8YsWrfZguffDreVbMq5EkFJVAdeaeQ8eKBRo5aXWkWkn1KbdZNgTW6ltdIII93e62in3qZtpdl08cLXDwKvsK9aiKm26POr9BkZ/U2jzfi8wW6/9ZQ1qC9U1M67SnLrHtWVKBF7r65lRuSX5W9jHbTmOXdL6ejnn89segRyCEQFk0vO4WPTj0uoxpjju9J98Y0AhKWbXJK2gm7rLpMAtk4JUax02NRAsSwBTgWqMMbUOwnEkDawVGNC+sK6GnZ6GE+iwuP5mcxVub0ttmPo9Z+ddAx2Q7QxrhOT/y/sDxmf+QI40HFeKIYWbA1DlgV0 1q6uc4H2 NIN8krGElBpVUYV0mKEQ1Vp/XFK9qGtlmblezKfnxtxYhaV7EwIcjD0dwX73x/4jykyTizE9/vGEajQrAIm537xhLwSFA9YEIPfe8Fr/9SzmKdscc9mTJPduQvBbz1TXEpcPTBKKmUfvJmYpekTjbbmqKxfob6PiG1mF4Im/Z9JSZMLg9pXnj//h7tLdjDwbnn8Vvsw6MaMo1YYWZDOKCL2wM9wbvyjiZL0ENAhPeFZ/+OYDewqPmzZ2qO0WLvxi3MdQz+ogsBBfWdqBApEp0t1WhCTq8MYGEKYGjk9gRvEVO9sYwmHm7h3sWxFMh2P1Q/TkhiQV+QdW6puzhQ1yVZy6uqGgJaz76CKdDHv1UF1QuP6mQ4BcMXt/ojtkMor9HD+9GzA2zfZHpO8sRsD91OiZ01DFUgCGMlMycpLRq8ngNgwtz8zu8g2KE9xrVwod6xzqBAmguYZSb7OY/CTYe2tidB5BsTkyxNe6vksc2Jk/Ia8CFkODvkGwyp0ldE+k+r+5dpLATJkWhjoTqMxoFYkXjrrsDlG9vvUalOZuNbZ3mzvYrp1/I8ulreA== 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;