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 4AB30C83F07 for ; Mon, 7 Jul 2025 12:08:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C7C338D0003; Mon, 7 Jul 2025 08:08:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BB8818D0002; Mon, 7 Jul 2025 08:08:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9BC8E8D0003; Mon, 7 Jul 2025 08:08:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 78CCE8D0002 for ; Mon, 7 Jul 2025 08:08:16 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 04C641A047E for ; Mon, 7 Jul 2025 12:08:15 +0000 (UTC) X-FDA: 83637345792.28.B20AC17 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf03.hostedemail.com (Postfix) with ESMTP id 77EC52000A for ; Mon, 7 Jul 2025 12:08:12 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=F+PfDb0D; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ndVkCrbH; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf03.hostedemail.com: domain of harry.yoo@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=harry.yoo@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751890092; 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: references:dkim-signature; bh=axazXjs6FwZRpqmfwHQoKTDh5Sa/ftOypHgcH8WHh0o=; b=iIVP4t8vLGycvZSoHR5xYe4gNONB7Xn3mMsLqKwdsew5O7BcqYwvVKSzeiCgVtmyX6Qywu +CVI5kJMIiIieG8zsZYZvHRGJWcDF+RQbNjbA7/TKOqQQMj9HRI3cWZLRMYkMD0IF+rpdA rAF9arlPPgi0AVMPQGLciNFgKiKdc8U= ARC-Authentication-Results: i=2; imf03.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=F+PfDb0D; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ndVkCrbH; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf03.hostedemail.com: domain of harry.yoo@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=harry.yoo@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1751890092; a=rsa-sha256; cv=pass; b=1yzW2LLzv2Ev+rTVt7YtyEer3brju4pBKwivBAuaQQq/oEzfo6GM85tVy5sglkilB4VdwQ XnURecZfv+BYNKbZ2g/fp0I3yDNiG4/mvQOmr51YYq388luztvAUlLhX7H4V5Bj24z2gSO 7IWk2zEwDOTgD3UgwG941/tkpwZS8DA= Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 567BMom7027428; Mon, 7 Jul 2025 12:08:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=corp-2025-04-25; bh=axazXjs6FwZRpqmf wHQoKTDh5Sa/ftOypHgcH8WHh0o=; b=F+PfDb0DXBAESVyFSSHgUEZDW7aSw6FT 77nT9/zAMy77PhVhAxFihZAYn/oEMR/zgsoTXtEc1F16jHWhyUz0/DQ41UgIprn3 8CPv7C62TQOEca0XwhGEwSvH6AdP2A2l+qmAp2y+Dj6KIpdAlvZiZ+SWcl2QFP6/ mfBo+hS4N+9H0yXQMmPpGwANxmGnF/dARuYJ1RiCrWUN5uXeglBnPa33yow2toMU QzVPoW2n5ggGXp8VQRM3eJvB3LizaI3qdCM7tuWRdZ/Zq5wLFgqoEqCqEWgsHNOh F9Qcg1EC0g53Fq6Qj3vZW2ZOrlk2pwkfxQMYJXj89UJfIxg4Gg4FCA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47rda182nr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Jul 2025 12:08:02 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 567AUvEX014362; Mon, 7 Jul 2025 12:08:01 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10on2065.outbound.protection.outlook.com [40.107.92.65]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47ptg8wcnk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 07 Jul 2025 12:08:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RCsioyR6JbDstIrwnCxQ99oR3t76YUYGIc8ZzNZViBRYsv+IjqYDhEC0llofcKJf+1sHZIUNYB/UbUjqON1z7kqxzCpxC0LkhLoSBlno5fYb/TCIQdImWw3MeVCsUXfl118Dm++OxvW0SKmO4iNsTtf6xyPYsBmpnUFNalezMhr4rDCBWLiOZKQthnlfumiI3wuJ/xktG4nQfPna3Uev2Ld6o892cKPWPAWoj0XadeVeIKJx2hgdHre9pLDmTb3KiCD+Y7ru1rDLvsz8mG127gTtrIDbLlqHiBTzd4FwOkyEQR1olKcEkaDcLbnRdjXFtepOMfrQUQdTltfPMUXH6g== 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=axazXjs6FwZRpqmfwHQoKTDh5Sa/ftOypHgcH8WHh0o=; b=bkbbkicKxVd640stgS031c5YYbWAESTO9ZcokDM6xjnis9LiwPbYxcQi16zNC1QcDUuN99VRKY1+tqhfviNq6o0CQ3iM8fLN2t9uteGODWqeq/bVmJb5bziyAVklyKcZxNe3zn+PJYXySGfNbr2UFztr6P97YPVUKnaeJ7PHIMGfE3/sssEmI3nQ5U7AtcZ5ZaKR+pf2NkusGOIO3zzVjq78AVWFVw44qDRZNief7DfSsSMkyT74gPJmlSecpYqqeMnmnJe9hNQL4Dkfi1jlywsJrmBqAotp0p0o5U2EpbhwkF7J7XPOQNdYLwq17A+N3XWIX3oKtSKnCz0Vjf9XEw== 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=axazXjs6FwZRpqmfwHQoKTDh5Sa/ftOypHgcH8WHh0o=; b=ndVkCrbHCeswuaJDE9yHif/8pMQ0jWIsf5gO8SfZaDqZYwTac6yB0TC+HSG3MOp7OSPRuPCPXIhKaiA3GxroAE855/zHu8K4WKfMIxL5Lz93wRthw9gW1++yq0mrOVn/WexhU3Am0KKIuUNhpAW41LPQhy5cK8sEjgYLethFEnk= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by SJ5PPF2C6461432.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::799) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.23; Mon, 7 Jul 2025 12:07:58 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::c2a4:fdda:f0c2:6f71]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::c2a4:fdda:f0c2:6f71%6]) with mapi id 15.20.8901.021; Mon, 7 Jul 2025 12:07:57 +0000 From: Harry Yoo To: Andrew Morton , David Hildenbrand Cc: Lorenzo Stoakes , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Christoph Lameter , David Rientjes , Matthew Wilcox , linux-mm@kvack.org, Harry Yoo Subject: [PATCH v2 mm-new] mm: check if folio has valid mapcount before folio_test_{anon,ksm}() when necessary Date: Mon, 7 Jul 2025 21:07:40 +0900 Message-ID: <20250707120740.4413-1-harry.yoo@oracle.com> X-Mailer: git-send-email 2.43.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SEWP216CA0097.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bf::6) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|SJ5PPF2C6461432:EE_ X-MS-Office365-Filtering-Correlation-Id: 22fc0ac6-fb4f-48f1-4a3f-08ddbd4ee8dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gTW2JedY38Bh8qtlBajvuZf0YoigWwti2+l7DBO4lV2B1qpMrC9dHoCLGFfu?= =?us-ascii?Q?oxxvi+Rk4XHzNg4FwgNJziHoFzx/24yWWnoTy5KBJinQuRBjqMK5M/60GoXr?= =?us-ascii?Q?SpsMPXM0gK+TkCejfKbjD1zdyWmGx4GBPy0EuSTtfwpR9PZr2jlwSTACNKwv?= =?us-ascii?Q?yRIT5AurZRVIrlkVkAHJqAQh2v1Hhc/GyMY9hoeus9GWe/iOmPN+PX0a/cEt?= =?us-ascii?Q?W2Sc9Y7tf7R+W90ID9ZMucfYSNIK5LfLrI0peXwa8at/OqICJ6Udl7GNRvrJ?= =?us-ascii?Q?zQr25/JmW4VE0ucbsVeXht80N0w6xcmov0/6CatE1LsNf8r0Lnm7GU8vT2Wt?= =?us-ascii?Q?LY3jhf8b1WHWt76IG4/9HRYC1d8M3MxtO7fECUbq+U0biF8C6L7P2qrnmT5l?= =?us-ascii?Q?XxPn8lpdaj2WcU1cKyFhI/pPY5fmgza13btb8D3g4tLvcbQYsQ6guXsSs1Wx?= =?us-ascii?Q?vQkynN84k077wXDdoX839wtm5FIexuFMEPoUg8tLFvBsZVQnOJLgxM8XGIQm?= =?us-ascii?Q?W+XZzMJgs9PRkyrg/VlCVM1mUQdBp0dj/l18Gkds5G8Dzhhx1Wz1YvG6JZIl?= =?us-ascii?Q?aYUN99pSW7yO6EcCnVop+ymsfDppS7cQIjNXBKJy4DgtnoIzvQeRreBJEsbr?= =?us-ascii?Q?fImNaNe79PsFlR3kOcnYJpFDMQCxrccNyp4MN/6aNBwGfyyuaurfbFugWjRT?= =?us-ascii?Q?qbwFn9W7ufgk4Z3dTSiEVmjGo/02blL/8rI4OfAkVOE9tlQ7hUkW06QLxDLY?= =?us-ascii?Q?W3QmBxjkw69vC7a0gXEq/MknGbBvlpA//x/F9TGFM4SJ8LHK0l1+fqzz5/dk?= =?us-ascii?Q?fW9qAk2GHHND1FgY++BKIs63edV0rPsyX6cxAXO2lBYLan5R8bysDlWZtgu8?= =?us-ascii?Q?OsGAyFKipRCkR8l6S1C9NpGnMTEyCXWuUmJHfochQJUjJuGS1bL1TH4G0Q/J?= =?us-ascii?Q?nSkpS0Wavz04fbIUdwmUSBNsp1FQrxN4TeUxImUH4zceHxrtU4+y5slAZkti?= =?us-ascii?Q?bhQ9g4DtNg0r77R27h4J3LlbiCgB9qDcs/12T8vHGd0vrM4ObI5Q1pj/y0FB?= =?us-ascii?Q?u8j75PnMjw4+lL1Qx/CKbqLZf4qMaY91sgCmTKoUexBKxMWlW0ce6ZRljTXd?= =?us-ascii?Q?09s7NLy7p+APhpFYfqws6Cw9Ikvg70rTRmdYFdSieOJHreG664wv/jW0CsLG?= =?us-ascii?Q?J/Km6RAw3EeCNeohRVlm4o5OTYfDOm9AampPNcKF5q/QeBWIsftAMUtRkmFr?= =?us-ascii?Q?ZV7cJQlZ6RV/0Hzai5KuVwoHyYRUNFxd6IAC9p++Syei9q//HGLcZO0tCatO?= =?us-ascii?Q?vJUZG/zQZ7Quse+jM97oihI5wqSGvtOaoC16YaY5eMuJkHCGaEcWmD+1UzgL?= =?us-ascii?Q?6Fp1Q/USKB/M8cW4y+l/ignxjzjplb5t+jWOFh+v4K3gf/WNZOjfyQqNMGvW?= =?us-ascii?Q?XX3v5sNYY78=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?U8BYH8kVdmEg0wFs75SEV7M1AwyDSOsHRsww5saO+YzqgFS7vtjn52UELhJv?= =?us-ascii?Q?Mr5WYYaRgSPjBn9tiN7FlNx/amJpFD8Ptcr+GLLQB1NlxgL6P21sR4ZbYUhc?= =?us-ascii?Q?md6ayIej+5yX/UoVilmexMMH8pHxvAGmEVyOhg1wO3WhZwSbPGsy9oMEuBa6?= =?us-ascii?Q?MTZ8duQagzXe0jPigfuqqiV2GLC23YzOa5Ml/zmmD1CYhuUI8kpxt2gZ9eOo?= =?us-ascii?Q?fAEK0hxdJmWeDzgdcKW5A1+0vkrp6INhD+kiYxnk/SCKjNrlfpnCzw6sQLj9?= =?us-ascii?Q?5WGncCQrKWvXJn0XQax3UMsoUWmR9vSyeVGabgVHDNrmAjhMa6iZITKJgprx?= =?us-ascii?Q?L0yNmyhJSWfrZSfmI26lpLh5epJx6K6gE2WhJSmxEikh3aW4CAAkYf2IG6jI?= =?us-ascii?Q?f/oosEsQNQUhzs+I+s1h4Q8cbKRQm31Hz3inEwvxPf9fkfu5AdKRnzkUGtpn?= =?us-ascii?Q?X0+yOCkaNYKd9FR7lAqWAAgdbOzi65VEV1Vb6bKp42KBibwkQnafGYTYhmW8?= =?us-ascii?Q?fvXEcjihXsTDvhtCcCGlDI32S820mpdW8WBF4PJw288s1oYu6oU9xR2e+qkf?= =?us-ascii?Q?Mf1GaW3F6d066WUuaFrHMvHd+G1nuWlbB8ZYDU5100r/Z0zSBAlLIz+gBi0e?= =?us-ascii?Q?rGWjOX9DMTx6ZJXpPbdgfwoQ/LZ/ktn4ORSyzyF8tc2iMmnmPWSlblgZlDFF?= =?us-ascii?Q?EqHpiZ0pieIeBKgoujmSEq36X1T6QcYWaTgThO4OgqTkW55hilOj+3igz8Ix?= =?us-ascii?Q?r12R19DpqRYDyRo649ZnVCIeEueRdRo9fEad6ol+SoLOftFs8F5tnvThV/gF?= =?us-ascii?Q?IGHgoxetwlbpnk2dDgXY1ND7nN+PK9i/BCp6wSvspsSY5AwioyTjm6rJq4LJ?= =?us-ascii?Q?ARESfOYRi5ntYPiqTQBSUFoWkYnx7NKUs4JV7nknx0N9gFWkuSgo3U6QnPKf?= =?us-ascii?Q?LKDu9GU1mvyRRVhUw+nyifiPhn2VCH8LexEjvUwcnvU9V0OJnfGU4f5VeHjy?= =?us-ascii?Q?47+edN9iVu9BEpBDXnB7bFtk+w9BfjuFxl0KDF4kw5a3eEMrd4BHTYx91z/v?= =?us-ascii?Q?ue0lLUjrpxuDi0UITO4KferIRbEm4rEHCQJqPrulDhoS+Pd68agHf3YBpCFO?= =?us-ascii?Q?8b5GJMTjCeWI22VL5Qf4zZDB0at7PBLPMssHbZX25mSuRpySypVtleTNFH4C?= =?us-ascii?Q?wudOGFH/ixcLM7dlwbB4lK/gvzBsBZ6baLH/wipDPIgiBRztssqNcSkIzxkh?= =?us-ascii?Q?Vqf1N7KFhvnpgP0IHDYaR2Zs6W3niM5sghJBUFnCVq8/hISuZBGS7Xnzm+Bd?= =?us-ascii?Q?KqSNT1yFGq5vgY5GRvGAtcVYm6wniK/jUKkyq5qkNnD0h5V6gdLAnYw6qGdy?= =?us-ascii?Q?1hszNx89S2MncVFDQDLqJhSZGg4J5+xHtBkPKE3ko0/3dqES0a4yDoJI37ez?= =?us-ascii?Q?xk8Skl3HgOsukEl0cJEargX0M1uFxV64eum6/KU8eYSeEiHcqJ8H5TwhdXUp?= =?us-ascii?Q?bEuH8iLqar2rJXjjiyuuvCX6CbLk0SRLllIZcw1+dtnFIXSbPSx0Xib0t+2P?= =?us-ascii?Q?kbKCEt6dx3De3c5O8+wIizpdPMAVfOwJwioVldxq?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0nzcwfIlJRUToBC62reKpeSLs6pJWVIqQZiWc/ZNoVpdZoHgSy9tQL4YWRergWocdM+Qskw3LoRYPQWwAXiQcLpTWtL1J9LKRyDSD9N+Mj5TydhSUUYqUY85cwDIRe8i82At9L53kb6p4Y5kSDq4KCTIPOc185ASNIc3761bqjooGUm18KV6Pc6vlqzPuN4OBqE3FJ9kx0fCnFJzH8+ofI7XCo5jZrT4OUSirCM/CDv8J5JjPhbdUoS5wluaO7OaSbFacLngfGzMaZupXz/Icd8XwkX8z9F0i5kcXm3FPsRBLSuGPmRUaKcxXb7K5CWDIKRO8zEp3w9n5XGzOOMiol2dCT9pnwHMjkCh5CnRoWuS1VwvNFhQMUk0fE8iBrMVgLSpwPCq+vixF87/BW2gAabryKm8iIe3kdhsoz3fMaKv/NhI4+qSZ1tch583+h2SU6epTMnFpgB03vw5v8EYoz+Yn6mAT+HB/+lXQK+pYRm+BczcneQwiw+ryLUC2v5FuA32KIMgGkAz/Ts/rmfwjEfBb06vU3MmVZfVhNozLERBi+aAzGyLd0i19FMFTUNQOIrus4eIqD4i3G2fDUysZjUd56Aa4aUZE+gqJpmcWHo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22fc0ac6-fb4f-48f1-4a3f-08ddbd4ee8dc X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2025 12:07:57.4756 (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: lTO8KBVTmjx97n9gUKi2RYk/3V5/Q1ukujSRio9ofrgjGfxNqRypH3rzjbTm0cXJuXVLFK92A1ryQSapYeFbSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF2C6461432 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-07_03,2025-07-07_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507070070 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA3MDA3MCBTYWx0ZWRfXzsjXXN1d+/Me LTTYa/mEiYYmspZyICEtsD5iyhaz+AZBxhdF2q79t8zyiXmE5VzOdRgjIOQWRP6U4sy2pUXCu3d JDCAKjwORsKne3Ae9apNSIeXbpHVjOuXMnmX0zdvjUZQM4B3jw5YlKKitnUSjENm4V+kAq7zAbj xUCw0Rmj1cfqWCUO4H1WVktURVFn94IF5nEorNbq0Jz4JVFdLlwwkJbZB4mEKCqErhGBrd36ziz aOPLdOg9JyiM2g1cE8H8UYfVMfXaCp/xY2GrPMOBFQe4OkC3UfqryWPUZvjQZ7tEG+/4xyVg7WW yIQr8i/P79/8o7rUBWN2n8kjv/n6fg5cmICiy+RNinuGIVLeBl6sUgRJ1AXTLpjpPqLZcmDm8Vz cyrENfbz5Xw1WnoZ0jKqN+Hi+XmE5OQzB24TxhqYZ1jGx6QhOFAz5tK83DwvGYszW4UbBDtY X-Authority-Analysis: v=2.4 cv=QMNoRhLL c=1 sm=1 tr=0 ts=686bb8a2 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=0YK46-DjLn4FG8pB2A0A:9 cc=ntf awl=host:13565 X-Proofpoint-GUID: CmiMxnxdIVHaUP4mACQoN2AAQdMGudN0 X-Proofpoint-ORIG-GUID: CmiMxnxdIVHaUP4mACQoN2AAQdMGudN0 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 77EC52000A X-Stat-Signature: bmzu9k8wqmxy6gt1xak38nf6x47gxydy X-Rspam-User: X-HE-Tag: 1751890092-993196 X-HE-Meta: U2FsdGVkX1+tr4wu1pKoL9cF3yKMCPRK4wIQjaZO0JGlfuDltORon9iWrqpoWQ5AymwQt3pq19iEyJ0j2BZMNfpElJML5JtXlzKI05AoBJOgvVHVarQk17/wLqqn2ncM+KIoNc3YOe5fMO6JXZ9L92mj1o/NmqnbJodnaqDHs3Un5D4d1w8LwoMUlWSWThzalQLJmCSOlAdaYDbE9zcj6FIr1GbCTS4v9APNWeCgQv+9gngOLjir2V2YhL9+TMuEtSEgMkC2uG9kUjAFW5X5LRT63bYhQTqHH2/guYzfe7UiSLUViLWh9QHSGJx77sEyMxmalGnymLalu3dVMp/l82v6XEntJ8eG9rkd4Q07kABpABzYgEdkum04dgC8/ho+NX3cC3TWnfLLZ8aYT4GYVhIsEomalrGNIw8Pqc3Sxt/BZneeWqOT8nlczOOKarrnL9cCet42/vE1gM3E+v9Qmk3iGXrA+WmbA/NgPDwDFzQnaYIE9N8cs9sqQs+PU2oAeK0h2qz1G/HABy2CfZQ5wmAToV4IvBIn65PXvFzcMZvHoiD2cnOTWCByEYwIhzZ+oiJDKwC7VH6JMOjBHYtNjOAwcPPgmqXwgyAxnkaEcLcgraasafObobQu9Vyz323PZy0JFxjFC98GH5MexiBnNJ98M4AVjIQyF1FnyUoqafoEKWmaAn+vo3Gjw+OJtDBok7sxAe9oym6WyMZA87EC+mGbfLQXy25HR6Vr1ps/XZjvfBJ9SqVlfahEJan3Ckult5dRkaEqjo+zUMDrwNQiJwYPYao9k4M9PvEJAJ8dcnGLxsmR0Gf4ya3LKR5zmxc/bGmaqyGZkta5+jls4jBbUv+GM9ZC9WrWzmKLLQfVx7peCTNtzXnBRziGeZ+iupHWG+hiBeLwpmMUfwQePQAhdUKEgyfhJuzBwGDPUyfh6pb83BhhxhOP8ocbB2Q2BkHGBkiAexfgFJAG6pFijgU Q0kMt+AP 4lWHMEY+3eBTut/jGKZgjRrGI79OmoJECvBQknOVQchoLrcxsd+4NZxb9XrJW/zmpykd5eL1iTtjuCuNzrKDgeCQfiYJ9VuNF+Ved1ym2LssUzI26nTAy/4VizZpbMCQwey7gdJGs6lbPa+J/Ijh4QnPtLbyV6dJ+us2j1SsFIsuoNts48OGL0DjVtS9cO7EvoBwlpCh2/sYg/eZpBkhklQubDnjAahkFTdAMtSMZPElRO7OtCOkxEo1u4bhPcG78zdDhSYbqdVsGrdGMJ7OZxEvLdMoZa4c84FZ1NEiTAzxqgh/8VKmD7+uP+oXg6I1liQfQfuUWZtRtDcFj645MRh306kiBHI+3zhjreQOpnR8Q8Tu/PqCjK83Y/A88wS82wi9bsGCkTxr6Lioyz63FU2ESnHN/XF25cmlvHLBQOSRS/ZlpsmH6gdqGdWZZDNx86dz36rX+lhtLk10DqHcwGVDaWdjQe70yy9lM5EmzTzh96L+IsKvlQJnc10yq+T0zuz9x32G6s9zlwnnnYFEf52cNpL+fgl4ZYcNbL2aoiDCshXAXXhUTHx0NF1z5/BontXPFTmvujABa5kuV2ea6rTqTac3CUCTPXyJzCr2vQ4+gLN6Aq6d1rgurWpBekz7+VuT1ItJJKuF+Q2dL3f4FivcD8olyDxYShELcBPL2lOChpzJ/DZH/4G/GRlCRnzUh0jBA3686VqOo9hFTMYYcGKmIdeNfJCVIoKW/uPwJQJIojaUCmE65WciQpOvPLh72EFSU96kL2Xcr2JMPP0Fxxm4wrOURIBq8LjlQJEqK7I8NcBo= 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: List-Subscribe: List-Unsubscribe: folio_test_anon() and folio_test_ksm() may return false positives when the folio is a typed page (except hugetlb), because lower bits of folio->mapping field can be set even if it doesn't mean FOLIO_MAPPING_* flags. To avoid false positives, folio_test_{anon,ksm}() should be called only if !page_has_type(&folio->page) || folio_test_hugetlb(folio). However, the check can be skipped if a folio is or will be mapped to userspace because typed pages that are not hugetlb folios cannot be mapped to userspace. As folio_expected_ref_count() already does the check, introduce a helper function folio_has_mapcount() and use it in folio_expected_ref_count() and stable_page_flags(). Update the comment in FOLIO_MAPPING_* flags accordingly. This fixes tools/mm/page-types reporting pages with KPF_SLAB, KPF_ANON and KPF_SLAB (with flags, page-counts, MB omitted): $ sudo ./page-types | grep slab _______S___________________________________ slab _______S____a________x_____________________ slab,anonymous,ksm Fixes: 130d4df57390 ("mm/sl[au]b: rearrange struct slab fields to allow larger rcu_head") Suggested-by: Vlastimil Babka Signed-off-by: Harry Yoo --- No Cc: stable because incorrect kpageflags is not considered a serious bug. v1: https://lore.kernel.org/linux-mm/20250609132723.13118-1-harry.yoo@oracle.com/ v1 -> v2: - Dropped tricks to fix folio_test_slab() false positives and instead adjusted Vlastimil's feedback: it sounds like a better approach to check folio_test_slab() before folio_test_{anon,ksm}(). But a slight change from Vlastimil's suggestion: check (!page_has_type() || PageHuge()) instead of folio_test_slab(), which should be more robust. (Borrowed from David's patch) fs/proc/page.c | 19 +++++++++++-------- include/linux/mm.h | 2 +- include/linux/page-flags.h | 20 ++++++++++++++------ 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/fs/proc/page.c b/fs/proc/page.c index 0cdc78c0d23f..d6efddf6adf9 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c @@ -148,18 +148,21 @@ u64 stable_page_flags(const struct page *page) folio = page_folio(page); k = folio->flags; - mapping = (unsigned long)folio->mapping; - is_anon = mapping & FOLIO_MAPPING_ANON; /* * pseudo flags for the well known (anonymous) memory mapped pages */ - if (page_mapped(page)) - u |= 1 << KPF_MMAP; - if (is_anon) { - u |= 1 << KPF_ANON; - if (mapping & FOLIO_MAPPING_KSM) - u |= 1 << KPF_KSM; + if (folio_has_mapcount(folio)) { + mapping = (unsigned long)folio->mapping; + is_anon = mapping & FOLIO_MAPPING_ANON; + + if (page_mapped(page)) + u |= 1 << KPF_MMAP; + if (is_anon) { + u |= 1 << KPF_ANON; + if (mapping & FOLIO_MAPPING_KSM) + u |= 1 << KPF_KSM; + } } /* diff --git a/include/linux/mm.h b/include/linux/mm.h index 805108d7bbc3..8bc6a38e0f9d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2167,7 +2167,7 @@ static inline int folio_expected_ref_count(const struct folio *folio) const int order = folio_order(folio); int ref_count = 0; - if (WARN_ON_ONCE(page_has_type(&folio->page) && !folio_test_hugetlb(folio))) + if (WARN_ON_ONCE(!folio_has_mapcount(folio))) return 0; if (folio_test_anon(folio)) { diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 970600d79dac..00ba2c8b221e 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -706,12 +706,15 @@ PAGEFLAG_FALSE(VmemmapSelfHosted, vmemmap_self_hosted) * address_space which maps the folio from disk; whereas "folio_mapped" * refers to user virtual address space into which the folio is mapped. * - * For slab pages, since slab reuses the bits in struct page to store its - * internal states, the folio->mapping does not exist as such, nor do - * these flags below. So in order to avoid testing non-existent bits, - * please make sure that folio_test_slab(folio) actually evaluates to - * false before calling the following functions (e.g., folio_test_anon). - * See mm/slab.h. + * For certain typed pages like slabs, since they reuse bits in struct page + * to store internal states, folio->mapping does not point to a valid + * mapping, nor do these flags exist. To avoid testing non-existent bits, + * make sure folio_has_mapcount() actually evaluates to true before calling + * the following functions (e.g., folio_test_anon). + * + * The folio_has_mapcount() check can be skipped if the folio is mapped + * to userspace, since a folio with !folio_has_mapcount() cannot be mapped + * to userspace at all. */ #define FOLIO_MAPPING_ANON 0x1 #define FOLIO_MAPPING_ANON_KSM 0x2 @@ -1092,6 +1095,11 @@ static inline bool PageHuge(const struct page *page) return folio_test_hugetlb(page_folio(page)); } +static inline bool folio_has_mapcount(const struct folio *folio) +{ + return !page_has_type(&folio->page) || folio_test_hugetlb(folio); +} + /* * Check if a page is currently marked HWPoisoned. Note that this check is * best effort only and inherently racy: there is no way to synchronize with -- 2.43.0