From patchwork Mon Sep 25 00:39:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Kravetz X-Patchwork-Id: 13397119 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 BA56DCE7A91 for ; Mon, 25 Sep 2023 00:41:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 55D886B018D; Sun, 24 Sep 2023 20:41:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E74E6B0191; Sun, 24 Sep 2023 20:41:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 29C9C6B0192; Sun, 24 Sep 2023 20:41:09 -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 0D2416B018D for ; Sun, 24 Sep 2023 20:41:09 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D3D464067F for ; Mon, 25 Sep 2023 00:41:08 +0000 (UTC) X-FDA: 81273265416.26.9101A59 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf18.hostedemail.com (Postfix) with ESMTP id 75EBF1C0006 for ; Mon, 25 Sep 2023 00:41:04 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=ep1qyqEV; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gIowThSl; spf=pass (imf18.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); 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=1695602464; 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=FBeAGWdicV1sD/nP1TTzh3g8YheRsyAqaKqDszd/uRYjIG19TeLCynFHYUWybAuGHfuKS3 FSiuQktzNX3A9f+fh5Z1iLsZtdRWYVrhPz/jKJE4ACzcxsrz6EPxUP1wHLJoorWmdu5mDT lwREPs+9qYq6vZnE7J7WMZPoNdbRlR8= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=ep1qyqEV; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gIowThSl; spf=pass (imf18.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1695602464; a=rsa-sha256; cv=pass; b=5DWCNyIjAtF1+v5P5xPaNxRAZpCrCR4DuCgn6IrzId5khL4WqLWaBm7md5Dke+zUYZLoQ0 7VswCtPMLtP1awjIgYRdnlFF4ckGxdn6bNTq+Xpd/zzu2g1Z5Wf/Nv56xKnP8g8eHfeFZ0 hfEhEQ53FmayVNC0qC7kD1U4eCID8FI= 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 38OLsBVC012416; Mon, 25 Sep 2023 00:40:38 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=ep1qyqEVmrzBRT2+RbRmWKqmAwDbD1zK6SVv1Cyx5hp27Zozadjz4NnMSd0jDzgyOwIm z7/b0IHwKR2t5yvxDOMlmc9mwAWNpqGbQCyecgjCviDtfD8oMMdq9B8KTj/xv+WNo0e2 EneIQovAVqE9AUMtFj0vDxPmTompUync9x5uAwET24uPpkpY3ikU6hf0ieAsH75ffLQR rUjaxuuiTnnzXLa/rkahPQxoiEhNiA7Z1sprZizq4c/ns3p3e4Dh6dlUQ87nEfwuB83g b4Y0Ol4eLgtWQJCEyabpZa/BA5IibI432VIqvSWQ0dln/kexKQMGenmZlo/1BCqL/Ri8 fg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3t9pee2era-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 Sep 2023 00:40:38 +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 38ONoR1C034959; Mon, 25 Sep 2023 00:40:37 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3t9pf418em-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 Sep 2023 00:40:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JBWfd9CL4AsBujLRTY4kcV5TUp4jdIs2yZGXOK+dtNLO4B1xn7E4Bls8mtY8VZTCxibSwgGFwd5yAq2h/lmd9qw/4110hF+8wNBtn0/E+rnmCtWy//EyVbmkFKT74ew/ZdNIuF+U/ViZHcznXmMumPMzrt2hfHfkChr8Dl8jPEt8hT+dBloPd8zOuQMNjPPdmH+ZfAck8mZwSsBWl17d0y8cDBmc2fiQXcANYq2zQ9cS17VG+L6B6h8jLWOcRsjOuBpqaiwGPat/HYFNtIfVCft5Ad2M2YFDUO6ebML6x020OZyyLwUQVcWR6Mu2W3JUIszgkm1P57bPqUznArP+JQ== 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=GXHR66F8K7zQVewYTa1fh71lfihDIay6xt8k6AgAZsSUE4sfy1eIQsk677+C2vgt6p9b9wmA+iWlupI5pLPr0u+SRBNW1II2lJMJmvb/04sz8kJ7fLCrd1I4LmDCS+n3tU1H9a+4nbR05T4XU1KKeBpQLFzUzwOo1Eklwe4dhz4W9qhxyQwxSoHdFiMkXvcjxuoX9h6rOkhP6N4HjV3Tif21nPIOWFcb0PInR1yGRfnXym8Au0C+voWAxLmqleYiLj/Z0MCW6iYKA4rW1BWpuifAxVgWLlbkHBHP3OXorqWgfkuIwn///DCEUAhXWruweoQMsoEQ7qRVtOTJYATIfg== 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=gIowThSl/plu+lqovuRlFR2YnBDhEQQu2BEDP/j7M6JKCvrdm69VCU3MglXOQ0nXe21kC61ymba5gYnTUAIVGQgWjBZTtUfiyxI58H2rMD3f2nAKSUDN/+yJ0l058WV1glcr1gKai4AKya8vobHO/FrvK4Pjs6A2ybfu8UVGvI0= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by DS0PR10MB7174.namprd10.prod.outlook.com (2603:10b6:8:df::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Mon, 25 Sep 2023 00:40:34 +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 00:40:34 +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 v5 8/8] hugetlb: batch TLB flushes when restoring vmemmap Date: Sun, 24 Sep 2023 17:39:52 -0700 Message-ID: <20230925003953.142620-9-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230925003953.142620-1-mike.kravetz@oracle.com> References: <20230925003953.142620-1-mike.kravetz@oracle.com> X-ClientProxiedBy: MW4P223CA0024.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:80::29) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4196:EE_|DS0PR10MB7174:EE_ X-MS-Office365-Filtering-Correlation-Id: 850d5942-369b-42eb-e66d-08dbbd6007a3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pQykPRYOD8wuYtR72o4E10z24sJrFYeKoV2IbpUqrUUfEjkukxuOEbWJg4w3JPIqWBEKzql8S9V+eHA6d82Az7w8aaKMWkNolH3Rzp6bCknXJX8bLzyPsH8nWvBXI5qQFkkVngoSfE0TMV8PfG+LW8Icsl1ZgDPiqIFP0cp/+NeoV6rcNTpYCW7/ed2n18apUWtFtm+MZyS3yvI1XECCd3tb8iTNYEsuV7n2KHWVXkjgyBillQOKUB04qW4OjMiUguU5ikEpSjjLCbS+hUZgup7YLq5bnYbTumShuRIblEqEdR6gliJJorhPgWdur/rK3WiQMNOy09YcDccPtuzwlN8yD+J7H4Vin7pIh9UkYYooQhCfBD7IdlAyuk/EuApnqyqVh65shnYPfaIRNidrKEHLa5r51Z2S3YUjg0m1lCcPxNCGk/D+EkBMWbdI5szAA9PCkr3v0F0AAGf6Vd7xmfbIjXGcyC0+rGveYyIg2U33WOdg0OeW02djgv0HC/OdbybZPoRtC/h3erpkBMsOHhf9zIMI8oHx9PELk1S6CZ6wDj/+7I5KpD/A6JsKio6U 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)(376002)(346002)(39860400002)(366004)(396003)(136003)(230922051799003)(186009)(1800799009)(451199024)(6666004)(478600001)(6486002)(107886003)(2616005)(1076003)(26005)(83380400001)(36756003)(86362001)(38100700002)(5660300002)(6506007)(6512007)(66556008)(66476007)(54906003)(66946007)(316002)(7416002)(2906002)(44832011)(41300700001)(4326008)(8676002)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tDKvKEUfyS3vqsfjPMflm7+M/+Ms9NnLXCWz2jMAhavmz2C8sJNuujTtWU9o1V/rtn9W+BjZqth8/QoPn75AYLQadsrGHizpRlSgT9MB8Ux3YhDB/hy1W4HRHRPbEd1xKVDD7OTFuyYcptE6rXD14s7n6ksJdx1F0vS7BTG3hg7mitzxtCRD1ZoJGfNobr4iAVNPl7AqlBzHmdQF5epco7MTR6YnFAzXJB5jj3AMgBD6fWqcne6za5zj/tCsNI2HFDlr2dDaFrT1dNzJKVgm4xB9OsxjnunrQRli9Nv6SBiyFUB6+/CONno29ZOO/KqjKEFkD0PyYqily6hy2/aF8GKCLGrt//Z1bbXKi1c5hP4mWC+1tWCs7okUjVOAc+jMVmqTMVC6/xA0e78DWHTZxFg5tOYqDvFXPuKB97Jb4LyJVY2bcuUzL7PZF/+oTdTWUNidBN2qSxtgu7EcCzNKjxcF1hPQnrChD/YIHMG9CsIfJ3PJgbATugxIOzwpo9x66oupilQ5JboAYmbSy1IW/OtqGwAJcd+mHUPoYGTShR0l5p/dblLO7Bjx+XV+IbNPnK1rGI0pNOkYDD2I5taNWwVEHP1h57+hCiddBf4xb2xHEQSgP6O7+9+TzxmDEoT+xxQBrgzUGV2UDHTeKCZL/+1bbGSP61kDrKS9FQN+AARSXvhubhbpdgsyqEXvBGZ2Y7xQL+Rw/SlH6qk4sCfy9fJmX1d07hTUYkJdjVL1WTUMDZaK94/iCVqihjiAcNgbjySSxdSkorpgEIL48TO9CMADdsWezlUr5fzFqwTeAXSexXlFR0/Zo7utzB4uz8GRoMFSuZ3Nr9KS6ZQt0boFDtafUMgBWDVMP5NY0y43TXdViPliDeSVz+iYT24mTTV5X8V5GV6LFI/jSJ/0cZxQbaSJpxmzAxYmXQZM8/VzrdxGpLhSVoYgXzl3asC54H9BqRbLCqEecZv7vftHV0DnbRBc0n0PlZbFtu/aefYuk3iZqnx2T/pgZ3oMdCFGL+QopBReYkl1K5Z3CW/Az1SLw2i3FjVOEPTYvLjOPVlOo2UfIO4LWwKvby5uqPE7WmH3MBfVq0/WGKl4EkFUOPCdAqMgEZD4/TqjEtC4Te87wL/dhXsuwRZU4x9ohkJbrSrW8uKGuE7iH6pWGDMrTzSlk3u0CDC0jDraJrO3f+lF0LfCBmJ1wLYHNQnWvdns2vHJn98k/9NmpcUvLPbVpkR2rce6DVJyC5m0jxu7aflqusY71eLBJFNL53SJEYzdR9xXSzqUIpugFWZn9bMhnrlxz1VyGTofMynppzw15301ips/c2GMZemqYqqp8LihCQWeDN1o0E+4BrBfWM6Mgzv5bbsTQSXv9zxOx3Sabv6grtr+LVtvYqJQ9iJI9mUWasNXQqGhzmluXrBC44NB/GH5Hl7Z1gqL0evyxERr5VryNUdmT22Jqtwc/fa2JtR0QkNG9kNuKBwLFnijaevG6qaQ517bgUuh+LM1BHeE1SpytQGI1d7voNc7E5cien3bNaPNyMLIGUa2ekUPzekmshJZXp+OK5vZbxwPUAddQ54DDV6qSdqXDd1mCcEkN4Dvs9KS X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YHyqp6+/8bjXPej6JaTFF8SsdO4nCxAGxBsgEbJkTDlTb4bcoQXGC0XpcQHrKRSsmJvpYBhYtPB6cAOe3UhhbIDonpAaBP6di9NCZiSyRISqnNS0I7aRYhCEy1X7xtSeZHIOnM/ooGIyVj20DljBptkgrLizz1iLutuTq+I6assVMnYY8LMCokBTck2T58MlgePPQLxC/NTohGPMNfbXkllCuV+TRvEKm9i6Y28NPo8n1kCUfY607gWl92AhsgVtSbjPZ/fez7ySzMInILf1nkdHvdIX5jcCSJWg9b6PJjybiiq2mBD4AyRkDCGJlV4BQwmNNn3fr2srCD/NMcOfS9AhfA/kNDC7GY/O5xfUMayDM0Z5XARkx1bFW8Stn8ZZjoMnNsTaPobRhIDmUfw92QGD+u6xX+3HuWjdwVG0D3nWR0jfAw9atSlHxlCGW2sEWZZddiM/FBaCSHvC09nDyMXnO34MsjTutogDGPgEXesX6zcqBHXbDoXqQSCL1p+FnfSecyQdJhNf7SeCk13Bq4qvTwpxdgdvY4TVo4YkauczzYelqA/sptOnpHCd/4Z8Cg7G5Rj2MiPlFBa+LLzyDwDrwAdvU3Rfv10ERCz5XvgnE/wLKcarYtiVhH7m0PqV82FAfnjmx4jOVJ3Zx9XMeqsCgYf6Mn6gWyHFSgT3LxVozyhhbWH1joSJ7vk7JVbjwrrVZnSV97DJi3iMEfvqVEBQ5VyLJAHBUoRyJ6yyHrmWXNoO9a+mfAlUEW0Dfrh5yKSThObU37t1rdVh3NsDqeifR2aJ28thhxPBVc3cRnX0f10RxNjgy5qkibA8VQOmtWAMgHJfsc8sfmNcHQpCh7xfsCvIKFiaHxuhHuwXLZXZJuOXopGUwjfXk0MKnEF3+SzgfgNe1tvjxHuqgzgOF/Th18oZ7l4LOW4RMMZYDNRPiLJjCGgVxEHscOpRsyjhjj03NVPauyQ0ijI23mwigUcMktd8cP8zjszNLQCWzDui0SdTx5Agv1P/qWL0FLAPVjZIoGp1PHDFRXGFzCQCD4DOqNia6i1Horzmui0I/cfu7gIcHt8gY+NTLxqi64S3RGKm3343l2bGLx82ZpVJF9NYMJkAdPGjVm1FfgyaNfIgLjFrSMVa17RU6nZfdcXU X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 850d5942-369b-42eb-e66d-08dbbd6007a3 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2023 00:40:34.6878 (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: 3paTb7dxTRgo759+XdEXmKnAP2aiveNoFdqXOPU52e19++MtE64aHco9zRP3MyTub9YFp8Uki6hy9XYIOZ0rQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7174 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-24_21,2023-09-21_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-2309250000 X-Proofpoint-ORIG-GUID: pSbux-Z7blrrWnBynn8BvvvvUoxkzByW X-Proofpoint-GUID: pSbux-Z7blrrWnBynn8BvvvvUoxkzByW X-Rspamd-Queue-Id: 75EBF1C0006 X-Rspam-User: X-Stat-Signature: h9mi3mtqs9nryfu9n8hob6xej69zgj4e X-Rspamd-Server: rspam01 X-HE-Tag: 1695602464-583385 X-HE-Meta: U2FsdGVkX1/xvdUO02tLvYYUNiDLN2WR8+R0nNQO+Qw3odxHL13uPqBzB9qO7fVo9t0IIFvoIQJDf3/Y51+toRMyUWvUHAd8nNNQa52WLa8KqRwmuEPxwQatAGxmi3U7/3Kv51TeKo4ew4asC+6uQjBNED+c73P2SA3BSfW48egFnXifpA6uCNC+8h7h9EemxLJiky6Jkt+s1oa0x+qUROjfNGpZORpIEnM9aSDoGKbvEr0cbTi1CCk8E0oxKPQ8Am+GfHyUL3crRrxgfU+LsgiCmuFAx7bhG5Dj/slSfZ09XSx6Uo2AlWRRS2MOHMpgutnRwJfBj6gNKNVfEneQZoLoi/sQwaIXZNe1p2AoTimnMgVMrP5p8BVu+NVB7d6wlGSL9tQmWeiLSPqO7DCF4bzhShYBsUrLsOMmJcgk/u4zKlu5skMCz+JCcGXl0ZL+2ta2ZBUQ4nMNsMeQVL/UriSc8qpHsBJ+pqElcEXlljq0lQWfTDgoYoHNCRE/zPTf0hc+gqzMx/LaMcaJT6R9spCsLMkFseF9WtbEsBF4TocRZ2enXHMKwDatbHuES/4XtYPO4UCROCVhKLlCgzcJHV78q9bj8AOsg4wf7Lnk7SttbG3HJYT6aiyXBh8nCwxHeF1mQ7GvtRQdxIq9r7s34g3ywI9ddzniMtbc9CfUlVo3EpNpFyw2kO99KHFDTTJ/Z2IACxGwVqiQkRVWy5weV6tE3pZro/i2gvutJ009nIloUvItK82VTYG95rli1uaVUfy8Pycavc5g5bdoXijy3xxwlBPL1pE98GXpIFiIik6tQ5v1PixHqBVESn1c1vvtEr9dfPdm3T22AKUwmGetmqldyl/lR6sP4fSG7EzpImzYPEBE+/5HMI7sekDaXfCkObHK8nJq0jO3S3x2IPBib3X9PyYBfFIl+YM54eB97pqJTJjwrbv3ZaT2/u1Q6M7JRypL9g4FEM29EaLbtVi TTShtoUw eItx2/ccXoEY0QTOLeDmpS4pUbDEXSvD/mZT/A5VElmNWTUarLUccGlUoyebI3ZtsHLpx6f7fHL3Wp1viOWodCAs4wcOFCAxQ4Ln3VJEBFKfYK4G50LkouRui8a/lvHJAgyb+vyaujZl2ifTFKhHAbsfHibqi4T4jobtpVvHJ1chLnZ+/+lRe4plO6YFd7Nz6iYOU00Vej+GKpzDvLi8lVgi8EGu7qoKufvPqnq0sqlJhq2QqWpXmQPypVXxGmQ4WehIck6yc5uOm+IV0sAFMY5w2Gg5/wguz1RNGST1GtRCAkss7jxnuEAKFvj1XbwWg3h3KJw6DwGzIpRLsNFmQEL+eNmy/QkADQi7FZHxyZdHgbJQTqrLaQkAZPJ00H83lwPhD+Q/Ryix1gM18mDsiM1vg81tqrHdQexCc 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 --- 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;