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 42EAFC83F17 for ; Wed, 30 Aug 2023 18:36:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8C635440165; Wed, 30 Aug 2023 14:36:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 84EBF440161; Wed, 30 Aug 2023 14:36:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65327440165; Wed, 30 Aug 2023 14:36:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4DDBB440161 for ; Wed, 30 Aug 2023 14:36:49 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 1DAD54036D for ; Wed, 30 Aug 2023 18:36:49 +0000 (UTC) X-FDA: 81181627338.15.84BBE19 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf28.hostedemail.com (Postfix) with ESMTP id A1F67C0017 for ; Wed, 30 Aug 2023 18:36:45 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=sdVZffvs; dkim=fail ("body hash did not verify") header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=OE56FTWp; dmarc=pass (policy=none) header.from=oracle.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); 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=1693420605; 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=EpmwRlq64b7K8FZ1FOHejWVGmLun3o+KPVJNQqNUyZ0=; b=XJX+C+xcQ84Fs4wN9HHHDxrHXFU5u0IyCv935gigzjENd26OzffAOJO1l2oD4hICvIqaY8 us7T0CTRQasQBNlnuVReHJ26KdJi+KmNFg2kB/UCRKlc6kdHu3imiHJmtFJ5a6DN1JM51/ dF3QXbGQ+q/RQ/Zdi8Qrp2EKpq18Bqk= ARC-Authentication-Results: i=2; imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=sdVZffvs; dkim=fail ("body hash did not verify") header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=OE56FTWp; dmarc=pass (policy=none) header.from=oracle.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); 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=1693420605; a=rsa-sha256; cv=fail; b=Qa+XkMSIwUdGEL/IgOgfO3Rms9GjTY1pGZRo9Jv8H8OzMR71GdhiIcauy1IW5+GT0/iXY1 7rOobFCu8iVcCJizjoH1Hu4qpWNfsGkgRbScI1Egsh+NmXyrQlZuPWYBZ0169T2sjU95yq YB6eEFK6FyOo6PHImNBpie8gAxIKV5A= Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37UHHO1L019195; Wed, 30 Aug 2023 18:36:11 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 : content-transfer-encoding : in-reply-to : mime-version; s=corp-2023-03-30; bh=EpmwRlq64b7K8FZ1FOHejWVGmLun3o+KPVJNQqNUyZ0=; b=sdVZffvszproslSYNlxTNF2SOIWUJSNaonZmBMWrIf9K+z8+BMEs+OkKEG6ct1ZXkLrS URPGhyZhWs6IWFR8h8pYYTykOabzA2ecCwI6uT39NYNxvV8zi6jcwfeGSB0kXQjXKzGn iIW2kP2vMOPQJOrxEq22oF8HOeIILuR0UnRWAZ8N4tKx8tawjV7MuxA2iNc5EGSIFurv gelVQEO3+8y0ICAygkkl7VtJhhJX/kkqlmRsi2AeXZImsznh1ydtNcG15g7R6GZqU8B4 5r5WEhLw5C2jWYX1vg/bItLYrwwqgUFN+FFidftEvucMXbIxkWZukgMIoT71+HK9OLMF HQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3sq9k685d9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Aug 2023 18:36:10 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 37UIBJ28009188; Wed, 30 Aug 2023 18:36:09 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2101.outbound.protection.outlook.com [104.47.55.101]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ssepya7sw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Aug 2023 18:36:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nXQsNCAIBhYusKM9yBe2RJr3FKzOOwuGW0Mzxli2QG3ZsJKSWyWW5SnItxrmRPHgSrFEWQHxKzGmE+yI7pSa6qIvFL0hxduAHN9YwhDhmYuwNPd3T/2gmB7RmzD2KllnP59+cMNMucklKkW7RR/G8Juj8ghkmSMCfpS0FxuNERMEG1fW3mh6IpTbfwvWstaj4XzCMtP/GCBUl8f3y69CHvj96orgnUdO2jYUGokoSgbzbzUPG5to/C5EK5obcL4/iNrIKWKiuYGlA/+/o8qr7pIXMcTXzwRJ5qYT94X40AEGYuDfE2qbFy5hCjGAqA3B522EsqyVj4JBH7vbBQ9fvQ== 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=W7Ai66DTx2Z80gvdiNIRbOoQ8PZLFM/SqmTxgkAOtRg=; b=b8TrRL74i6k6/UEq9ytiSn7tqsGtfLOrmmFmJFb0CBpJJzVikbxsVK1mWB7ortjh0tBWqb8Re03rXF14yq9RUH6lGDEhqfz0QWmqczdSjvGYMC4CAnK/hwhkxnIh0U8ZuxDoT+kb9JdWisV1pePe2sRDeBMoHvkPi3iGaFBqdALBOcyxgm6i0D2S8CpVVH5o48pmtcnlFDY3OPgW1EoG2lDwiuBovU5V/J4tqsqtCT6m4rLrdIG9vIEcn8oYTkhb1pjdsIPTBEETpwM/t0fH4F1f3Uqe+z3JaF3dz94cqOo7p8XJmG/eYLNXcUMOyAc/gQoAZDEDSBGwI1fBHAC82g== 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=W7Ai66DTx2Z80gvdiNIRbOoQ8PZLFM/SqmTxgkAOtRg=; b=OE56FTWpQcw7K/8VQBsOXIcARRTeTZNSkgubzXUAYtRhvBUcXGwmvqEwnq0edoeA1pPMtUCWFKCO14o/5c7Pd8i5HnYZeqOVYMg64QZhafwZ5CDFcgWB35suudLLQcyIw4up+gpXlmLH3iCUdl6ePuBmxDrrxcMDcusksp8481A= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by CH3PR10MB7415.namprd10.prod.outlook.com (2603:10b6:610:139::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.20; Wed, 30 Aug 2023 18:36:06 +0000 Received: from BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::58d8:cf97:ae4b:1715]) by BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::58d8:cf97:ae4b:1715%3]) with mapi id 15.20.6745.020; Wed, 30 Aug 2023 18:36:06 +0000 Date: Wed, 30 Aug 2023 11:36:02 -0700 From: Mike Kravetz To: Muchun Song Cc: Muchun Song , Joao Martins , Oscar Salvador , David Hildenbrand , Miaohe Lin , David Rientjes , Anshuman Khandual , Naoya Horiguchi , Barry Song , Michal Hocko , Matthew Wilcox , Xiongchun Duan , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 08/12] hugetlb: batch freeing of vmemmap pages Message-ID: <20230830183602.GB55006@monkey> References: <20230825190436.55045-1-mike.kravetz@oracle.com> <20230825190436.55045-9-mike.kravetz@oracle.com> <79f4d305-bddb-9042-d15f-a683fd6003d9@linux.dev> Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <79f4d305-bddb-9042-d15f-a683fd6003d9@linux.dev> X-ClientProxiedBy: MW4P220CA0030.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::35) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4196:EE_|CH3PR10MB7415:EE_ X-MS-Office365-Filtering-Correlation-Id: f97df436-fae4-49ed-41d5-08dba987f896 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WoGqBRGMGph3XDmDhS2rKZBSyQmAoMdGBrla45MF4iwuJb8TTFv+Aob5Iko/3g/bpcqmD00132UxGWeTHtEqtORu9uLece+huQrdVDuE7lXdc++bLJLvNIRT1O+jzbd0LfPCrciB/29QUXHQZeDo8ZtopztDBEUdkCKEbh3hkbgAeND6MCV370utIxtE7MPHHnNHkHkVYyik6TpFU0vZ/a+G7j9kk4AoxgNcWMcPjF1DmepvvZSoXs8zKaoQaixvv+qZoN9TJfK9+B99YPSMdzb4/hhSfYDwwTME1MhmAZjiWmO8jjKOKq4P7pembpfWqD528nhn1hRYD5QKRsQGswZtPO/vkiC1BLFgI5zqTAapn53uJISKsHSK7nZBaeu+APxj+tlbga0VXKossKGps4W2S2GS+TlbD2tv3CmuwmmxMLtW7T2Ne+4hqhUG7ULtJ+HnL51DSILDm+J2UqHFZ7udtUO1A/dXPPW5z+ut99BONvYl4SCUJx4G8oqBCmSDKBrwxdNT8j8HSvvVpVYcda4+c5px3agm467zClBIhHLU412dqeQCTRfAIYZMfpx8 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)(7916004)(136003)(39860400002)(366004)(376002)(346002)(396003)(1800799009)(186009)(451199024)(2906002)(316002)(54906003)(66476007)(66556008)(66946007)(6916009)(38100700002)(478600001)(7416002)(86362001)(41300700001)(8676002)(8936002)(5660300002)(4326008)(83380400001)(44832011)(53546011)(9686003)(6512007)(6666004)(6486002)(6506007)(1076003)(26005)(33716001)(33656002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-8859-1?Q?wctQEJI4KSWrnOaPRWs0lwYoBmdVAW0L5f3v/ctGJmmA6O/CH2nrL4DJhB?= =?iso-8859-1?Q?KCASsVrftnBjvE6ljdjcoe62YE1bvqp56grysroNg312pcYoL9ZKLNqxev?= =?iso-8859-1?Q?9snjFFwxp+8hz98CPMWnT6t1NAr5+HizoV+33z0Atvqmn1YSHwD9j+ytgF?= =?iso-8859-1?Q?+RwlX1OBHWqg84L2uXLiwgDIUggR/m9V1TdqFUVB4Zps9rYI0Het1Nkopz?= =?iso-8859-1?Q?6TeD6Mkx6K5ROdb211LcB09iLHCaBHRe9NLMjU4wcEySsJqEqU5h28YqWp?= =?iso-8859-1?Q?9H2ZKICZbSkhcRmkSHzk3bno1TFdPcnJegwJIC7OxycDj/zWn32nmxxikB?= =?iso-8859-1?Q?YlG0paEvvT7zDjPy49tOsyY/6ymO+WJJqncwx3dhYEK4h4OSoZnA/ug10L?= =?iso-8859-1?Q?VSU6xqM255bU1eIdGdhEZVsWVa/p+lyalH9sQFl1onENbtXl8utL5hth1i?= =?iso-8859-1?Q?IZN7+pUbz8LKnwau6uPkvGibCjnNbYRp/tnapSmNyHlEzcyANJGuZbCIdA?= =?iso-8859-1?Q?0tJnrqJnF4EFQA8i5/IkeM2VOzYSGLnBdmLKfPmKuHuDBnElcbuRFXfqzI?= =?iso-8859-1?Q?qqM2TkkEFP09DxStmeI5tZQ1oZHfazr+NtBdz0+j39scv4XchZESk/W1w+?= =?iso-8859-1?Q?wHdvqQn7rZ7nulc6U7hULXt+TFPz4jRUHTTcwDts0SEmB6LN0UmIeBZdBD?= =?iso-8859-1?Q?fVPD+Y4mPPuNkKkgEsn6jvouJrlwX/dpBrcGjmpPueelOnHEhbGn1/liIJ?= =?iso-8859-1?Q?NB2tJndYjdneMV/ihSs8GckzukCMpLjTeBG5Aznc/IQkfZJBFx94tHFoDO?= =?iso-8859-1?Q?/w9xFcbf/TfbZP0OYGrUVgj+TxkYjtQtMCUnTGoeBDYnwHZd3GviUaF3IE?= =?iso-8859-1?Q?cyTS2ftAc5c+jl5y+vw+LPgc6UIiHcdVGzS+eVFiWiPJocs3sht4wPm1hh?= =?iso-8859-1?Q?Uvf1id7zQMkpdfXrFQLEhTpCzFmrNiNoBEBc1tQkpwxVk4xaOj+IVDpX5G?= =?iso-8859-1?Q?DuG9pVdtywouKSLnvdkI3QgJp/5YDZvRf1mCltl/kiIZ9K1s/HRv7qQ86U?= =?iso-8859-1?Q?8e7Cs6xKoLWqsc+kaPYUUhUiHfVx8DsQ+wH7hNZW+eKIqI47HJ3x2APnV+?= =?iso-8859-1?Q?ufeAitt18D6XJcDa3mtbae2OQlGFsI4Gx8QQdw/Jo4REE7BlDz1wnUt9/z?= =?iso-8859-1?Q?CBUP3WCRTDJghPoXqQcMfd2GFTtMyJLwTIpezlopuCF2tqmeCbz+KTOWnh?= =?iso-8859-1?Q?aqu6P79DQPqoHNSZE1qpleZ0UTvtKm5d0bnc9xcy5NfouvK9M+q7uJgtOM?= =?iso-8859-1?Q?CNBdMPj1LgHY5on7dwM3dxEpLmfYgXGH1cevX1Ww0Jzc4lE3PDC4jTTquB?= =?iso-8859-1?Q?xCdCxc7FVaOREG4A8OsM+11SgkTOyvj4pZar+yANkbGuh22Xd7nW+kwspl?= =?iso-8859-1?Q?m1Et+ruvzdnN0zIQ6cYpHfiUUppUHGu2qk4ApHwoihAIgJxcW/chcTByaH?= =?iso-8859-1?Q?aVRrgqlax8pheHkIk0t2QQXJxI1gHXGY85H3dg3PfCRpcGzFtWGMoKZeaI?= =?iso-8859-1?Q?W46WGKbg+WvAoOxpK8MASQIlDoRlhDYRtkvzqz48wOqUVgrt1BNHob+7E4?= =?iso-8859-1?Q?XEFgzLIqFqyNzJzZtIbFIe/40HIlGCL03UMhmgmD8+NMDqrnhpaWbxcw?= =?iso-8859-1?Q?=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?iso-8859-1?Q?TpFr1DNleYXft3SiyayQiykZ5SotpMdWq7EkuErPY3MA2Hc/g6xqX98MQg?= =?iso-8859-1?Q?OVBqws4gDMRrBIQCAb1lMJ3+dLrAZrgCGRiBviDIlnhxcNeC81aAKmNwgO?= =?iso-8859-1?Q?YZ2LPuW28arI2K9D+rrpi4qYgXHF3uji3nf+3Xb7UyXRA/p+WuhvlUvgaC?= =?iso-8859-1?Q?p7od8MmPA7IKEVPObAAXFaQvK2StrnPVBlbATchtR75rtI9pQvsIO+YFre?= =?iso-8859-1?Q?gYiRAq+skXCgTByEy0PnpvrzkCAATCtUelw2/gi0coXBb3VP9CWhB4mMC7?= =?iso-8859-1?Q?Pfsm7e9Mf4+8Vm12tQ5xxx9NluOZbdul5wnfghfQ9m+jtg19zicB+KZ8z2?= =?iso-8859-1?Q?99HlnCmkPEg25kOh+60Y3iXYnYZFFDs8WEo0lfomGB2rp7qoAbo1oCCb5z?= =?iso-8859-1?Q?YLhmGnkggVWFCUOEjZYAl/xoUiGNV9u0ZwH2U9oK5xoYQEh4CtEIHH5nAW?= =?iso-8859-1?Q?n95NRiKfWQNLCTqujfRB9akC8ee0JxARv+ZWFEB5sT8k6dzmOzHTjK8tEL?= =?iso-8859-1?Q?IL9m/rVAjufJ4Qa/OatupQkLX91fKaLMq9LQkOLGuKNiR8GlgVsUGS/yd7?= =?iso-8859-1?Q?OLK4/blfvDXyZp8+7JVyI0VdQb4BWmQ7Q0bkkvZJyu+T7eiTcvJ3M93+Kr?= =?iso-8859-1?Q?AWKG8UNp2Ql6Usq+ZZFpc3pLf/EGoJmMGfFkGpyIkbDCi9KS/F3M8hfZ8x?= =?iso-8859-1?Q?cJCP9+lV3yDFTYWjJ049E72NjD8J9aKU48lxXRZx7oXWr04uzC2T0Y9EOx?= =?iso-8859-1?Q?tMu1NMW3iHZoLkin273Ln34ZPaf0Q0pLutV/WuxPWrOf4nYoyU4r1M3/oA?= =?iso-8859-1?Q?RGdnECOrWEJ935O8JOKQA6NIZhHZR5DJ2wpDl+YyXMmmb/bIvMXCelumVf?= =?iso-8859-1?Q?SNfFmIYWv4ZXUvFMynvsmuely4y9sO2Aboiu1LIwmGuquUGZGNUkBOfJFH?= =?iso-8859-1?Q?NydVB5y69jHTyHoITLfnZs+/MJmhruDW5EgAib8XJkQfS/feXOt0u0qw6Z?= =?iso-8859-1?Q?xrZxiG83vz3bPiiDooGP8rBhdK84e8HVrFEHdO0WW+0K+R6Uj4lhBQLA6+?= =?iso-8859-1?Q?TOq0L3AEqpg2e06qBGUJa+3eBFZaWTPu3Q5UHaBihJnjGgSwoaR5FutNw3?= =?iso-8859-1?Q?WCeNBUnlEwTEPOr4S+rqvZMJzQiL94aNjcEVlG2g5eiQ2F+9BK?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f97df436-fae4-49ed-41d5-08dba987f896 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2023 18:36:06.2588 (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: RgsgTKpKyFCsIDaUIzTSCbBg+AKrRao1G9cH/1xJ6e0dcSvL12cBHYmItcj0kq7fbxX+EC36e+C2TIKgq1jC6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7415 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-08-30_15,2023-08-29_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2308300168 X-Proofpoint-GUID: YCjDeIPzbZk4mvNEDbRNXb9ghCl4g8gY X-Proofpoint-ORIG-GUID: YCjDeIPzbZk4mvNEDbRNXb9ghCl4g8gY X-Rspam-User: X-Stat-Signature: 3tx4fn5n7aqwunsm9prhkt8cexshsrrd X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A1F67C0017 X-HE-Tag: 1693420605-342348 X-HE-Meta: U2FsdGVkX1/uiL2/t4r99ORu7N45dFrMQ8682/jhLJRjI+BQHS2i3rrj4zQWY2IA6lzKvWOr5HIOI48E2iH8+Jr0cs+zDPhQetyENxuG03VLgM5UUWcOTlsKcg0JATe3nRDru0NcBEVx3rpzwoIluvW8p5G55jUtnwdkvSMapYk+az03Hn5wzKB7K+oFsQuTyQnXY8ny1lqWpdUoMVQNPs39NutvxhO4IN0rAQSyINYJK+Nut+9p48Yj2OQhDU8mLC+uodJovGQQC7y0EscBHZ6RveAILZFURG+kNX1aV1HwSBbsFg/2zA6jOCe06uscEO/cdDX3mw1mAot50rrY9LTjY/7u4H1LqNgnp1ym7MuJy/2TReAaLvfzZQ22JF8VcGyBl85YBrp47sijoyavOVA8YcFWo33LLSkrs4T6WvF4UfMcm76yTFc+vqoMIQDCMLBlz6CgoqKMuwr8nMxCfOTYFxvW5Rf4Itp73m7WdnAGB2SJ9r2WK8ZDqSw243V2G6JqM7QpHg8UbNfw6+iKTwlSf6gyMNBQ2V9tFDtzpQLfJIXgagdU5kvZOZWsLZY/mCIamPYeRuMmoU/diiWaVDtVA7/p5FXeOJwkMPqObsMJRgyWllHggPOqTu30udwoTL4ZbbI/oMmFZvozzlHBEFNVwMgk/rAxws6deUSfU5aShFuKr0ulRbczlEJhYQL9OytZMYLOExDA8mP1bvq7wGpH0KhxK4qfYzeyTtw6B2Sy6DVstqSss3all6RXDtOnyktpY0lc7qhJvwh86m9Ow3WO86bqiHYCbvWyne1eOd5RaPZjspuucQjzihbJ1nMGT0iRsZjpgK5LcACDIennsAMlbBkaubZFHEepsqWxhCWKyxizLmYuhUoVuncA/5Zu5AXuT2nyubqjqhoQYlZxWomo3LsFfTKd8J8x7eZo9IO6YgnzdBnWCvZNdiDmEAc6B+eCEFq7qp6TKz4oYvk 2Z9dRt4U R4Pq/0Y0dV/Sz+8+rkCqN5c4Tf0ZhKOHT4DDGmlprL3781RvnvASgpzg7O1HUW9J1uwkHlFkWth8FN8nEzHsngDhwz3SPh12Na3UiQmb+bEYrXV7ky/ocVDO1+MDN9VW6b+EgJ5qCRpwQk+90Msm4ZfM8jvV5a3sOGkAGPRPduYGZLrakz+NbZb+PzWUQAd/Le/9/LuFWT48wZgRQkM6QuudHRcsCzNaJdzyV/iAmhQkjxZ2mQqFwm1ziaELK/ONJ0/QKDfGO0ZePLpGjWvb6tG814nt8dar0N5fxPpnvJkg4Sk61Dln7QLmg9nJegTMSZ6iSt0/zsxbjOvdrUmhPLKmLuibc7caWfcJtFwsUZ57Nwvlt3VuxKreILnJp6dg4EfuLX16nc4jLomXFRhQNbOL/G/9HaLdBj6ytfRuOQ2DhlRoRXZscY45teWtAwb3Bdt/vQoisUxPbrF7NUbzFmX/utIQ70BsLq1UoHEnRDR+JbQe0Dq5tWVTvozmybDZmfQodBQSIZZvniLiijx3dnCa9odF2ggHfpIyNpBm69wNy4509AkZie5CEJo2q4Yv7niPw6uFgRvUhbWymKjTvkqbXd+JUN8/FDYtqxGyz47HYLAiwLf9670f7YEUbOqDuHQ4qbkZoqTkh1zkVB8Ur2JaBEH7Evl7WIHZ5zLo8PunICLE= 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 08/30/23 15:20, Muchun Song wrote: > > > On 2023/8/26 03:04, Mike Kravetz wrote: > > Now that batching of hugetlb vmemmap optimization processing is possible, > > batch the freeing of vmemmap pages. When freeing vmemmap pages for a > > hugetlb page, we add them to a list that is freed after the entire batch > > has been processed. > > > > This enhances the ability to return contiguous ranges of memory to the > > low level allocators. > > > > Signed-off-by: Mike Kravetz > > --- > > mm/hugetlb_vmemmap.c | 56 ++++++++++++++++++++++++++++++++------------ > > 1 file changed, 41 insertions(+), 15 deletions(-) > > > > diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c > > index d5e6b6c76dce..e390170c0887 100644 > > --- a/mm/hugetlb_vmemmap.c > > +++ b/mm/hugetlb_vmemmap.c > > @@ -305,11 +305,14 @@ static void vmemmap_restore_pte(pte_t *pte, unsigned long addr, > > * @end: end address of the vmemmap virtual address range that we want to > > * remap. > > * @reuse: reuse address. > > + * @bulk_pages: list to deposit vmemmap pages to be freed in bulk operations > > + * or NULL in non-bulk case; > > I'd like to rename bulk_pages to vmemmap_pages. Always add the vmemmap > pages to this list and let the caller (hugetlb_vmemmap_optimize and > hugetlb_vmemmap_optimize_folios) to help us to free them. It will be > clear to me. Makes sense. I will update all these in next version based on your suggestions. Thank you, -- Mike Kravetz > > > * > > * Return: %0 on success, negative error code otherwise. > > */ > > static int vmemmap_remap_free(unsigned long start, unsigned long end, > > - unsigned long reuse) > > + unsigned long reuse, > > + struct list_head *bulk_pages) > > { > > int ret; > > LIST_HEAD(vmemmap_pages); > > @@ -372,7 +375,14 @@ static int vmemmap_remap_free(unsigned long start, unsigned long end, > > } > > mmap_read_unlock(&init_mm); > > - free_vmemmap_page_list(&vmemmap_pages); > > + /* > > + * if performing bulk operation, do not free pages here. > > + * rather add them to the bulk list > > + */ > > + if (!bulk_pages) > > + free_vmemmap_page_list(&vmemmap_pages); > > + else > > + list_splice(&vmemmap_pages, bulk_pages); > > Here, always add vmemmap_pages to the list. > > > return ret; > > } > > @@ -546,17 +556,9 @@ static bool vmemmap_should_optimize(const struct hstate *h, const struct page *h > > return true; > > } > > -/** > > - * hugetlb_vmemmap_optimize - optimize @head page's vmemmap pages. > > - * @h: struct hstate. > > - * @head: the head page whose vmemmap pages will be optimized. > > - * > > - * This function only tries to optimize @head's vmemmap pages and does not > > - * guarantee that the optimization will succeed after it returns. The caller > > - * can use HPageVmemmapOptimized(@head) to detect if @head's vmemmap pages > > - * have been optimized. > > - */ > > -void hugetlb_vmemmap_optimize(const struct hstate *h, struct page *head) > > +static void __hugetlb_vmemmap_optimize(const struct hstate *h, > > + struct page *head, > > + struct list_head *bulk_pages) > > Also struct list_head *vmemmap_pages. > > > { > > unsigned long vmemmap_start = (unsigned long)head, vmemmap_end; > > unsigned long vmemmap_reuse; > > @@ -575,18 +577,42 @@ void hugetlb_vmemmap_optimize(const struct hstate *h, struct page *head) > > * to the page which @vmemmap_reuse is mapped to, then free the pages > > * which the range [@vmemmap_start, @vmemmap_end] is mapped to. > > */ > > - if (vmemmap_remap_free(vmemmap_start, vmemmap_end, vmemmap_reuse)) > > + if (vmemmap_remap_free(vmemmap_start, vmemmap_end, vmemmap_reuse, bulk_pages)) > > static_branch_dec(&hugetlb_optimize_vmemmap_key); > > else > > SetHPageVmemmapOptimized(head); > > } > > +/** > > + * hugetlb_vmemmap_optimize - optimize @head page's vmemmap pages. > > + * @h: struct hstate. > > + * @head: the head page whose vmemmap pages will be optimized. > > + * > > + * This function only tries to optimize @head's vmemmap pages and does not > > + * guarantee that the optimization will succeed after it returns. The caller > > + * can use HPageVmemmapOptimized(@head) to detect if @head's vmemmap pages > > + * have been optimized. > > + */ > > +void hugetlb_vmemmap_optimize(const struct hstate *h, struct page *head) > > +{ > > + __hugetlb_vmemmap_optimize(h, head, NULL); > > Use free_vmemmap_page_list to free vmemmap pages here. > > > +} > > + > > +void hugetlb_vmemmap_optimize_bulk(const struct hstate *h, struct page *head, > > + struct list_head *bulk_pages) > > +{ > > + __hugetlb_vmemmap_optimize(h, head, bulk_pages); > > +} > > + > > void hugetlb_vmemmap_optimize_folios(struct hstate *h, struct list_head *folio_list) > > { > > struct folio *folio; > > + LIST_HEAD(vmemmap_pages); > > list_for_each_entry(folio, folio_list, lru) > > - hugetlb_vmemmap_optimize(h, &folio->page); > > + hugetlb_vmemmap_optimize_bulk(h, &folio->page, &vmemmap_pages); > > Directly use __hugetlb_vmemmap_optimize and delete > hugetlb_vmemmap_optimize_bulk. > In the future, we could rename hugetlb_vmemmap_optimize to > hugetlb_vmemmap_optimize_folio, > then, both function names are more consistent. E.g. > >   1) hugetlb_vmemmap_optimize_folio(): used to free one folio's vmemmap > pages. >   2) hugetlb_vmemmap_optimize_folios(): used to free multiple folio's > vmemmap pages. > > Thanks. > > > + > > + free_vmemmap_page_list(&vmemmap_pages); > > } > > static struct ctl_table hugetlb_vmemmap_sysctls[] = { >