From nobody Mon Feb 9 04:44:22 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A00193D2FF4 for ; Thu, 15 Jan 2026 18:29:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768501796; cv=fail; b=AFw78NXDAI9kRyqF4WZrS5z/wKelOK0ZTb2noIi0+rADJmUFPhvGu7RyZ9dwblGrCq0KDCyQvT6Jl2URmr/RQ2kqWFGtYOnhBoOCYTnFealcfm81ElUgBb1W2vTbye4BQ5cKHydFIQf2S4RhHT9N1lf7Cj4TJ7PmyQHQ0+0xkmw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768501796; c=relaxed/simple; bh=O4G4C7AewHBL1ZoPFBcNfioJ39U6AUY53OFXbddvUPg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=VioFXCYAJy9F9YFnVUURjGfUHuX/xP7gYfQ3/eBM/wu7bnSNE0fJ+UzJjItFxw74rGYngzvfJNJbX9P0Qw0vI8qT8qFqVPTc0dtIshluPaCFXNHvD23we5qkk4ox8M0lqiBtXXCqEj/jGUf11/BzfHFnY+UfzV1ACoY3cx8IdJo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=DuEJ/RYb; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=uvwERrkB; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="DuEJ/RYb"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="uvwERrkB" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60FDdln62685997; Thu, 15 Jan 2026 18:29:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=LJr4um1tnkQkc+xTre/hZgLmYo+p+SGwk9IuPkNt70M=; b= DuEJ/RYbjOrpBEk1OmWKrIHn9Q2s8NqvswHF4zs1kXjHtJKJlMwoT7ECNjGQrN5J TbHUxG/AQ58z61S1HCFsC4WLHE7tTxo2aZDLzo0w3Pk+0DR4ISpkIVuU9aR8N/v+ lLCHVZN3lWjJwUrhmCh4Q1IF8IyDElOuPxWlyZ0JqtsOlNvFNbEa7DkIM4wcr4z9 vz5EeE/X0Vy7YQC1Klua8R0q74yIP35tpp8qIb3ymkPHAScTpyCSQ8gyl+mM8NXe s+4JDTO0oB6TpSHkEdagNan5tCbNqZSmTb2NOYSgLHwAJLe/rsxFVBc4IvOXPOyV SeoJjROWAAyqkBbUNMY3Qg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkntb8em3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 18:29:13 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60FH0fkX029173; Thu, 15 Jan 2026 18:29:13 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011036.outbound.protection.outlook.com [40.107.208.36]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ndyn1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 18:29:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lis0XJLNPr00aZEq3BP5Fq69ZRQdCyUoAIr/GQ+rIep/14ttrTE/jDkOH8c+vrMJvmQCTBBswWumDqIdhxzlC66KJZMxeAVsD5oT1YTVHprPtHCDyBbg9oVcM29jYPyciU8jv2+asB0WA9Y0HC8SSbEG71V5GQ3bjtgntx23vjYcV7QQMTvWPblP9PDEj9sEZORt+ReyhfgTisaYMRNNRZz8jb4pf2msZVJk9O+w5aSPGR/kJXhkHg7aofG15XG6cbQwmBjwEQbf6/8Ld8gUJClPzAPd/ENC8tlPImpKDbwUZI40hi64pzGiR4m53Kabk8JmZ/58SWWtDtjBLMkYlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=LJr4um1tnkQkc+xTre/hZgLmYo+p+SGwk9IuPkNt70M=; b=f2LnOERx8Ps/IEk6wwJ3SalITMkksbm3FKnVtznjMcwS3TSupWkv4UFd7IJa2TxzTLDgJQz+a7/X8UX87LHzU3DUO+HvghadHuq+z21gFa+5rByD9hoV8H9Vgvwe6rOOD6Qhxqg192f7AoJCoLPSGSYDnlR+8LrDYhV0/1VPlaUaFsA8EkF49xlUvjIa+wLq2MtfZJO308ofwVGva5rUDWRB/v94UCRll5P/OIk2oOXyyKc34N7YwAFgYWNsUHl1wS4DjZexaV9t8xXwOv1NyJz10WwEo3omYNqdBsF/yZNvaesuY3yhM+bpNLr62J+tsdYR8huqBrF2RD2/Q4Jcrg== 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=LJr4um1tnkQkc+xTre/hZgLmYo+p+SGwk9IuPkNt70M=; b=uvwERrkBuH0Wz/TZgRGAZnBSgl91eBgvtsrWPHiKm9ZVcpEomp1nvc0bRw4Tz1MpgWvZe4ZLjRYaYhnnXmZHRomQO3aLglaC1EyQ3nktC/9MVaVe+OUFu4wS2714XeWKfeSRsYV9813e607qXATUmeqINss9d5esOG9kLn+IYhY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8181.namprd10.prod.outlook.com (2603:10b6:806:43b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 18:27:47 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9520.003; Thu, 15 Jan 2026 18:27:47 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Lorenzo Stoakes , Pedro Falcato , David Hildenbrand , Vlastimil Babka , Michal Hocko , Jann Horn , shikemeng@huaweicloud.com, kasong@tencent.com, nphamcs@gmail.com, bhe@redhat.com, baohua@kernel.org, chrisl@kernel.org, Matthew Wilcox , "Liam R. Howlett" Subject: [PATCH v2 10/10] mm: Use unmap_desc struct for freeing page tables. Date: Thu, 15 Jan 2026 13:27:20 -0500 Message-ID: <20260115182720.1691130-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115182720.1691130-1-Liam.Howlett@oracle.com> References: <20260115182720.1691130-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0039.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::24) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5777:EE_|SA6PR10MB8181:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c82cbc5-d29d-46e1-bf5d-08de5463c819 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ngj1T3CAtZbgjK+Z757PloOrR33bUAArKXPnszKjHYggtDO55mNvVtyYbLNb?= =?us-ascii?Q?PUHZpdTuMmjP273xA5VqBz17MUYgKagpVecUb+DmFkQi0n4tP3UsMMvkpOs6?= =?us-ascii?Q?hfoLF9a33ibqov/KWKrwpTYPkI6Ky11MTlRYOxC9cgdc80P1YnsxiuMQp+br?= =?us-ascii?Q?+bs7pEmMIFsjVv0wdo8DcsJxt/ZFKuPvqMS6+sdnYA+KTM42ZhDk4mOHpV0E?= =?us-ascii?Q?KohjwgbY5skahpjcZ1KKmkrJm1Xnnq2kUYbYXR5ukpCSBfZfcUr9q0B9DAa5?= =?us-ascii?Q?jlYCEjXaL+MVdvqecHoczsJsXNvjnRpxbSf2jwhOpprg+iahOGlQSeBeZu7j?= =?us-ascii?Q?LrgF1JS425vJwpZEnXW1qDHNjkpawCXBBaoJSXQBzFdIixZPEPl5AnE9uplu?= =?us-ascii?Q?k5MOXIKZILmKBz7YhAst/Ep0c8OlJqwfpgq4W3Q7o17RErIOqSj6K9a8o2Ez?= =?us-ascii?Q?yODzg+0o2ji3juk71hhhxY9B1bm+0wNbshjww1o7hTQXpqAO2q8PHnyLN+TL?= =?us-ascii?Q?L2WGw9H2LJJsFajUVE6mxRY1cBCAvUgwbEgDtwdarcdQt8E/rLOnGt/vxlXv?= =?us-ascii?Q?DpwwBWO4h6iJ6zj9I+GtpQdFoQD0Qj/GwpqRjD0Jj7Y242WvdSG1MDqtfjP7?= =?us-ascii?Q?LXh/8KEOy94gNWn0+CpOiPerFbbis7VudeYZF7xyRXimIX5XRhAIYhsVFGg0?= =?us-ascii?Q?aXivErcAxpCW7QC6S2sLCHT6QhljvTCJCJa845QOu4PET7gKg1pC4AhjTuhX?= =?us-ascii?Q?n/aX6erDnogzB54k8SY8z5WvtrhCOB/BLQAHZ9nEdV6nQ0O6HUYhG0q30or7?= =?us-ascii?Q?ZD4k7LkIRQpW2KC9124BqT/SGAZ+jfIVy/syVJwUizBDU9N1UZldVGo3ANoE?= =?us-ascii?Q?fYtUuyRDLUhuikQNjZH8NyIqPClgnHwAs1EXm3FVFP1Je13irM4ONkxLXjRQ?= =?us-ascii?Q?wc6+h9GiuPYPBDOs1rJZwxr1an+5fL55QG8AnYN8I8jn+qgFs3azyA/GM5U3?= =?us-ascii?Q?+M9weFn7pB8vWYWbrpBlUuSeGN6mf3vwEs1YO+7TUe00tCVlRGqUnU50K8SI?= =?us-ascii?Q?+56T+J5sQQL7TJY7LgOkZPaK6p6RD0mXdqAg7Pm3IaeIUmBs5k1jClu6EEl4?= =?us-ascii?Q?iSoZLcacUdwN7UjFFQ+9ZsPteAcljzhlYrrKLwePMipf2owiP4OnM/fHtdFq?= =?us-ascii?Q?NUpX76jRmBxsX8rnoacWWez7Z6FKVTlxm8R75AeIsK8INmtx6gyz7D+Pr2lo?= =?us-ascii?Q?fZ2BvW5H7Y81jwWq1bew+0wm+7nnnEFeTY73uBYD1gvSwCN/6AYKBFY5ExTc?= =?us-ascii?Q?UO1EV3HfKIjACeOFOwK+DNQU6ko4I4hDO4F7GKv1qM9uU8fukGhvmOEsMany?= =?us-ascii?Q?OnaVxF9q6goRz//mvOKdyGXxrFM4AzYd4ZoRLXiVAVq1oQIOGU8bx/Gnbv0T?= =?us-ascii?Q?vv4g6ySJgcvuf86R3WS9PVBUk+0kciRSi5R+K9pOLPs9c2CtNhWX/qIdq2HY?= =?us-ascii?Q?hIcl+nb1W1wk8y6bVCCpd3+PKxPn0++XV4Y4sxrmhDWVYSWRgtcc6MH/mkqu?= =?us-ascii?Q?3/H2R7BZPqQjZ57utz0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mlga2VOw0xenaARMXgSWhqNt780rW37YaVGprUT0O2/jb+bP9Ebf6rDOtunb?= =?us-ascii?Q?q/JA2DKtmTz5UR+qBHCl5vq9tUvpb/4WvbwhnRX1TCzZaBzc0x2Ev2XHs2G2?= =?us-ascii?Q?/1Owq/WEHM8NcXJ3U6KCZLI/d7YN8h4P0GaJpTrVi0N8ULYmNGyi3vF/1EbZ?= =?us-ascii?Q?Uk3sapDxYwc/6OYAkOlRw+zaCQMzzz22MGqACycuDn7nw1aTrqvVGgM/HYVX?= =?us-ascii?Q?UrlzeuoQmQ50fci8tRDw9/pc4O+nadtg6N86p8aH0XkUmunmmTQgqlP+85Tl?= =?us-ascii?Q?PK9bYbQImvFL+G9EkoKkM2MM1HSd3ZvkpvH/fmcf3Wu7I54R7qMQllNf0sQW?= =?us-ascii?Q?X4BzWNRVJjyemcgK08uXgdgHUB1H/4VC/1Dm1w5wqLAaMm/GK08pQMgWue4M?= =?us-ascii?Q?Hm7/Le0Ou21m82DanrzhOfxlHem7wFGsT//p7bGbIH2TG7JoF0OXbmkhkAZu?= =?us-ascii?Q?BpXom1ILwNh2bi1c+yEtSfZh1Sfl2Mr5MiWLQtq7xqFxPNzBQHXOiitZwjZy?= =?us-ascii?Q?2BPCeQxW9XQou+FVxYb3u/5JVJQ3nBsrmEvDm8GA+seng8MJ/7NSYbn0CsPQ?= =?us-ascii?Q?EOcy0XI3njPhFCPUr2PssDDLvOIhyS7ow3EZzLEBtdiITfZw5PWomFUTvBAR?= =?us-ascii?Q?PmjEocIv33dxAuDa1hVBl7OpVG//UReHjumKiMZd5duDnxDOqYffMkScTC/5?= =?us-ascii?Q?mVHgyR3jywD8+qdqiPRLN50Eb4SC/slR1mq9RAAw7XvX/9YpYsCrSkHhQjrq?= =?us-ascii?Q?BDVcD2V/iYprjLfkwVnGQJO4p6Hz7uxef4LJP2bI24L/Pki5UcFVkeg+DX3U?= =?us-ascii?Q?qGa9KLFrwt3yHZO7FiOWpyhgcNjg30gdZ8DoIGetUGEWQ44q0+aIlbCTPLhX?= =?us-ascii?Q?tJEAg8uwbhI8WfLlG3iOLnQTQ+2DcHKSJIXCy5PmBffYzkEctjD5IUEaS9ko?= =?us-ascii?Q?w64pJ9wj65pOKcBZ5aMCAtbdFxcL7IAwQ/KgtS1M0yIi/KyhXDPJmFasbW1A?= =?us-ascii?Q?tHEn7aGtf4nTuQBVNqHE1v5Y4VLiDXgmup3mTVQ/liY4PH0hVNXROZm4jDlH?= =?us-ascii?Q?NKaNgNZl910dLyEYnwzVH0sziGwaoZzl8CZBUdXld/brptoR6l+5AiLc7uy9?= =?us-ascii?Q?hF+DZsJDBsn98HRKiG/ij8GUB+rOsMVqWu79vsIHngreYiZRb12+f6KSOzBQ?= =?us-ascii?Q?UKwhee/2lPYU9UmLVqLOF+IwwWHcrTkrdcb+kDLj25Za0Neukr+XYAFXREB5?= =?us-ascii?Q?ECzOoG2F45XJ80+u8NO8AAJkxGsPQV9EIQH0wgWFPLueZV+GYELEWjzu7taG?= =?us-ascii?Q?QR1sIbx7WLJX7ZCz+5JKd6cjSSW0Zwrf7bAHGRzustjcOUOZlRiE1gnW41j3?= =?us-ascii?Q?l1H9RL4LVbz/uvE/O/CjMCld5ZFEJNdd8n3KU4LXG01qa7QJ5ffROqgEk18W?= =?us-ascii?Q?Nvc4gQ9JpIZjC+iWbTnN66XgCUdUils4/EQW8r5pQMLkP3KQ9ge87zWHbwGp?= =?us-ascii?Q?MxNnkSfMdXto+zdTaU39CnLCEgUUROH5tu/2Gvmbl6NdUu5Ok20rucFg4zhQ?= =?us-ascii?Q?O2RCUD0N5TYulDhIzQPrR65Ox2d86UaBknZyBAGgyv5cC9cZrU8N4dp5ySVF?= =?us-ascii?Q?7kKy+IaxTuoE35QLj1GB2r7gvGnCW8X+DBzwZTH3GY1Er6m/oGhBfroWFP8O?= =?us-ascii?Q?UB/3GQyscN1droWT192PgNaBY7szRr2IB9PQ1W4vmcgHM5bZa4PbImy2ROVT?= =?us-ascii?Q?B/d+8Lbgkg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: jBmzp8lcBc7Witl0CLKSieEbgje5D6ngRgwoRIIQTCuddV7+QlTqnK4sPd/sSq+BUj2RM/+h5oY4MHRknyTNIsmpj6Q0/3J+KrSV9xUZsJDEGSOz7Sp3l2TpVzC7265MTN1Pyd+QIFtKmGBYJswZAa6Ol3jO7WM2vK2Hv/8I2vvx0mJy6XtlF1gOyd9cIUrwNS0U5kWiH5sbxAr1PNUeN4rB7fC+5VLXifCBbhNzUHaMYnEcualWLUmj2gW8Imfij7mD57n3LGDFJ9aODDtMXfqndv1ZujTdDDAL1SVTP5UwRf08oj2wsrxrEyqrzWYO3AIDIhMrTmaOc4zzSdmmHTnL30Rnh7I34nt1fhk9JGTK1doWpTRNPuIDLuT8qw1HX7z7LY+VC6pq4+eMTwyT3Ut5APvXdwSvSIXQXBq0Pr5IfTvKQcc7BVC6tRvGGOrDj7dpitKJdjJdPlmF200AmaVWXBXr9tgZydCzIkxuju82ne5djvdpiMVJt/WpQpHjPFUF4o9L8CC9voci4b9+ffaYe3vIZYiBXGJwEU99cIH47mDmEveD9J7YzUAQGoDtZqzq1IoQhBJFPcqp5Oe3ZP1StBuicl9tyO+7jIUctOE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c82cbc5-d29d-46e1-bf5d-08de5463c819 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 18:27:47.0046 (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: kjZcWH5xQpcnfJ0lgv8AEeLnGbsKwgbzIC8/iEoZEP1lZNWfYDqUWyoEbYyaYJN1qI4xfzCcKZQPxAgXNMeV5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8181 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_05,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150143 X-Proofpoint-GUID: q2ic-k1SwZ-ZIqIqddGPG_gpvuUWAsEJ X-Proofpoint-ORIG-GUID: q2ic-k1SwZ-ZIqIqddGPG_gpvuUWAsEJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE0MiBTYWx0ZWRfX86gSVIcduRDa nGDj4ue3s/NnrzVRxRIxOAlFNiAQJVf3XYoEgmlXzTJ0nCFlBEfQFNwzaggpLmB/4mHejJ0cUIf DTfmOTQOHq4DRs3AZba9XkxJdFkIBzZIUkLVfEtD7zRO0q7EzlGk+ovTpPpQ4vDUne6WusnJGKA ngsaAkFSsCXRckF8vWlNzQc0n7F/UPv9vSLL2k4A1f42lVUsC29zPYDCfeoqS9/lnYWaInyqsWW d7VmbYkCok18Yz0wGYP1Hv9KAEwOoFmaD+EgZdGGVSsksLCZg+xA9Qa03gAD2M95A8/dhXAjW0/ 59C1LYiE/Dm3dKmgyi5SWQU3yJrSoUK9tVURiyT1dp8e13+dl28oyu6rkKaeKuUNjbeJpGcnBzJ IYiSiKCNWUSOLhWQg7HJRWl3B/2ibhj+ybfKH6SZJBHvxhsnT0nzgxsXe12SBl9U9b6IaQQHm6e DHuVlRi2hWvbi2Icw0RDjSWFI4BaEEQam0/TfkfM= X-Authority-Analysis: v=2.4 cv=fIc0HJae c=1 sm=1 tr=0 ts=696931f9 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=1XWaLZrsAAAA:8 a=vROGCtjlC6yg46rs05EA:9 cc=ntf awl=host:12109 Content-Type: text/plain; charset="utf-8" Pass through the unmap_desc to free_pgtables() because it almost has everything necessary and is already on the stack. Updates testing code as necessary. No functional changes intended. Reviewed-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan Signed-off-by: Liam R. Howlett --- mm/internal.h | 5 +---- mm/memory.c | 37 ++++++++++++++------------------ mm/mmap.c | 6 +++--- mm/vma.c | 6 ++---- tools/testing/vma/vma_internal.h | 7 +++--- 5 files changed, 25 insertions(+), 36 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 25a17eea550b8..1cad630f0dcef 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -512,10 +512,7 @@ bool __folio_end_writeback(struct folio *folio); void deactivate_file_folio(struct folio *folio); void folio_activate(struct folio *folio); =20 -void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long pg_start, - unsigned long pg_end, unsigned long vma_end, - bool mm_wr_locked); +void free_pgtables(struct mmu_gather *tlb, struct unmap_desc *desc); =20 void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte); =20 diff --git a/mm/memory.c b/mm/memory.c index 6fd6decc139e9..16b25eff19251 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -373,12 +373,7 @@ void free_pgd_range(struct mmu_gather *tlb, /** * free_pgtables() - Free a range of page tables * @tlb: The mmu gather - * @mas: The maple state - * @vma: The first vma - * @pg_start: The lowest page table address (floor) - * @pg_end: The highest page table address (ceiling) - * @vma_end: The highest vma tree search address - * @mm_wr_locked: boolean indicating if the mm is write locked + * @unmap: The unmap_desc * * Note: pg_start and pg_end are provided to indicate the absolute range o= f the * page tables that should be removed. This can differ from the vma mappi= ngs on @@ -388,21 +383,21 @@ void free_pgd_range(struct mmu_gather *tlb, * The vma_end differs from the pg_end when a dup_mmap() failed and the tr= ee has * unrelated data to the mm_struct being torn down. */ -void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long pg_start, - unsigned long pg_end, unsigned long vma_end, - bool mm_wr_locked) +void free_pgtables(struct mmu_gather *tlb, struct unmap_desc *unmap) { struct unlink_vma_file_batch vb; + struct ma_state *mas =3D unmap->mas; + struct vm_area_struct *vma =3D unmap->first; =20 /* * Note: USER_PGTABLES_CEILING may be passed as the value of pg_end and - * may be 0. Underflow is expected in this case. Otherwise the - * pagetable end is exclusive. - * vma_end is exclusive. - * The last vma address should never be larger than the pagetable end. + * may be 0. The underflow here is fine and expected. + * The vma_end is exclusive, which is fine until we use the mas_ instead + * of the vma iterators. + * For freeing the page tables to make sense, the vma_end must be larger + * than the pg_end, so check that after the potential underflow. */ - WARN_ON_ONCE(vma_end - 1 > pg_end - 1); + WARN_ON_ONCE(unmap->vma_end - 1 > unmap->pg_end - 1); =20 tlb_free_vmas(tlb); =20 @@ -410,13 +405,13 @@ void free_pgtables(struct mmu_gather *tlb, struct ma_= state *mas, unsigned long addr =3D vma->vm_start; struct vm_area_struct *next; =20 - next =3D mas_find(mas, vma_end - 1); + next =3D mas_find(mas, unmap->tree_end - 1); =20 /* * Hide vma from rmap and truncate_pagecache before freeing * pgtables */ - if (mm_wr_locked) + if (unmap->mm_wr_locked) vma_start_write(vma); unlink_anon_vmas(vma); =20 @@ -428,16 +423,16 @@ void free_pgtables(struct mmu_gather *tlb, struct ma_= state *mas, */ while (next && next->vm_start <=3D vma->vm_end + PMD_SIZE) { vma =3D next; - next =3D mas_find(mas, vma_end - 1); - if (mm_wr_locked) + next =3D mas_find(mas, unmap->tree_end - 1); + if (unmap->mm_wr_locked) vma_start_write(vma); unlink_anon_vmas(vma); unlink_file_vma_batch_add(&vb, vma); } unlink_file_vma_batch_final(&vb); =20 - free_pgd_range(tlb, addr, vma->vm_end, - pg_start, next ? next->vm_start : pg_end); + free_pgd_range(tlb, addr, vma->vm_end, unmap->pg_start, + next ? next->vm_start : unmap->pg_end); vma =3D next; } while (vma); } diff --git a/mm/mmap.c b/mm/mmap.c index 042b6b4b6ab86..8771b276d63db 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1307,10 +1307,10 @@ void exit_mmap(struct mm_struct *mm) */ mm_flags_set(MMF_OOM_SKIP, mm); mmap_write_lock(mm); + unmap.mm_wr_locked =3D true; mt_clear_in_rcu(&mm->mm_mt); - vma_iter_set(&vmi, vma->vm_end); - free_pgtables(&tlb, &vmi.mas, vma, FIRST_USER_ADDRESS, - USER_PGTABLES_CEILING, USER_PGTABLES_CEILING, true); + vma_iter_set(&vmi, unmap.tree_reset); + free_pgtables(&tlb, &unmap); tlb_finish_mmu(&tlb); =20 /* diff --git a/mm/vma.c b/mm/vma.c index 876d2db5329dd..f352d5c722126 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -475,15 +475,13 @@ void remove_vma(struct vm_area_struct *vma) void unmap_region(struct unmap_desc *unmap) { struct mm_struct *mm =3D unmap->first->vm_mm; - struct ma_state *mas =3D unmap->mas; struct mmu_gather tlb; =20 tlb_gather_mmu(&tlb, mm); update_hiwater_rss(mm); unmap_vmas(&tlb, unmap); - mas_set(mas, unmap->tree_reset); - free_pgtables(&tlb, mas, unmap->first, unmap->pg_start, unmap->pg_end, - unmap->tree_end, unmap->mm_wr_locked); + mas_set(unmap->mas, unmap->tree_reset); + free_pgtables(&tlb, unmap); tlb_finish_mmu(&tlb); } =20 diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_inter= nal.h index 0b4918aac8d6d..ca4eb563b29ba 100644 --- a/tools/testing/vma/vma_internal.h +++ b/tools/testing/vma/vma_internal.h @@ -1137,11 +1137,10 @@ static inline void unmap_vmas(struct mmu_gather *tl= b, struct unmap_desc *unmap) { } =20 -static inline void free_pgtables(struct mmu_gather *tlb, struct ma_state *= mas, - struct vm_area_struct *vma, unsigned long floor, - unsigned long ceiling, unsigned long tree_max, - bool mm_wr_locked) +static inline void free_pgtables(struct mmu_gather *tlb, struct unmap_desc= *desc) { + (void)tlb; + (void)desc; } =20 static inline void mapping_unmap_writable(struct address_space *mapping) --=20 2.47.3