From nobody Sat Sep 26 13:47:20 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012053.outbound.protection.outlook.com [52.101.53.53]) (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 8FA59361DBE for ; Mon, 31 Aug 2026 19:25:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204352; cv=fail; b=NmXjuIbfsyFUZdA++iR0HpWL6Vcx/fKGK4CaWBYnO9N8xtVKRxYRuSHREaIRFh1CoTQ+m0+6Ct+4ti7JgO7ddyFdySD25ULiPm3bJY7d/xIA+lfTfi8nkgMWuap3MaxunFlhNMDst61rP4EXxAV9I1SVRQrtCvFD6ZrVEQNhiEg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204352; c=relaxed/simple; bh=KVvsjrhFffPzdeGsG5jWFfWPmpRs8WfcyNSd8WRM9AI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Ct2XPNj4igZdBat1WPTS2mDy0V+gNeYV9jZLdjMZ1tIF2soj0ObaJ29Whaia4h81Bf8w3ZCksR2fIq4K8hRIzh7GT60xm1e+Fna/DnNzR+SRgFmVDDF6cJPHvEjbRaroGatnMZ3PNX6ZHQWROkyoZHG5zLL192XsZu9/FHGgauw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=hhMAysU3; arc=fail smtp.client-ip=52.101.53.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="hhMAysU3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KAvxKIc7u+VLwf84k6RTe+SeHDFfmq7KjI9tZXUvvBjevVcOcGNn/EeG1pxAPSpKJESYsEcKx1domMbjyKsc3jD6JTAUJY0UT0EN8nrwQ+c1pFojUGC2D1QC3pHgA7ygw0E8Mwj9dUrODoT4vAuUnNFcuYR/+KpZJX/v0iii09njS7olSu4WxjTOoDLTeIJLDhD1rhp7RghzTKunyIgib9Vfp9o9dVA50zNvho9NcDxigVdKaLS6rm6lplTK7oshTfAU9AkVCbhSK5Dct8hSw8+0hC+2eCsEl57bxiDrwWJ/+mVMZjep7Fdq+5TsYReNPIwGRRbi140RV6YaIAraOg== 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=9fw3H63mFOM5wM+X5HnSTRkGMbpfnfajuq1vd0Z/41I=; b=MTo0yUxXOCwzV5LyEsREXS72h5dakA7E1vI6MUkO/LHRvG9hhWQ2DvlWN7DS5JRFt1H/G/Z1InS2hgQQfasfB0Be85mHH/X+HDb0QPmydxrC+SwExZDyh7c/nwYfUrExe6s+tZ1ItPZk5jhE2J57+SFJbyKAecbR6hYKWIj/bK6XdlWEIWcR1RHLdQXU4uyJbsR/qcv5DIUSWthII0NXUmytDYfKWNlTmbBNso3WK/NDAA87WYUgoquIjisrMLYA2l61cU0UTM11Uw3cqtr9J7KDN5dpy+RL3bfHA1WpZVax8e63eMBemKSjIHYgRj6GadARDKm+S5jPU+es6wZn3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9fw3H63mFOM5wM+X5HnSTRkGMbpfnfajuq1vd0Z/41I=; b=hhMAysU3Jho+ptBNp0ouEPbU4jQulzRGo7tFZtj2gLT062tpPkraB1S73RDxgiWNUYktfXZLsgIvRnu6SKKzLclAggH57kGgaZTSbH2jyKCuuwI+KZ6qoqmOD05Cdw1mVVnk/dH2dFeMUgq05nIiZJBSWCgf/zB9pDsCl9tysZURj/oLc2cdZDr4asKlOeeHe/xpbe7wQ23DC1M/P0M+q7OyHjddQ7RP/5gkONMsbfa/NnhOicE0eR+3jhiWvrR/JZQ8EmTB7t2/Xy1Z5WXSp1cVBR6hcGGHcHEfiTwk9zPAS2UuWpySlXFOydpWq5IkCg4EUcT619Kbi6oyJv69pw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:40 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:40 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:24 -0400 Subject: [PATCH v2 01/14] mm/zsmalloc: replace PG_private with pointer comparison Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-1-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Minchan Kim , Sergey Senozhatsky X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR0101CA0095.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:4::28) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: a207c8c8-1b96-4e52-509e-08df0795a452 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: 9N4+k1uT9ztyHSu/4Rq8zYM+D/w2+TtUh1iuiemo0bCul8Hn7hsEx7nEsxUjIDYRuVsc/X270qFHbHeywYW0sZ2Hey3XheUmHXYduka7WXYt1ewVbwC8BMyaRMSTcnWl0RugvFHE6Q08FjXfV3Dv9A3fhg4gmVr+pc4+/gG1y5UGBpXv5dg61t48jsDoZhYPO4qZbV88K8/+jsOGlr/UEhjLSiNI/i5YtivlDH4p6zp9wqAOFfrzrAFBXvFsoBQAhwbI+usgQMtrvmClnpDPAOngTuGwNqzhV8Ek0MP3hQOmgDSF/yp2qH+ERnZC7hZTkcs1cZJSCAuHUuQBI9MU2Wjge2WY1e9+a2FT4GIJ5IKTnovrzCknzQg6cGr+/M1HONDUlgWqY782rQ/CtTn9iDWQRJ6rxYAUWPWsiuM3YhU9Alx5xOYREhzCo1KC8/zabj/PMGy8InMmz7fORYj7PB0G37W9qRZfffGkxJjwDXO/TlU9pizIBUEhlL4uFoPkRTGJswWTTxWziMruNFcJjlklPc4CXlVSgLxLZ6Sh+M4ftZYzTqql01Kr7HbIOVwN6ptoqAHEnwbZecHNZs0ra2uqJOxtJl3Q+ASAomnXRikDLYtc26nELBWZ7ZvK01uZi0NM6KXBD1DcMDQuplOC/2KCtpfdnzW2L2EsqzYHXBFLmioZlPoQaSkLvg6H6dsg1438MLjPssWsjQn29OL5gQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VVIwMUZ3N2tBcUtNWjd4OVJLV243R1lrenB1a0dMeTZjUzZKVHVWVmxkSjhT?= =?utf-8?B?ZnRLNUtTK0RpckkzQ0RYb2pmcjVjN1FYQVVrLzUzOHNpckVBL1dHd2JVWm9V?= =?utf-8?B?bkJhdzdLTUh3eHVuWkRJQVcxQTNrWXNVYWUzamh5QTh4T2FVRjJWenNkRzdx?= =?utf-8?B?SXo1eU1JSXdudk8yUGtRaHRxMEpDMVFYY01wWVB3a0tEM3FLbENqZ09wMHFP?= =?utf-8?B?MUpmY3NabG5MTkZuMzJWVVlHL245OVY1M1JQcldEb3U4SEJma3dmZ3EvZmJv?= =?utf-8?B?RnJYcWNxZ1lwMjRxZGR1Z1U4Skp2cnI1bjZudHFhc280NENUS3VSYnQ4YU0x?= =?utf-8?B?NklPc2pIZk9TUG81YTlOVmYzSzA0VHliMXB2dWcyemFINGZtYjJRanRhVTR5?= =?utf-8?B?bktsV2FGejMraXAwS0huU1Zid0FSTG1rSlNPbURXQW1NRGdhTGxXV1o3YWdl?= =?utf-8?B?dDM3QmJmUHdXbDBKK0xOTi9RM3BUR2hnY2ppTDNETGFNcjcrcjUxS2NWaFY1?= =?utf-8?B?NUxMQyt5NjlqU0c2bEw3Zy9CS3BCY25MV21PL0ZRWThqQXVsUzJvcXcrTW92?= =?utf-8?B?M0FPTGRGY0ZwTFlTSmhrajEzTStSc25tZW84N0x2Nzc0VzQrQyt5cmpGaWtm?= =?utf-8?B?STlzNEdoNWNlVHBEb3Y4eG1TZ3lIN2NiRTRyVDdOeVFTYnJCeGhKRmcvcCtM?= =?utf-8?B?V0o2RENLOUh0ZldSbGFHQjVCZ1ZpSU9KKzR1WFhGMmNkYWJ2MjUzTSsxb1BN?= =?utf-8?B?NTZYczIyM0Uvd3NUbzJhMHpBUFcyV2M5RVloMHpiL1MyTUhFL05vYVJUVDVS?= =?utf-8?B?TnQxckt3Z1JOTDNYMnkwREQ3NFBRa1d4RXIyaldyKytwTVJHaXYyLzgwcTgr?= =?utf-8?B?UHlncC83YlJ1dkVMU1VTWkhUVTJjNWZkMFBSdmhRLzB2U0prNlBKTEhncURj?= =?utf-8?B?b2ZuYWZMRHIxMERjVVdRSUNUSHh5VHVLNmtDZXdoQUt3ei83L2dtQzhvODM4?= =?utf-8?B?TG42cUxmMDhwTml5a2tuK2lXNGFzM2RjU3V5Yis4NHhJbGpVemVXYjVPSDJS?= =?utf-8?B?V3hkODVDS0U3aVlTclFEdlhlUS9odUpyb3I3TElKWGc1NDJvWnpyY3RpNkVh?= =?utf-8?B?bGJ2dzgxSTAyVDl1R0ZWeGR2SVZEMlF0c2lOc082RUdXMG1GcUNpMGpCSDFt?= =?utf-8?B?NXk5RmFKaTFiRTFnQ0NNU3pxZElpSXprL2xzRXlKKy8yMUU4aUJ3aUhTUHZu?= =?utf-8?B?OThjV21iM2JXdE8wMmdPZXdXYW10aGRiQVk4eklKV3B5MVpQYktRY0w2SFlO?= =?utf-8?B?Wm1JUzZKdGNRd0xqY2RwMXlnUDhJWUhRYWFScXlEVUpiVmZoMWJINW9ycnpV?= =?utf-8?B?cFJDYlczZk9FT2ZUZis5U2pubUhiYzlyazhGd283SVlhYjRTaFdWdzNNaWNX?= =?utf-8?B?VEpjeC9mVmZGa202V29SREYzVEF2emFZdXJnVG9SM0ZaNU5iak9vb092VVNX?= =?utf-8?B?WEZWbDhJRXJiWDFRczF1RTZrNVJFdm1scEhmVjgzcUdualc2SEx4encveHlF?= =?utf-8?B?amhjQVdNQmJmeFl6SVZ1UkFPeU5Ebit5MDBHOUU0NmVXQ0JQbHJzdTlmcmYx?= =?utf-8?B?WlEzY1NPZDdmaU1BdWR3a1BRUUR1T09UZ0x6dkNJVjlwOHowcjR5MmYxbVpp?= =?utf-8?B?L0ZqUTdJYWZmdWVoRFdCR2hhT2ltc3hVYjZNbDI2a0Y1MkRpcEhSWnl2Q0Rp?= =?utf-8?B?cERwOEdsNjRKZWdDT0pGSjdSYys5WUFINnRFeVpEazJqT29qa0M3eUtOZDht?= =?utf-8?B?MXk4aHhmM2Ewc2k5eWhGcFB0Nk1la1BZUGdycUczN3VWSlJuVW1CaTNnM1VE?= =?utf-8?B?dG5ObEV4OWVZWXcvdjgzc1RmMnZvVCt0bk0yMUlyS256MjAvWnZ4cURKQklL?= =?utf-8?B?VXQ1VmtUZmpMVUJ3d0ZwZzRjclUvUEMvMlJXa29VU1FzV21rZ2tOUExZeXBL?= =?utf-8?B?QThnT0RqNlF6dUwwVlJXKzYwYTJuQ1p5TkE3bkdBOWphVFRjM0U0K0dtWE1t?= =?utf-8?B?T1RxT1paUUUwWFVEM2Z3bWhONWJXQytXaDVPakVwM251MGtHS2FybW13aWZF?= =?utf-8?B?RVZUSjNqbTBNSzlaaHVuWlNUWUNOZlREOC80SlMxVUk5aTlrTU1IRE00K255?= =?utf-8?B?U2ZtWnB0NGpEVW1RUWVDZElmb1lpaHMwRUdIanhpcmFZeVNxdys0VHQ4MjJQ?= =?utf-8?B?MHZCTmhKYTlMTWh2dks2dUVmUzZYbmltV1drMTJZOHIyb29zd3BPaDlOYzJE?= =?utf-8?Q?LTrSKg/VHbWTL9p22E?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a207c8c8-1b96-4e52-509e-08df0795a452 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:40.0138 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TwDsDYvakaOWEylBL2z6PSFzslmfq8aiwaSLmdG1wgxBp6GP23kmFuBbx8FMNOIj X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 zsmalloc uses PG_private to indicate first zpdesc in a zspage chain. It is equivalent to check zpdesc =3D=3D zspage->first_zpdesc. Replace is_first_zpdesc() with zpdesc =3D=3D zspage->first_zpdesc in obj_allocated(= ). For get_first_zpdesc(), first_zpdesc is from zspage->first_zpdesc, so replace is_first_zpdesc() with first_zpdesc->zspage =3D=3D zspage, the seco= nd requirement of a zspage chain, where all zpdescs point to the same zspage. is_first_zpdesc(), is only used in VM_BUG_ON_PAGE(), so performance impact should be negligible. While at it, change VM_BUG_ON() to VM_WARN_ON_ONCE_PAGE(). It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 To: Minchan Kim To: Sergey Senozhatsky To: Andrew Morton Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Acked-by: Johannes Weiner Signed-off-by: Zi Yan --- mm/zpdesc.h | 2 +- mm/zsmalloc.c | 24 ++++++------------------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/mm/zpdesc.h b/mm/zpdesc.h index b8258dc78548d..4fd81c2e80769 100644 --- a/mm/zpdesc.h +++ b/mm/zpdesc.h @@ -26,8 +26,8 @@ * with memcg_data. * * Page flags used: - * * PG_private identifies the first component page. * * PG_locked is used by page migration code. + * The first component page has zpdesc->zspage->first_zpdesc =3D=3D zpdesc */ struct zpdesc { unsigned long flags; diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 825022a7a328f..24526185fd31f 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -290,11 +290,6 @@ struct zs_pool { atomic_t compaction_in_progress; }; =20 -static inline void zpdesc_set_first(struct zpdesc *zpdesc) -{ - SetPagePrivate(zpdesc_page(zpdesc)); -} - static inline void zpdesc_inc_zone_page_state(struct zpdesc *zpdesc) { inc_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES); @@ -476,11 +471,6 @@ static void record_obj(unsigned long handle, unsigned = long obj) WRITE_ONCE(*(unsigned long *)handle, obj); } =20 -static inline bool __maybe_unused is_first_zpdesc(struct zpdesc *zpdesc) -{ - return PagePrivate(zpdesc_page(zpdesc)); -} - /* Protected by class->lock */ static inline int get_zspage_inuse(struct zspage *zspage) { @@ -496,7 +486,8 @@ static struct zpdesc *get_first_zpdesc(struct zspage *z= spage) { struct zpdesc *first_zpdesc =3D zspage->first_zpdesc; =20 - VM_BUG_ON_PAGE(!is_first_zpdesc(first_zpdesc), zpdesc_page(first_zpdesc)); + /* the first zpdesc must point back to this zspage */ + VM_WARN_ON_ONCE_PAGE(first_zpdesc->zspage !=3D zspage, zpdesc_page(first_= zpdesc)); return first_zpdesc; } =20 @@ -838,7 +829,8 @@ static inline bool obj_allocated(struct zpdesc *zpdesc,= void *obj, struct zspage *zspage =3D get_zspage(zpdesc); =20 if (unlikely(ZsHugePage(zspage))) { - VM_BUG_ON_PAGE(!is_first_zpdesc(zpdesc), zpdesc_page(zpdesc)); + /* only first zpdesc holds the handle */ + VM_WARN_ON_ONCE_PAGE(zspage->first_zpdesc !=3D zpdesc, zpdesc_page(zpdes= c)); handle =3D zpdesc->handle; } else handle =3D *(unsigned long *)obj; @@ -853,9 +845,6 @@ static inline bool obj_allocated(struct zpdesc *zpdesc,= void *obj, =20 static void reset_zpdesc(struct zpdesc *zpdesc) { - struct page *page =3D zpdesc_page(zpdesc); - - ClearPagePrivate(page); zpdesc->zspage =3D NULL; zpdesc->next =3D NULL; /* PageZsmalloc is sticky until the page is freed to the buddy. */ @@ -1006,8 +995,8 @@ static void create_page_chain(struct size_class *class= , struct zspage *zspage, * 1. all pages are linked together using zpdesc->next * 2. each sub-page point to zspage using zpdesc->zspage * - * we set PG_private to identify the first zpdesc (i.e. no other zpdesc - * has this flag set). + * The first zpdesc has its zspage->first_zpdesc set to itself, no + * other zpdesc has this set. */ for (i =3D 0; i < nr_zpdescs; i++) { zpdesc =3D zpdescs[i]; @@ -1015,7 +1004,6 @@ static void create_page_chain(struct size_class *clas= s, struct zspage *zspage, zpdesc->next =3D NULL; if (i =3D=3D 0) { zspage->first_zpdesc =3D zpdesc; - zpdesc_set_first(zpdesc); if (unlikely(class->objs_per_zspage =3D=3D 1 && class->pages_per_zspage =3D=3D 1)) SetZsHugePage(zspage); --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012053.outbound.protection.outlook.com [52.101.53.53]) (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 3378E370AD8; Mon, 31 Aug 2026 19:25:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204356; cv=fail; b=VWXklSXmxIVqbXTLSuDPa0mgM1sDbbsWPSAIGM/wox12PpyVukZZuhqvGXSiN0Ab4FXYSUcDyHt/2F9LrgEYj4izF4lAmdS4zicuszQLn5lobnftj7z/V/4tjTVH5mCnK4B4sJTKwFdI5mrKgCuA58dEsVlTj3b5ulB40AWjSuY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204356; c=relaxed/simple; bh=r3mTDbiyJ6Ri8cCbs/hx1DhztVQQ0CBclSWQcoehl6w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ZfjL7yon4KlmZlSpQ+ebnanRtqLOTriPyKuYx2+R4PZ2xXelIDZS1wQUhINHKUEyjCtgQKt+zie7SiJk7Jguu6HaDewMVgTyJOICiMiZoyJ6UxwrgvyjmyKyie6+MvreIShOPu3NGVNScNHFJpD1xtRjHhXd5fLdx2fOJ3SYdNw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=U0+tL3I6; arc=fail smtp.client-ip=52.101.53.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="U0+tL3I6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qPq5gCfGZvYU4KshxJTuLmwAvvxf94eAFxX6Yj34xJ8WZWXPPdWipXehFLxPI32XsY5G2VExMCP9rKEiHsTTxBx6kC+zCCv8tFQrtSAkRNt9GpqrEf0P1ZzpH5ASpOsEf3d+QEaic5Vd/swG0GWAojC9kAI/0poCV2z+BR1cL9s3/tbK4UoWlwdavi+5BlEYOoX5Miey3RDAayo6iVmwqTa6dPsg2abHfTRPgB9nDisCfi88TIF+2hrwYrNB6YO3UOLeD0OjvHwAVQ6F9/eWSUWQALx6t+oJlKtFvabHaqS/tHHqx8AEOZaP9lVNDTyzAOmTG1cAKvB21jw72kiU9Q== 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=PQevcIRM2dc7I/YIXVU4WFpH3ye55IqcOiT75scB9ik=; b=pQHw3lLqps5ZBFizp71mo3K+/iE+4Lo/OiD2FdEtYvFb02tsrwgEZ0CcSImtBWKiE0nhCYM8cTtkKvN4AMa5DD2knlWGsKRFd4pPy2lB+EnAu/309+A7gwG1sQoZbtM+KrLuT3DdlHDhvtuLbUViOR8fgcNlhJhdoJVtU0+XGNfPWFhhiuFGduZQc7GurFPIvObdIMxxHcYXM0jV1dDjoXNlm33JvJQVnLs0WAD4Exm8I/x0fC0Qm4ZIdrLHAxhnaoy7szqcHJrqFUw/6KFWv3lHBkVHaZ1uU68EAbBjqBwfabHiu4loJyBA5WI0n9D/zuq7GiEjDFXp5EF4PG4EdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PQevcIRM2dc7I/YIXVU4WFpH3ye55IqcOiT75scB9ik=; b=U0+tL3I6ugke4ulmhCF3wb8LmQ3Ms79WVNjqFCfC+GOVqJB8m4G1oicBoPFcNK6ZtRrz5VDsI8eiOot+L+uV7CGhwDbJQJXzi1qB79XztXBDapfNqmIu7UibtQYm5AsW+z6Hpt+shSRYHJq0R3lE/g9bac8vnAVz5oSdXLGQ3Ma8WYbb/H/8YkP9F8atW0Acuc2e3qH0LyjnzXqmTKvgQ33cHi6QDbmDrHVhe+y7m+fImv2B0I7knyzNBECMCz3VnSt+DF2bY7T/o0tHC+tK8MWZOo+288RWqCz6HQggQYJHs55czdmT158YkHWErPlK54CZFTslhZZiw3dnXpTmTQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:41 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:41 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:25 -0400 Subject: [PATCH v2 02/14] perf/ring_buffer: stop using PG_private as AUX page high-order marker Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-2-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , "H. Peter Anvin" , linux-perf-users@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR0101CA0331.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6b::23) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 8364d3cb-3246-4abb-d12f-08df0795a55d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|3023799007|921020; X-Microsoft-Antispam-Message-Info: iYumEKz58cLPOZOjfzBCXuzBO7xhcLU6IM5cwST0ym04yNG3cfNWhTxUvrWVwHky7yeFKJc6Jvw26MRtz5K63VlkCa8O2HuZ+NYQtUr2ERPTjICQC5h2IhQBcAtwX9E2PGqztTkSd4/+q4UGic215ggxRs5VHni9UJLSYU4zSDMXoXWc80cKNpKpxCwbc69sBcK0vdqgmKjChJQfFBq30lPk9BpEcTzlVcOpvf3mN+oCuHG+Ufdnm4Noa/SrdQGnaAXo4s7knHG2Ztlvy3ufdd3Gv6NEZgGX/VlauKqbG4HT9joCxILYMqdb9Q5UHijbYtLvlHHIPPXt8jxVLA6Ydm3IZrvz8/jKtihVguAZ4L7xMJ7zZC2H0kHeDOHnySe0AfAg8/gn4/ls/vwEgnhKIbl0TM232KOgPiUb2xeEMws7Di1f+PHYVcv10WDMKlN5t+shUg+RGArVOJqnADWqygwNPXcUP+hmDAsLMxXzZN0B06lWoV47biw80wLVt7ThRy9X107JlgVgh0p1+b+gEU6oyaiwYsiFI2/1SNPgvfpZ25Xfq3PgtXglXIDrnNWWbFYCAaOeEKdk5EiVcxtvZhN+MoK8OGqro6xvJ5lAdryc9N6IH9seEevaBJxwczAmlvkVds12EEB5Ll7tF6MAB4c1G+U23j0qlAias+uO9EPqmPQUegfxMw1uwdilR4BkQdbP4ZgWbQWoaq7KHBS+jA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(3023799007)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SHorRHNUUWgrNEo3dmx2YXplVTIwWUJIandMZ1d0QWtJTGhNYXlXYUJuZmxL?= =?utf-8?B?ZEVzQ0I4M3FPdWRhQjMzNXlINDVsRndRcHBpZ0RSVVVLcU83aFRxdFF4enFS?= =?utf-8?B?bTNHeXltcjQwUlRjalQ0T1R4ODFHUDE3bHZjV2NVdlZDUXRVdVJreGhVc0NN?= =?utf-8?B?SVFvcjV1QUcxMUw5ZjRKM3pEQlBqMDlRWWpSVlo2ZnhlK1Zud1BVcW5Ya1oz?= =?utf-8?B?M085NWZzb3lXdC9FSkY1TnlXcmNzNHRJVnJhTkoyUldleXN4dFRDNjNadnlC?= =?utf-8?B?WHUvTXVDNTQ5VnpvSDNaSFI0cE5UbHJXL3NJV2Zpb0J2MlFpWFpWY3crTkZH?= =?utf-8?B?bnFlTGlBWWgrYlRTNWFWaGdFL01yMysxNlpyNHh2OUhNdVF5S1BIa3ZXdEdh?= =?utf-8?B?UUM1OEx6WUJ5RkZIUFhWc3ZWRWtXWVpkckFFM0dWT0NlckxGNDNtWXdveEF0?= =?utf-8?B?RDl1NmVhSVgvUTJZVHR3d1M4bFRqNGhyKzVYYVZCNmtOOVF0MWdvUjRKb2Q5?= =?utf-8?B?TTFCM2xXTU9RWW5INUlqUk5SZWhBUURoSVJKdTFoY3Bkdk9WNTRVTDdwaHVO?= =?utf-8?B?L2tFMTZTVU1XNVZzSDJISjVrZklKcHRtZXYrczNoUkxBOTIrUmlXME50d0U4?= =?utf-8?B?eEw4bzFaQWlYUTNmbjdDUkZKSHIzT09XTnBuVGVrWnBiNzhFV3JKbjZUbyts?= =?utf-8?B?c0tQYWhUNkk0UE0rUGE3cnB6TTRDRmc3bVhLSmk1c09rYytjcklnYnc0N3o3?= =?utf-8?B?VEZLREJCdHRVSVF2VzN4TzFveFVKcG96Tm1FeUYzaFZpUFhZNWQxcGN3amtW?= =?utf-8?B?SDJhZHhkZDcweG1tOHd4VUUyTjArazE3aHJnaXYwY0N5eGRwazM0akVKU29Z?= =?utf-8?B?RVhQUnBLempzd1VXZjVEbHhPY3VPZHRwTit0NDMyZWQ2WlJvZnZRa3BlTkc5?= =?utf-8?B?RW1zOFZSK0FVbGQvVWIrdVBWT2I0U05jd1RmRlpkYnVNZk1rTm9jWG9PSzdm?= =?utf-8?B?a2hVZzBITTVnY1c3dU1UOUpYd2pObEhzMlFheEJJYythWVU4cnJnbnZtekor?= =?utf-8?B?NzRWWHZDZmQzSUFUZWJ2VzJzVW91UmJuSXk4ai9BUDRoQ09HTHZ4eDkyYVlP?= =?utf-8?B?cmFjSEpaZmRkV2lqT2RDdEtGMDNTNWlVNE5hODFrcnBCZTVHZ0ZGQ0d5Ly9Y?= =?utf-8?B?OWcvc25lcytubUNTa1lmYkpVMGExUDRIODdQaDBleVM3YUx6STJvQ2JFZjZC?= =?utf-8?B?UlFja1Nmb3dSWVNMNG5ydzlYZU9BMVR4OExMMjVWSUVXS3pqRXZBZEVPNTJa?= =?utf-8?B?ZFF6bzZucmdFamcrQWFMRStjS0tFMXNJUEEyYXVMd3ZYN0J3dUtrZXJ0eHpC?= =?utf-8?B?VENhZDlYV3lYUUJYb1d0UnRJZFVpNjFHYnFiYnF5Y0U4S3dQcGk5VEQ3amdJ?= =?utf-8?B?S29SSzJicWI2TzQ2RUd4THpRSXZSMXJOV3hjZ2VuVGtsZVhEc2JPMFdkaVBN?= =?utf-8?B?eUx1eGlhUDE2WDkzbWZMQWhFcEVFRnNjVWV1MmtSVjYyQkdaYmtsYjNXV2Jv?= =?utf-8?B?NjFSSUlMdE9zY2oxTFc5Rmt0VkZ4SlJJNm9FbnNZVTlKRWx0UzdXdlJHZzJ4?= =?utf-8?B?eEhjRit2cFNrV1c4N0lMMWlzT2dGUGtNWDdGV2RieS9ONmczd1ZtYmNORmx3?= =?utf-8?B?TGJVV3FXL044ZERpVGlVRFlaTWlTdFpZWHltdnM3V2Nidk9SdklucXFTRGF6?= =?utf-8?B?TGMrRnZpSThiY2ZadVN0c1lRbkRxbUUxYlZvdE8zTnoyb1RJbFd6NEVMdFhV?= =?utf-8?B?Nm1BQVdJanRRR0huK2FVRStqY0tyaXI1REk2a3VXWmZIOFk2QU1zRmRBbm5h?= =?utf-8?B?RWloc2FINGRsS0lZMC9QcjU0OU1EemhuQVE3MHU2Z3lrUmtoMXlKaFl1eXg3?= =?utf-8?B?Sk1mUHQ5cGpqeXdxMmt3Y0g1aHNFanJZR2hiNGlOUGtwa01kb2pYSUVjYnZV?= =?utf-8?B?cDZ2YndCYUVXcW5RajV5NW5MZnNNUndJRGJZdFdmRGhuM3JaUVNHSkk0VkQr?= =?utf-8?B?aHhyS3RLalVCcDI1TFVGTERSNFRXTEw5KzJNU1RTanBabldzMzMyT3poYjEw?= =?utf-8?B?Vm9oWmd3ZnNJMHdFK25IenNrLzdtOG51ckRWaVo0TzIxa0Q3T01oTFBrcTA4?= =?utf-8?B?ZTRRdlJsTjI1VXBPVmF4eHVzaTdrSmJKbFJMVWxlRlVTRjJTVXpNZnhrdHNi?= =?utf-8?B?WXFrRVBZQ056b3RqQ0phYTFHUFFucHpRVmwxVDQ1Qy9tYTFCU01xaVNEeGRs?= =?utf-8?Q?+6vjqy3Tg+1k0plQkQ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8364d3cb-3246-4abb-d12f-08df0795a55d X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:41.6817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9R+mBpWRUWks48/k3neieb7pj88O+PuqzDLGDKnsm59FRNJxSKguTZzz41i/YxyP X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 A high-order AUX page sets PG_private on its first page and stores the order in first_page->private. Stop using PG_private and check first_page->private for AUX page order only in the ring buffer and its users. This is fine because page->private is 0 for order-0 AUX pages, matching the page order. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 To: Peter Zijlstra To: Ingo Molnar To: Arnaldo Carvalho de Melo To: Namhyung Kim To: Thomas Gleixner To: Borislav Petkov To: Dave Hansen To: x86@kernel.org Cc: Mark Rutland Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Ian Rogers Cc: Adrian Hunter Cc: James Clark Cc: "H. Peter Anvin" Cc: linux-perf-users@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Usama Arif Signed-off-by: Zi Yan --- arch/x86/events/intel/bts.c | 3 --- arch/x86/events/intel/pt.c | 6 ++---- kernel/events/ring_buffer.c | 7 +++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/arch/x86/events/intel/bts.c b/arch/x86/events/intel/bts.c index cbac54cb3a9ec..5849392cf26d5 100644 --- a/arch/x86/events/intel/bts.c +++ b/arch/x86/events/intel/bts.c @@ -66,9 +66,6 @@ static struct pmu bts_pmu; =20 static int buf_nr_pages(struct page *page) { - if (!PagePrivate(page)) - return 1; - return 1 << page_private(page); } =20 diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c index 5754cd4055628..49349afee6119 100644 --- a/arch/x86/events/intel/pt.c +++ b/arch/x86/events/intel/pt.c @@ -781,8 +781,7 @@ static int topa_insert_pages(struct pt_buffer *buf, int= cpu, gfp_t gfp) struct page *p; =20 p =3D virt_to_page(buf->data_pages[buf->nr_pages]); - if (PagePrivate(p)) - order =3D page_private(p); + order =3D page_private(p); =20 if (topa_table_full(topa)) { topa =3D topa_alloc(cpu, gfp); @@ -1296,8 +1295,7 @@ static int pt_buffer_try_single(struct pt_buffer *buf= , int nr_pages) if (!intel_pt_validate_hw_cap(PT_CAP_single_range_output)) goto out; =20 - if (PagePrivate(p)) - order =3D page_private(p); + order =3D page_private(p); =20 if (1 << order !=3D nr_pages) goto out; diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 9fe92161715e0..061b5cb222266 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -630,11 +630,10 @@ static struct page *rb_alloc_aux_page(int node, int o= rder) /* * Communicate the allocation size to the driver: * if we managed to secure a high-order allocation, - * set its first page's private to this order; - * !PagePrivate(page) means it's just a normal page. + * set its first page's private to this order, otherwise page's + * private remains zero. */ split_page(page, order); - SetPagePrivate(page); set_page_private(page, order); } =20 @@ -645,7 +644,7 @@ static void rb_free_aux_page(struct perf_buffer *rb, in= t idx) { struct page *page =3D virt_to_page(rb->aux_pages[idx]); =20 - ClearPagePrivate(page); + set_page_private(page, 0); __free_page(page); } =20 --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788204384; cv=pass; d=zohomail.com; s=zohoarc; b=bLNVrU5yZ7X3UdlAKQtaIkLWkRHU2/t16n0jaiSYzltZuSyVLa/y7GDDabcSHQSAcRRx5/G3HWrGnoq25jb/7S5GvpxfQrYM6phiftXpS8VkBjC+6tJG+4m/yAeSQhGJBVOgfubk4N8MCVLZWhp/RhkwbzrMHrdQwgapDQuHWVc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788204384; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vgf8AR8nU41qGg9Ak0WHclMBa3GGy6njR91QTF4tAYc=; b=Ir2yfyT2Xj6p3rSFrE+TrirD0oN6reAhoMnTweWjNpX9fmevk1k/s8aXsyKr5UQRyyWucRigiqlnIqMeywqryj1O/zjEbR0NoKJW36woEwqcGsXkBkUST/ZrWWYrXCACG2MEHSySSeK620jFnxBhTUeQ0l1rETDNJl33a4u8jXo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1788204384957338.81253686316643; Mon, 31 Aug 2026 12:26:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1404362.1638083 (Exim 4.92) (envelope-from ) id 1x17dq-0004qM-4a; Mon, 31 Aug 2026 19:26:02 +0000 Received: by outflank-mailman (output) from mailman id 1404362.1638083; Mon, 31 Aug 2026 19:26:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x17dq-0004qF-1m; Mon, 31 Aug 2026 19:26:02 +0000 Received: by outflank-mailman (input) for mailman id 1404362; Mon, 31 Aug 2026 19:26:01 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x17dp-0004q3-C4 for xen-devel@lists.xenproject.org; Mon, 31 Aug 2026 19:26:01 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x17dm-005nZD-W0 for xen-devel@lists.xenproject.org; Mon, 31 Aug 2026 21:25:59 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a95d540-bab6-0a2a0a5309dd-0a2a450799d2-8 for ; Mon, 31 Aug 2026 21:25:58 +0200 Received: from [52.101.52.3] (helo=BL2PR02CU003.outbound.protection.outlook.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a95d545-b4ea-0a2a45070019-34653403f478-3 for ; Mon, 31 Aug 2026 21:25:58 +0200 Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:43 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:43 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=temperror header.s=selector2 header.d=Nvidia.com header.i="@Nvidia.com" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qopNvCqwyjtINHg9KbusDN8tI+0areZ/p2iMXRGmfQddrtJNvqMjVgiQgY0bx5vzi4mwxMSMTb2b7TOl4/ezw2+k3v/CeC/EesAdXZEPhlAV1PsSgEEetHjQi4i/xT3Wf7S+V7jhEsb/YjVYRDwTbJlu1m5FyApQ7fMijSgoai8pPBxIrP3vq3xEjW7YhnAwKM/A/82CRYU8I4k0PDos+/+Mh6jxLwcZL8r8en16Kzkhi6+utMXGNPUFtbTF2mSzqEbvmCbfUPxUYjhwuXqHGOA4mvUC2Qva01U6tVHBcHG+7ySHt5WzrXHr+vr0dcjRjXsekd7wOkrpnIClHHG5TQ== 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=vgf8AR8nU41qGg9Ak0WHclMBa3GGy6njR91QTF4tAYc=; b=f2LXQUURhP00OpgtDmhaFE9YQ7KsUu1XBNpnFhT+bSa7mRif/K2BNMzxGW31t2+S8Od5hmQyZkEf4Mip8OUDXZjzcQl1RjbGd2qPv9kru/0Js2onb0tw5lH9JFY5/tWRPxb11iptCszJWqINkV4vYuBBxMMdqWfr3o8kLx8m7M3YoXhxmr4J3GhaereTASG7YSp0932dA4+AYNYTVsk0cx3lHaVRyMrRc3Nq6aC5jmt7lvQIEYivI3PBW2E8IuPSv1dfTUaEnPM9CsAfbP2KuzNBYdLWT0YFMxxlbORZM8vq1GqFUWhZa9MXd24UwbhxpoF4KsLNc3jSoHMdRC8bmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vgf8AR8nU41qGg9Ak0WHclMBa3GGy6njR91QTF4tAYc=; b=AnLySJ8xNyZ97ebPFNXZN29IGldk9Fty9paw9T41KDk9rwXaeBRhSKaGvoF7a/hKJiZHRNC30iSqBVI0bmNdrhXb4ZRqVbVDjISFRj2xzZxjm6E7TpMAAZoeaFLA0iYdYPkF3Y9Ocp08qJmXl7QuuSHZjYak2hTPKcBAHd2jH5wgDRiL/Jo04dT5/FjY1JHPxjOLE3BjHDyifdFKQkwh9jzlTUuijhbdN22fbgUEHTUvZUGobM8HA02NmmBB/uvxmLQ+1EPCRO0UVkCmEHdbP8HXGgnynfxTm2wuStx3ADPjR53oLYgncObo4D2HoNEc5i/AQzQ/iA8A/HqzHltkfA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; From: Zi Yan Date: Mon, 31 Aug 2026 15:25:26 -0400 Subject: [PATCH v2 03/14] xen/grant-table: stop setting PG_private on pages for grant mapping Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-3-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , xen-devel@lists.xenproject.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR0101CA0103.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:5::6) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f3a1d50-becc-4928-7fbb-08df0795a654 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: mWERXMMjK9kQc2LiNejUQRK8WVGOshRURzBVv5kubt6tg59eMCzbkoP4OWtVgPlHNRKGTtgg2dD4ekqzgQWaknj1rjm1eMjomysCajReh4A9zyl+yzoN091myPm88eBRn+gpD7sNnRMc36CdAcJbTF44jPAB+sWJOQ8eXRbzRLbOo78ZqYO3S1v3IF9Fv8RVPXLPusaXoO168g8iYjd9MRPt/WlIpUj82NRMNe3qewpA2hRCXjTGtEjrUhhDc7LSRSNjaa58PxyzAJOv2NFJYAhk8sx4sl87hUY/OA4Y2MLTrqkZYvtmttkrw4xgmLx9i/Bk56iW+MJhzYhc+RpVUus3m4WgtLHIM8IVYO6ElxcpEI9c95ZLePJdgvb5LjAsdILL6fw+4h4aeFKE6IT9m1bxK35AfIXdc6uXEKnGsooKZqrzuB0szfn5iaXXT+EG8ZtJkeoBsPIl5EmiwZGYN2qL+BYNGkgioNrrLClo04Y+ESsFM7h+26ebpa6JYAuYYsZbu5bz9KkVVeUeSTUqx3hGnszsjyJ2cQFAvqD5RieMpTswT/0WlMCSW5oAstG3mO/yRav2o6i+CzZ9CVZVlxubZs35uRp7oQyLltTbuODYIEqSA5zK5tNuVm4U/2s4y82e31iJSSBhfcQUY01lUM1AMKjgVO9+0TEEmX3hk03gm7D4CM45Zm1E3st1cFNEafO9O+nDof747nTgD2ZtGA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Unkycy9obmpOTkpvN1ZWd3JLeU5rS2VmditaUFNJOVRMZGh1VllXbzNlWm9R?= =?utf-8?B?Smp1bkRkeXdTZTdYeFBlWWpsSVp2TFJHbURaVU9IcWIzRk5qYlVJS2lhaVZK?= =?utf-8?B?SnZOdFB6dE45cjJ2MllPZFNkamsvVmVRdDIwWC94UVpiU3JWUzNHMEpnSUJV?= =?utf-8?B?S0ltRmk5RzI2aUMrTHM5dTZpZVBMNTBMRmI3TEt2WUVoUjRLK1p0RjBaVFYy?= =?utf-8?B?NVhKRHYzcU13K0c4ZlJiWEN6aEdEaWFOVXpZNUJLVlJaRG9xZ0ZyeXVQVFlt?= =?utf-8?B?S3lxV1F2WjlzYnB3SkhsMWlSVWoxcnZYNjlyMnpZRVFWemI4T1FkUkY4NGN6?= =?utf-8?B?bjQyamwyajdXbWRMamhlRlFMdUsrWFdsdTJrVlZJT3RJcUJpNnZWSWJWT3dt?= =?utf-8?B?N05kaEdscG9GamNoa2lwc0Z0T0NlTkxKVzg4b2ZSR0VvVDVEU01qUTZVTGp6?= =?utf-8?B?NWdqbXcxSHpaZUVlVFErWU5yT3FtdGRoSkZ4bSt5M3Bjd28xSG1tT2VFRk80?= =?utf-8?B?Z3poRlhTS0pIN2E3eFhTNFlTdWNWNjV0VDBwSGJpUDRHTmhVdGZyKzZpMTJw?= =?utf-8?B?dm13QTdiSmlYVzBpWlE2VEt0THczNXdNNW90SDM0bXpzNytWL3FGWHhBYXNG?= =?utf-8?B?dm1NNjZ2cDl3ajZDKzVjY05aZTFGZ1AwN3VQUkRHNzBxWGlUVXV5Rkt2bWRE?= =?utf-8?B?TERqWTd4OTlhcDNmS0I2dmc4b1hxRGQ4a0RnNytIbmhGK1BaSnh1YkQ2bWNq?= =?utf-8?B?N3VPQ0QyMm1DbjBBNGUxdGZlMW14NVg3bVoyL0s2TFpQN3ZqU1lIRU5ucDNK?= =?utf-8?B?QlR3a05GSGRLU3pzOGRnYTdxVk5xWWE0NFdnQTE0NUMzYUNMcE1UdVROTlJ1?= =?utf-8?B?WWxOc25VcnZ5WG1CWXNNQmVtZVExMmdPVjQyQzljV2lsRmVudW5TYUt5OHVp?= =?utf-8?B?d2tGZmVtMytaYjRTZE9vN25vSDFreU1kek5FMTVsYXZWUGh6ejJ0NzNzZ0VX?= =?utf-8?B?SU5lNjhGQnBFakRwejh0UHgxOGQrN015WVgvaGVENXZLWExvaGhaU3FubVFK?= =?utf-8?B?MXU4Vms4aFdYNVM1akp1Wmh2dmxhaXJDUEJWVzdFWGpuSE9sMFBkT3pxV005?= =?utf-8?B?d3JSWTdYTDBMdjFKanlRZkh5T20rcjhTUjBmU3B4ajFkRlBjMUJRWmNaRU5K?= =?utf-8?B?OC8vQ0dJc01leVl6d3FMdktERUVVWGh0TnllcGRSK1BJaU1vTGdPVTNLNkwr?= =?utf-8?B?T0NuUzhwcUVnZlhqazZyTnFlbm9kbk1uZk9ib0hBbEw3SVBSODlKUmp0Z0Ez?= =?utf-8?B?SEJ2cTRqZW5YcHppUEpjOFFIK2llVWdydTFqT3VBYW9RSU5Oa3VXeW1DUUZ4?= =?utf-8?B?TGxYVlM2SFkwSDdMVnl2eGVwQzIrR2toMWI4MTRQVXJaNjJ6d1RtVXcrenAv?= =?utf-8?B?Rm5PU3ErWHBPRnVtS1RlLzllRlVhdnprNXprZVpCbTRhUmY0dktHZWxNM2Nq?= =?utf-8?B?cnIzaWYvSDU2YU5RZDBNRlRKQmI0bGdrSm1DQW8zV3JsbkdjU0RNMGgxd1N6?= =?utf-8?B?WFlPMTVzb2lwc2IzdkhJbEIwbHJIbGYwVkJQS1dQWk9IT3RNYlFONjBJOHls?= =?utf-8?B?QnJleHQxdlJkU2ZJdlMzdlk2VXFiaFlJYkZVUGdTRksyK1ZrV2VubFRxTWVG?= =?utf-8?B?eWxYMkEyKzBQYWVXZDhqWGRsbTVRQWpaeUxOR3p5c3J2MUh4encveVhCaW1a?= =?utf-8?B?RURMNnNiWXpzQzZVV0RLR2JiM2dIS214QkRHbi9UbUdENzVYUzZ2RFRYcW9p?= =?utf-8?B?SU0xdGUvTGIvbk9lLzFJNVdWc0kwbUplVFAyV1p4R0xmRmlyOU00VWIvWVNC?= =?utf-8?B?aWdvQitDZXU3L3JxY3phOEVzc29QdCt6UHFQM0k0Vm5FQjkxdlRUWWpXT1R4?= =?utf-8?B?c09zbWZVWTNMWVA3bU5NNkQxZHF4US9YYVhPRVRMZ3VERWMvTEpoT3dOcHBj?= =?utf-8?B?cUFJTU1oditJL3cvZHFwd241SXpweXc5cml1dE4zSFRqQm5QKzZxN2plaGtZ?= =?utf-8?B?bGJVMHNkRk01NHV0dlJwVWdjekZWWGpjQ3Q2YWdFd21HYzVoOEhsNFJEUFdK?= =?utf-8?B?a3lWN2dldW5zNHlYZkFDVmlJRWl2YWFhOXNzMCtVbkFrS3RrVTRUSnNFWjI5?= =?utf-8?B?QnJ3QlFKY3E1TkFzSTRpaFlKRS9HVnhyMWd4TmsyRGJ1TzdZWUc0RHFvT0lT?= =?utf-8?B?VHdZdGhIdW9FK3JTNVlDQmNrS2VrVVlQbWcvTk5DdDBBR2JmRU5sSysvVWVG?= =?utf-8?Q?AKlLLk6vDlpkxTZPiY?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f3a1d50-becc-4928-7fbb-08df0795a654 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:43.4026 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: heh0HNNMPmEJNhwU8XKnYC1gTFrgaH3kmSa5bDYXRk9YZqvFD+ymQxvIlCBaZrzc X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 X-purgate-ID: tlsNG-ef75cf/1788204358-A5EC6AE4-01633C64/0/0 X-purgate-type: clean X-purgate-size: 2610 X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1788204386371154100 gnttab_alloc_pages() stores xen_page_foreign in page->private. On 32-bit, a pointer to an allocated xen_page_foreign is stored; on 64-bit, xen_page_foreign is stored inline. Checking page->private !=3D NULL is enou= gh to tell whether a xen_page_foreign needs to be freed on 32-bit and page->private is zeroed unconditionally on 64-bit. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Juergen Gross To: Stefano Stabellini Cc: Oleksandr Tyshchenko Cc: xen-devel@lists.xenproject.org Cc: linux-kernel@vger.kernel.org --- drivers/xen/balloon.c | 5 +++++ drivers/xen/grant-table.c | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c index e7f74ea7cd5eb..fdb18348cfdfe 100644 --- a/drivers/xen/balloon.c +++ b/drivers/xen/balloon.c @@ -182,6 +182,11 @@ static struct page *balloon_retrieve(bool require_lowm= em) =20 __ClearPageOffline(page); dec_node_page_state(page, NR_BALLOON_PAGES); + /* + * clear page->private before giving it out, since it might be used to + * store xen_page_foreign info. + */ + set_page_private(page, 0); =20 return page; } diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c index 69922be28b54c..993f89f048e21 100644 --- a/drivers/xen/grant-table.c +++ b/drivers/xen/grant-table.c @@ -863,10 +863,10 @@ EXPORT_SYMBOL_GPL(gnttab_free_auto_xlat_frames); =20 int gnttab_pages_set_private(int nr_pages, struct page **pages) { +#if BITS_PER_LONG < 64 int i; =20 for (i =3D 0; i < nr_pages; i++) { -#if BITS_PER_LONG < 64 struct xen_page_foreign *foreign; =20 foreign =3D kzalloc_obj(*foreign); @@ -874,9 +874,9 @@ int gnttab_pages_set_private(int nr_pages, struct page = **pages) return -ENOMEM; =20 set_page_private(pages[i], (unsigned long)foreign); -#endif - SetPagePrivate(pages[i]); } +#endif + /* Data is stored in page->private on 64-bit */ =20 return 0; } @@ -1031,12 +1031,11 @@ void gnttab_pages_clear_private(int nr_pages, struc= t page **pages) int i; =20 for (i =3D 0; i < nr_pages; i++) { - if (PagePrivate(pages[i])) { #if BITS_PER_LONG < 64 + if (page_private(pages[i])) kfree((void *)page_private(pages[i])); #endif - ClearPagePrivate(pages[i]); - } + set_page_private(pages[i], 0); } } EXPORT_SYMBOL_GPL(gnttab_pages_clear_private); --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 2A6BE377555; Mon, 31 Aug 2026 19:25:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204361; cv=fail; b=t8G2Na87qtKnRfnR1tsqiaBChsJ0kFlDsAYmDtglwmyBH1ImCyiiBH8Tn8NnQCoA67Ttrdg379tkP2R95qD6yVPqHINfMJ8PfapXCuMXqYwhHCTunOfnbw4jKCzzERE3vxrWL7D44EQJ0F/BQrtdTrRTIi58wPI611OVIFtYyiU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204361; c=relaxed/simple; bh=Ty8ogNj7wZxdWLgSnH0+9SZJOU9go05juWfxSGyaZuo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=GmN2PYnrm9d4L19Fli0U2rj3xJ45XTjmej5hjkoqrgIDz9UakpwNkElhicJgfhvih/GWDlcG6RY6uZLJDqINcrzoPaL1xCCpUfr/JaLItONxdNfQyWy8otGRPm1YNOU79EvUIhiBtvvu3j3bnWT/cauFcvwGIROhE+OS/Dgb7Kc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=EFoojrD2; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="EFoojrD2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rWbpei4aNYaxCET4nLOy7F/009GUz3XXpV85kl6eVsJkFFd1iF9KrdsqwJe5X4a3/5oPNMhn1qZygmj/pgIN7QEaIhi1dXFwpU0B38cX9QZ30R1jgQArGQAhU/TkH9+wH9aCkBExlDAw2iw9bCa7Wo0iXOL5jyz5Klv4IdZNizv29We0+uQ4lieRZT7m3WMqCMPWW/FvNuq7PLn8c10pTIwtHSgS1Rxt69ByOrBijB8iVdmVCuYaJ8IksVqJD5aLkiSI/2omDxEvoLkYiBVKjaZmRS+ZFGYuxeyL/pzWXBJ0TzffKRK75kqeECgs5yUWK3rvxBRLkLECVJTACLrqAQ== 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=y2oTi3b+3hCoNxGuOUkwhWgvncgMihYm5DrEEikckAM=; b=kOO0mHKP5UpXzVBaYTjRijutWLfm23tVdakOGtt3sM7p0c8SXlKwrOJCDO8Y/OOetCeZ4t+02+x+yGmbTVb3/Pjby6i3aLReYOiu7DowdfpEOvCxKiPEFY4MLp3iAa+iOSj+V9LdJVLWTLkchs1yjxjuljdseys/PN2a41nUrIMZA1YyxA/tuAT5IvSNlbi+oBJjONHEX6qGMHLoFDoefIb3DHvzGJBDPkf7kcjheT+aipH+9u8V2ryQxCLdIbrW2gbXxzAoQ8wwAAy4sLTxp8g+gsCTtpCrM6MvXGxYpJObf11FWfmIyr6kCPJRv7UeNLlUrF4/dcMHeJsij27w4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y2oTi3b+3hCoNxGuOUkwhWgvncgMihYm5DrEEikckAM=; b=EFoojrD28YJ41sCgZRSriYJ/O2p2CXEl7rUNuPgTOkyykKXTZkhrdkBVBxECTEiWmolJvaQu1MywYUCStqRg3+B8HMb0SItOBluyZWHvCreao7k2NmioHXSFISRFs3a5WnU/t9ABmMyaD2CJmonTwfDy79l1YKM50cJa1ZaXmiboC2gW7Cz/zaToORObtbe2YBbv4VWXRxJ1MkZdD+Ysu/YYKnsmVuOZK7PYaCygnqwYte7TDLVcVU3D0At3A57ZYtZporU+2sgAwpXJ/FD6wvmvdsjiMVfvh37zRFl9K+4ScJnXtlFa3Jy5VOYkwYouTpL5eyokknz06xiK0bHkTw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:45 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:44 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:27 -0400 Subject: [PATCH v2 04/14] fscrypt: stop setting PG_private on bounce page Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-4-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Eric Biggers , "Theodore Y. Ts'o" , Jaegeuk Kim , linux-fscrypt@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: BN1PR14CA0003.namprd14.prod.outlook.com (2603:10b6:408:e3::8) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b57b664-f74c-45ef-61ce-08df0795a73b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: LRTbmBzJk5aemF0UaEM7iZypwutUnJzZYOKE15r9W9isYImX59u1EbltmC0dvvj2OrAToKF0Nl6NoTQR5GKS62C8ogs4v+Shyn9VlIy3GAKjIzJ0fOEpYMhFlPqRJxziR+hv8C+KbDtHrcgY9O6poZHl68+GxQHbJe+cEC882DLBYX6icU8kuyy4ooQJPjMSmUU6JLDOvA3HWNOEQXKxCWj3J0xMzRxsggsIBVhHn1FbgvvwVO3EkwunYRFPmVce2Pen1rPgRpOIhzj/5eMIb9VCBkJNA2/xNj58sd2f2rS/JfF4NjhMkbJvdV/89kFm+iKiqKrNGSvtLJM4PGmtSj3hCXi99mKDyaTOVl08H/kMIOcHua7OLQ6gu3Rdvf06IByQX/FIZd+zmdqdThNdAOy7m8yl8y5yghxA7Yy3mQiOHfO6FfgJzfXxKj9YPuE1V92f2SDpk4gJvQwPkiHrogCDBJhhj/qN2DXrM07cf5NNXpYe8Q2wheF8GHi6KQxq+bs4rpQWqV6kXQhGDTB6jSyb0/+5kWBPXkbAeHg9hw62NOP0LodFUtRCHfMLduTx1EVvYbiAXoqPDdMUrb7/wASPNBhNWFYw68oaJ9Cik0BwA+G4p1jY9G8EnUnN/mxedTW1h+0IZegyuGCxe0ISpk8vbSX5wE0I4jyCrrVrOQtRqz3VZtrIc22zeUXFBamx4pcGKIQ39Q3Ppuw/Bvlljg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0xCaGg5K0luZXl2SXdQTnR1U0xpMUk5ZUtWVnB1dTBHSkhRTjkrdS8vakdi?= =?utf-8?B?TXhyT1EyaGg4Zm9jZnNlNDBucStMQlMzV2NDdzlqaTcwc1hFSEJHU0ZhWVNl?= =?utf-8?B?TUhSNVhxTFJiSHF5dlFRNUJQMkUxc0IyTDlNeDM1TTVLdnc1ZmhBMzk1c2RK?= =?utf-8?B?TlV0TWpVRXpFWHV4c0FvYnNoUkhsZy9DVkx1V1p5UTd0cDhDeExwSGJ6TTV2?= =?utf-8?B?TXRpTHVzVGVkY2NUSnh6Q1Q4SWp2RHczT1dXY2IvRzBDV05pSnUwampkRGNv?= =?utf-8?B?OG4rR2Q3SzZGNVBQdFF1bHlsSDhlNlR5azJFeWE0d0tkWGJnbHArclBUM0dG?= =?utf-8?B?RzFEM2gvUyt5SWl5bENPbnpENzVFWlZ0ekl4UW1HNU56cGVMREp5SFlya0gz?= =?utf-8?B?OC8za0ROeDRLZ2dsTm9aalBxOG8wUEVScDZldjlORXhKR090YTVqY3RqQ2JV?= =?utf-8?B?NEtNajl6eWRhcisxZmJIbE0rV0doU3hyUjlBSkxGSUYyUFpaVjNyYnpLZk1l?= =?utf-8?B?UzlXVWk0bkpuUllXajE0RWRpdkd5aXhaN0pGQ2FwMVAyd2xKd2ZvZzRPYXFi?= =?utf-8?B?a01OeUNvbFB1WGkwU0prWU5XTGJkREk3aVpNMkVIQ3E5V1oraWVETnVMeUhV?= =?utf-8?B?ZjMxb09FbURPZVJYNFZBQ2JZamIrWXpFaHdIc0dUM2diSVQrZVVPb2hLWVNE?= =?utf-8?B?V1orNjVtV3VrQnlTdXErQWpDQ1BSU013b0xGaGlTZEFRSFdtem1NRGFjdGVp?= =?utf-8?B?amNrVGNKc0txNVJXYmpuV1N6TWNiUGZWaXlZVC9adzR4RzZZUzBHRXNCem9D?= =?utf-8?B?Y2JLc1dyZG8rWTdqSUZpWXNkYm1lU09JOHlIa1hrT0lkYTdZU2hPUU1PZkpX?= =?utf-8?B?V3Q4YUM0UVYreHNUV01xYit6bTBiblRVeGpFV1N1VjZsT1pSakt0OFgybHpo?= =?utf-8?B?YitZaWZ3L1RweHk4S2JVeGtLN3A4RmlkaXBIdkZjd0ZPbSswWk80bStkTEMx?= =?utf-8?B?M3JpNW9ISXRFMW5WTU5YZzNsc29RVUxxdWM3azBzc1g2My8vM3pCQ2ZkTzAx?= =?utf-8?B?VkEzQUpuQ0FCN1llTXBEb2JWczBaQjZ4ZTRxNHh2SkJqdkxsY29HYnZZT01i?= =?utf-8?B?bDV4dXpjSUw5dWVuU0hjRnAxaHozSy9UUkN3THJCM2VrSEdWc05PcWlCTEp6?= =?utf-8?B?M0JiNVZzMGpnVWtCUGtkYm44bm9VNmwrenZHT2lGb1pBY1JDOTh6U2lvbTlh?= =?utf-8?B?cDBEMnJPVWpCdjdiZFJrQi95NERiemE3MlpPc1VQNkFYM1BtVk0ydU5qUWdX?= =?utf-8?B?aSt4bEw2QnF4V29KQWZWU1V1clc1dVRwU2svM1V4YUdLcHJkeXEwUGRXTlNv?= =?utf-8?B?bU1JOHZxZlo2cnVmL3dCZnhsRjkwaENvTCtLYmdRd2R4TzM5a2pDNk1sL3Fy?= =?utf-8?B?emNLNWxoMU05RVZxRHMxZGYzcFNLa2pHRXVnYVB5M1g5Qk9YMWxGaUlRSzNh?= =?utf-8?B?ektycVBWYUhjSWJEL3Izdml6RXRBZ1NNNlBtSzVEeFFIRlkxdE0vbkIvYkg1?= =?utf-8?B?QmFuWm1pSlBIeUI4Q3A0VzNtenNUVmdVTncydzhRQ05iZmRwR3BLcXF0blp3?= =?utf-8?B?NmsxYVovNmhUUDJ6T3BJZ1dINWsybGNVWXNTUnBWZDhDYlIwQy9oWUllaytw?= =?utf-8?B?MWRjTmNnVFVaYnQ0VnFiYU5YNkUyUFU2YU92TG9WcVdXdWcyNW1kMHliTnlp?= =?utf-8?B?eEROQkQ1UmJCOXQ1WmVtMFA4eVNnaHQyRE52YStCVndSdUNPL0NkWGdZckZB?= =?utf-8?B?NE9pUXJHbWFtQk94M2dlUlc1a2c1T05YSENOejN0RnBiRURwTFV6bm5NVDdE?= =?utf-8?B?VDZWeGhoeWxNazk1Ty9QdHNJei80UlVKUGwrRWtFeUExaDRpOHc1WFNNNFhG?= =?utf-8?B?TG44d3RMN2w0cEFLUk9pV1l3NE1mSTVxNTkvanZVZHNheXEwVWgzbC94b2pI?= =?utf-8?B?eENXNHBaaEhleHNGUnJlWkpBRHVnUm9uNk9lV1FXUGZMWS9Za1d3SktMbVV1?= =?utf-8?B?TXhBNDk4Z09yMkpXZ0dmRFgwcDJJYWFWVytZMkJZUjBlL2N6ak1mcXVxUFN1?= =?utf-8?B?VTdJcUR6THJzL1BnY0VHMEhXdlZ4aEVvbmlBeDFXWEwwQTE5c0ZQS1hzaHhL?= =?utf-8?B?UW5lM2lHRUFzK2lCQmRvNDVyY3EyTkZnTXdzREFKUzZLV1pBR1FJc0ZlTzRN?= =?utf-8?B?RFZjSUt1UjZpaVphZjRveDF3WWhBalFiWWEzY3R0Y2wxWVRRVktydEY4YXVl?= =?utf-8?Q?R0mTOoRQAzsowZBL70?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b57b664-f74c-45ef-61ce-08df0795a73b X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:44.8572 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gHvEtSFdfB8+5UKbmuAo4/HgfAoz7Yu3wumYQt6gz/1qYZgtFXRCG3anwI28HfPV X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 The pointer to a plain text folio is stored in bound_page->private and cannot be NULL until the bounce_page is freed, making PG_private redundant. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 To: Eric Biggers To: "Theodore Y. Ts'o" To: Jaegeuk Kim Cc: linux-fscrypt@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Eric Biggers Acked-by: Usama Arif Signed-off-by: Zi Yan --- fs/crypto/crypto.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c index 5286a124b0d98..aced5c50a4601 100644 --- a/fs/crypto/crypto.c +++ b/fs/crypto/crypto.c @@ -65,7 +65,6 @@ void fscrypt_free_bounce_page(struct page *bounce_page) if (!bounce_page) return; set_page_private(bounce_page, (unsigned long)NULL); - ClearPagePrivate(bounce_page); mempool_free(bounce_page, fscrypt_bounce_page_pool); } EXPORT_SYMBOL(fscrypt_free_bounce_page); @@ -210,7 +209,6 @@ struct page *fscrypt_encrypt_pagecache_blocks(struct fo= lio *folio, return ERR_PTR(err); } } - SetPagePrivate(ciphertext_page); set_page_private(ciphertext_page, (unsigned long)folio); return ciphertext_page; } --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 61CEC37BE63 for ; Mon, 31 Aug 2026 19:26:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204366; cv=fail; b=IuU/4qENgzC4EdYTWpYt+xqDNkGFGoBXrvYwqUZ1APU35u/NLqgUv4V8R+TtwP0vTTxovvsGswgMvtRtoLVgppnyltf7yPmhUuJ6pc3CJj2SVHlagCCnr4rjjBevravvI4MvygqY0QKWIHv5tR25fbVncVKjuXG8ybnKc4p8ico= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204366; c=relaxed/simple; bh=8jlFdDODyZlFrhTLDaeGC0klQCsofdQZAo9FGoa88FU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=aESCtOCSNPjJHDODtrpIM5rb8vDSjepCfm0Zi/E1M1/n28XKTfg7C2t7++L8GmDHJrwclsu71YNJurIhRviHCfkBxfyO6LxKztFvsVo3i+aDN+PoeETEfJn2YjrAsRX/aeiPvU7oZpSh8sopixHDEyewb+6OM1DKDDDkGiqmX18= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=edQ5/6Tj; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="edQ5/6Tj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZaQIo8u6zhHq3L6VlpizFkdu93/wYAvB1f3bFi3Yb8NLWfmFpePf79ZoWh3AXVMat2j/kUqStdTkcqsL0U8TZJDPkv5f+CXaQcQy0PGfIjtjKZ3zt1vMjbS94I//BKUjGS5rW5LxjCwptbvne+8RdecR4frJXlOx+GlMRzejbjMxHi6l4wN35YWx/9R05tQOckMQdhnwpaQyUntYNwwDKzHTmLW5beuSAXQlZ+ljIrxqvtJ08YXJUxYb1jlhQJcLSbGAWmwluj6M9W3OPHWP+febz5ptmYuhYBDaGNJrR/49Wak/1py/HlP/1YWo7DqB2tu3Irl98wAEdrf7mn2j3g== 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=Ud/5c5NQOwKcoKiwoMOzwwhJ2lktYT3uPQHkeLYi4m0=; b=LdQHPAZXTl2VJ2MHlJ5D9Ijmfo/zbkwDya33txyZhtP1F+L2J+LJur1rerkVqmjJfkzDX+M4jkS41nN/OKrS22R4P9K0DzCbcsYun1ar0pA5ep2Nx8jywF/GaQeoZZUGcXrRUTFGHiFyMRBp8bsEcShGcZ5KR4iqlXawwyG/jbfp/PReiWWYmROPMKqUkxiLQ1i5gk3F785vQ4ejaCRvhuOWh8icOOCy+5LZx5fgLd7Gv8FrgqJXAad/LfCaML72TqhVYRdpUjzbFS1mLR333oTRInGhkgJzcZUJsA9Qy9HB7h6Yc6hwzXNg910xyoaG/vFzJcHPQqwsBzuQclsNLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ud/5c5NQOwKcoKiwoMOzwwhJ2lktYT3uPQHkeLYi4m0=; b=edQ5/6Tjll32gUNg/nQQg+j6m6VEL9z1FOw/cvDIRED8Vp+x1AKipgT9YBe/DM0TqySbws2L2Hc/cd6p6Q6EMbl29Eke+XGQD+4SYvIxuQxbKcm73LYOUcXyDWn5ApoVqBeazca0RcYHrWTAtFdakJkM01FpdA+CNypjExvI+5RzwnXDG8ITeb7nFmfU/uECdJSUQOzAZ2Bghwgxxs87RXdUD0/6jgUrjuSetvQC9AOUY/8eEKSDoK5AYtuTGEGQDOngatB6DBJzDeYWvS/8DtxwRo2tIoPeMzpcT6PtDVyMNfxJed7hpCIqVYazLPlgDIB9WYzqfOXokFLXxQC14g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:49 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:48 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:28 -0400 Subject: [PATCH v2 05/14] mm/hugetlb: use direct assignment instead of folio_change_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-5-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Oscar Salvador X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR0101CA0186.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:f::29) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: fd467de8-06e8-4053-fe0c-08df0795a80c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: BL14zDQDiHxEMjKvnOxmbBNELQxYNkNetC6upPDP12HpQJGeu0+qeTTsmIS5TapNFL1P8/dVYdXMNwcEKJFSYmAm8lJIKbka/mI4GjVvL/6uT8rXjmxLS34OeYo/ofyhiXhBBqOms+Uzo3+00QihIU6HLzzNOju1C8qVZ5k9S3pE4TuzHqdpdKwW6ZT1f3NqUbEBPke+MTBtmoWEgyzwd3uhNi7fSvNceEbvJjgMPJlciNPhQtSN7+eTmVwWTT0Lj0aYgGaJiYD7mSsp4f/I/55vtOx0Htq4vzmMQ7ijqcAFKCB64xQl5wOkwBmipwz5fvbD1h9AkdvVaptAdvM5tQecywo7ZMQUVfoVDiuNtaGCZZFaPVa+y0HLA+QE+DmAfhlL281t01GeeY0QowPO9755JjdghTPAibx7j7/pVoWVE0TaPELAZ8sixbP3mWJ0EnnaX7VG5/bIiY5fywyt6zZnUGVggzaE6A0M+ycNAekTXhEG3I8N3Mb88EykHeM4hry0hBcNtJTz4Hh9YFNFvjFqjgx5Ch+EJv3kYPtGqrX3PjPDd/nrs9ZHapcxx7LvVjigJgJ4azJOnDMIHIAVHj7bLxqDDgEvI9NnqeMZ8RAEviErlzHbKPKi04B7n1AreozmQvuupiLc7wjwWIvuifPy9eegKHmd9AV1pVNnrXD56YhB4UUuEIEaIRL7m3BIDk0G87FmT5snOYYrJsaO/g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cUZRQ3JhRkxSOFNQb2pmK0ZmSE1vMzkvRnhwQ21ncG4wYkNYdE5kVkliU3RX?= =?utf-8?B?ZE1TVmVNbVB4NkZMcE5LV0FzRnVLOWpNMEpYM3N0V3R5Vm1BZkdwU0ZNNUQy?= =?utf-8?B?V2U1YnphMjFhMXZSY0llU09MSHpKclNWNTRNMWNQd3Rtclc5K1NlVVI5VDFL?= =?utf-8?B?cTJ1UDd0M0ltNE9ITXRXMjdLZmlHTGR5TFV2WUNhbkhlbmpqd3FiMGVzV1Qw?= =?utf-8?B?Wm80djgxMnRibDgzR0puUkZSa3I4cVp6RTBEd1NrQkxEU3V3VmQvTmd3RDVK?= =?utf-8?B?ZmVlTmdyM3pwZ2JUTGltQWdVN3FaTHhVMHFkTWpLT0EvWHA2WWV2LzJHa1NO?= =?utf-8?B?d2JFTDBEZnFNeWREVnR5Z3pEYXpGR0dWUCthbjkyK1VGeHYzYm9YMjZkZlUz?= =?utf-8?B?SUNWdnN3S2VGZy9KV0h5ZUQxdDVZTFBQUUtNdGE5YVEwVVJCWXd2YklhdnRi?= =?utf-8?B?eEp6TUh2dHY1dXBOSmozYzF6d1JFQWNYV0dvRTVNUE1JNldKODVSQkJSWmY0?= =?utf-8?B?dmJKSm55MkpCb2VlRDlrOVpLaTlVamdNQVY0OFVxZXJPcXdoMFNKbUVWZTB1?= =?utf-8?B?NmJNVDM4NE5zQmgrYWFVSTNzL2tEdktpbExOS0VLRXVoeFFCZXdyVCtmbFox?= =?utf-8?B?S1RkWGFzNmRmUXNxRjJKcUxsazNKclF6SGRYUzNkMHBPc0RVWDVOR3JtckR5?= =?utf-8?B?c1RjSm1rbU04eFVTTXp3NjJsckIrNjNzbWZlRmdETGRiYTlUVFJxdjJGRDhv?= =?utf-8?B?WndiV2tGeUJBS0pKVXB6NENBVG1JbjRyTWhLRVo0ZTQ2NkQ2OGpmMkQ3ck5N?= =?utf-8?B?emNNTVN5OThFazhQS3V3RDBqN3IrMVJ2dUhialNLbTRCemlnTFMyVDYrMnNy?= =?utf-8?B?cFl6eXVKSHF0bjArWktGY29BSE0xWEFEVDBkQUFpTkQwQ2ZLT3BZb3pYMW9r?= =?utf-8?B?Ym04ZnBlSG1PRWZUdUJ0ZDdCNlcvUzZXYnRVZjVrWEZkQVk0WW9vT0l2ZjBN?= =?utf-8?B?UFI1NDJNbEhtUG5EMGhvb0dwZXA3VEJaWDlVN08vcFhDSWx3SGkzMnI5Q3Vm?= =?utf-8?B?SXhQZkpZNVV4RzFiY2ZyR3FQQXNPRVYvd2xrTzcyOWFwbkVROVlETHlkeTQ4?= =?utf-8?B?ZHZYQVpsOGI5V21RZnBmc05US21IMm9ieHdZS2hYc0d0d1RLY3gzVW5EWlFU?= =?utf-8?B?YzcxeGdiSDFjSmF6c1gxRzMzSHYxQU5oYVBUcHhSL1kxclc2ck9KTmp4Yitk?= =?utf-8?B?U3laaUh6YityLzVWWkRtb1dSa2VQT2hZaS8rbEhPYUM2c2tGRTJxRjlhZTA2?= =?utf-8?B?ckJaclNJZ09rTUo3MHByU2xISWRxZGVYWjE4NTkrTW4yd2NBZDRaQzYxeVpD?= =?utf-8?B?U3kxdUNxZ0Y1WGZpcW1QUkRGM0tUelM5SVk4Ym9rbFBvZ1FERkh5VW4xZzBX?= =?utf-8?B?Q3B2cjN0QjQ2VHQySEs2Z2JzdmVyQm1CQ2toSFJGM1N4WEc0bS9jaG01cUdE?= =?utf-8?B?cElwR2hiL05STDY0OFkvRTJrWW1KT1R3YUZLT2lla1I2aFRXZ2ZJRzROcSt2?= =?utf-8?B?MHZGOEorcVVqNmV4U0hjQmM3MFFUUDU0TzkxQXgvQTd5WHFqWHpkbDRaOTdK?= =?utf-8?B?STBld3E2VGVmTXo1MTlmYUlwS2FJMlUxelU3bSs1T2xDYUdnYzEzOU8yNGd1?= =?utf-8?B?V1g0Q0RLSVhKZXZYQkpvU0NJMjlia0N3NlZVQ2taSmxpeHd6VzAwL1BkRWsx?= =?utf-8?B?cGc1WithM1BxM3VRRXljZ1BDVzZFRmRsUGtrK2J2VmllOHlwcXJvSjczQmwz?= =?utf-8?B?WTU5WndmMzZpKzh6Z3dYam5FM1VvQUJNMEFiWG10dlcyS0xtYkV1bnZSdkxt?= =?utf-8?B?VE5UNDhhdldUSWx6NTJncnJnKzRUZGcycFZ4dEdlbDlBQmNvTEJKblpJSnNt?= =?utf-8?B?MkFDcHNUSi8yM3IwQk04ZEEzZVlxM3JxekdWUzArNnZVUTlhdGV1Uk9XZE1Y?= =?utf-8?B?S3R3UHRJR1dwQnI5czR0ajQwZlBQdTdNY2h3K3lsaUp4R29pUWZ5MjdUSWtC?= =?utf-8?B?MXcyM3RiNTZCa2NRWlR3aksrcko4MXNEblczT3NNSGdyMUJnMHV4b2tKY0x1?= =?utf-8?B?UUxWVVFlaVYxSGYxQ0l5bVZFR3ZldjRmd3hoWm9yOXVSMm54NnN3MGpWMDg0?= =?utf-8?B?ZnI0K25KeFZCUHhRRFdqeEtoVTVqeTFrZHVYN1pveVo0Z1ByZDR6VG0zNWhH?= =?utf-8?B?TzUyeTFrR3czV1cwK0RjNi9YSGJITU5zbWhwbTJaeU5CVklvc3IyaUNDY29x?= =?utf-8?Q?yv3EdPx76dGhc4nUeB?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd467de8-06e8-4053-fe0c-08df0795a80c X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:46.2009 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zHxBdQtF19AMJHjBPJGz1w0taoBJXuZcxhy+U1gc6RmIJbIINUhzl+DJkkUUGm8o X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 folio_change_private() should be used along with folio_attach_private() and folio_detach_private(), where adding and remove ->private content requires folio refcount change. add_hugetlb_folio() simply sets folio->private to NULL without refcount manipulation. Change it to direct assignment to avoid semantic confusion. It prepares for a future commit that remove PG_private. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 To: Muchun Song To: Oscar Salvador To: Andrew Morton Cc: David Hildenbrand Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Acked-by: Usama Arif Signed-off-by: Zi Yan Reviewed-by: Gregory Price (Meta) --- mm/hugetlb.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 7857728457952..4b6753b87162d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1433,10 +1433,10 @@ void add_hugetlb_folio(struct hstate *h, struct fol= io *folio, } =20 __folio_set_hugetlb(folio); - folio_change_private(folio, NULL); + folio->private =3D NULL; /* - * We have to set hugetlb_vmemmap_optimized again as above - * folio_change_private(folio, NULL) cleared it. + * The hugetlb flags live in folio->private and are cleared by the above + * assignment. Restore the hugetlb_vmemmap_optimized flag. */ folio_set_hugetlb_vmemmap_optimized(folio); =20 --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 88D34377A82 for ; Mon, 31 Aug 2026 19:26:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204369; cv=fail; b=MF0rH35VtZ9Y8U0uhVJRynp8Ok6Tbj3ZBxHZ7Dcgq4QQtdSfsVKBiQ9Qy96CcDx9ZlFnvkdAYSDxjHMScR1ASBhl7ix1VoZoEePSQvFF6U3nFeUeVJ9+rE06fat4s+LC3IWGLu8ldppBpxWdYwZrxSprm0B/c0IiU2SDebQ8sh0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204369; c=relaxed/simple; bh=w9Ohb5mo1+AyflUcAN7LYLdvevdRNQaZsGebZJ5kAlk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=TIOPFhozKTiTwSob7eraW9rwMUG6cYKJIBlFysP27LTTfP63piE/C+ow84SaPPuSEe/Eoy5FGJE0snlSEdl11dYcG3Z1Y0aRyteexmUMkYoZHdgPkcCg2xgv8IZAuPFJDAN5lenBsrc39PH3EnWch7GxGKlVi8xAISxeUaBsM6I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=j1ymtVBr; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="j1ymtVBr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ddbMxkwfQ4sBexT5Wtffmk2NaD8EcxHuURhMU8etJvSFf1tIvdeRQj7+d0Lf2x/OlgU0EIkOFc0u1lvI0DutAC8+kHgXWApf8p55WyRsK+5xuYYoX5SR6PITRg+PBbfcgEveht7ueduv/+d1kkVeHbq9s1n1KmsH8WWNK5kVYSzQSuLds+4LQ59cvFoYkOpb2+oa+oa6zlEE3TiwvwzvGEVqbOXHYBHGejSezjxKR5pkS3E1WHWbK5qlIMg2cTXDa9u/cJUVtpGhtCN+CKSTkiszAcyzw4VHQ5mcpXrwNHhMJbhmb79FSbbspGmrDb2crbdoZsNDhizpEQc0DTGAiA== 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=OPJDDJcKa9lvexi7Wypu3m0WvDuY+EowhGLAL4uORvw=; b=AdXMfwAYaQIl6uTt/PkVsIeF1mRd+Dy3VBRxkXdRv0vR4hgMuekizA3zucp8tk6nHqCsI1I/WVH8bObrrSx6h07CTp2p3yef2eDt+j/tcX760f45a2jb0dnG7TEyQzC9i0CABT/zjclVCamI10gRpeEsGwj7vbp2bpUmDutzOJyzMbTJDWW3P6oLOU9ZeGXK66UvQWV2GZoiaRlSTuzPC33d3v11RAp9lOW0RO4Ud/2v87opz2KbXmUUA3oBV6VkB0agFNl92svE9KEGmwXepNrb1xKemhPH5ucj0pXOrfgEo5zqemzSUP5AzhQRJ131HTw+QSbNMyE9x5RIt9dCUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OPJDDJcKa9lvexi7Wypu3m0WvDuY+EowhGLAL4uORvw=; b=j1ymtVBrZKTRb5u7ro5RNr0iGxETNsm2rTaR2VYFnzOuRuh2/ZX9LD7d7AMj+ZylYyK+KFxWKZAB0yh0ivcV75HmWjl55A7nzCHWozvc2hpYqZU275EKpcxhYvRMP0LT9z1O/aV8yxPyqkmEYeM5L85WPMYnRMHELGPPRW0tmeCpghzc+QhZ5RxvC4SNX77KyoycF/yMo8oti/F+U2Io1ixfnxMDeGpK4m1P1u8JFHZa+WJzwhNVMecjfvIKnl68IaTcLktbEQfwl6MQIF9iCrIx/Fg3vsPyNhjH9M7iIg6It1BLHpju5oWGNXeaPxNsAyVNVDSuYH3/RNhzOHQwrg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:50 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:50 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:29 -0400 Subject: [PATCH v2 06/14] f2fs: stop using PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-6-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR01CA0152.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:7e::11) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e44d3d6-7e27-46da-673d-08df0795a8e8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: yrYgEWOvIqv0iriZ5z8SvtfyHNzNWThtT8NrOO7iVBrtNSoh9xV/wuHllwTxcK7ShETe5GiC1YWUmPrOfmcaE/mfKN1SbLmg4HHHs9uuEWBftm2HBNrFv3wjQ6mrLnHRv5VnRyuYFS+DUTwl7IrRCbJJaN0kDRVOxqKGMkGShRujTFV+9yZY59OYslZ31RfdzbqouJjneDIcWbF8VUP4aIgyvggB4PkYBVyVqBNNxy9Cn9MyxGAIF77gcph+969EuKiSE+sPoKR2I7T+dORub9+Khr3FNFYRXwlYzkjEdpE6CCz+UHwoWZrZh4yx9oWpqjATW3tQrPhlapbqGczGBRfm5arjz2nDqTLILXFF2Q6UA0OJ5nC+ZQO6FyyxmWtZZp6MW2c+KDq4101y9atBpYBD3r0KqPO08DR7wb+GfpHkwv/hgmUeqfWkY77P7QS7mYtt+QQzNOfL5WKUsJvHndN3g2YLRg93nbRwqyjeDAWbARtLBaF7eDc5gjGmJKOO9MJQFwPac75rrfDrpwzU1U48WDse1H9MryaR9sEdL18qc/IUZwqVCw3xa67WVAlcPj/OcKDAZ3B4bivn1CSY1w63v4l8xllLfZyOHBOXcWtj24w02WJfsRzdOSXIjAvSZ0bo6ZrY7x4sCsShV9RWqjzAskVt1jjtLBSX/1RPefvv8sluJcjgTwAbGs5sWDE9jreN2rfQdKx7vdjdXMQ7fg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWFaUWRLdUlDZ25CamxJcCs1bFNWbGRRdm5OZVFoZUNhR29KeUo3ZmNxeWFE?= =?utf-8?B?bXVqQ2JLSk9jQk1pRW1UYXQyTllPcFlrbG13N1dneWgvSGtJbHBlM1ZGMTZj?= =?utf-8?B?cGhkVUY4K0ZITTVlTDNUWDFLV1ppTE1SNEFuYktyblUrUVFhRXdmejVwWlJr?= =?utf-8?B?dmh0clQxN3J6RXpVSWlNVjFGdkQrcTZiUldBZmxzZDZkTkdNeUlPdFhwd3lm?= =?utf-8?B?QzFhTGVsdzhUWDNrMEtaMVcybmFFMHM3YTFpa2JheHJoWTlIZ1hOQjU3NFZw?= =?utf-8?B?Mm9yeU9rbStwVnpTWEloTU9TditDM1FjM1E5dmgzVkFSeERIYWg4UWhtNklu?= =?utf-8?B?VGFEU3RsRU1lVlJhWjM1anB2YUY1ZE53RkZaNHhrM29KQlk5ay9GbUpNcDZ0?= =?utf-8?B?MDBwcGV3UGFyZnhXaXczK2xldmhRYVJNcXJBM0VRUzBZUVJmVGVtazE5QnpC?= =?utf-8?B?bGdRWmpiQ1pTbXBtSEI4RGNsSFlJdXM5UUc4VWJaeGs2TGxRd2Rmbm5rb2lx?= =?utf-8?B?TjhnblRON1Z4dHdkSlBGK2dnWDVrUEpzS0xZcGxWVGlsQzJhUUkxMlYwM1ll?= =?utf-8?B?My9oQzlKcG5kQzRHa1NyVjlWcHZVMTgzS0xWK2NWd2EwY0E1WFZhbVZsSlhx?= =?utf-8?B?SWY1aGN1YitFTlh2MERHUDBWUkVrTTY4MXlZdGE1SFg4MVp6SlFCYWt4dFN3?= =?utf-8?B?Q0pjYnpSS2FFQnNveVB2cjQ4TktINzlqZVV4L3pNY3FNNHJURWFTL3pDemt6?= =?utf-8?B?ZUFJYUNZd0pUMVd0TnJDck5UQzJHYVRQaVBROXFoTTdOUnJNNDZ4U1l3b09N?= =?utf-8?B?ZWh1d0t6YVdnZnVvWDM0YzJLMENaTFdBNGUzSjRTcXlYSEp1Vy9IejFvenZj?= =?utf-8?B?MDNxWWpnTWhENmNTWnJMRVFueFJRS2Z6OS80UmhoZ3VlRmcvREJXb2dVMHQr?= =?utf-8?B?M3JDNzMwM2hBemFYMjNMUGZXa2hQcnZZV2dNcDVna2JHcktNcnVHMXM0MExB?= =?utf-8?B?b3BBMm13OW0zSmN5cXhTOGdybzR1OWc0Zit5cTl0V3E0SE9lUXdFbG8wa0Z5?= =?utf-8?B?ZWJUcHRQWjNJY1FwQ1FVQTBlUnlaVzk1Zzc3TjFqYWxuM0tHQkVIVUlDUzV4?= =?utf-8?B?T0NhbktsdGcxRUxKdjRNS0NucXI1anhNRUE3L21pWEhSWHdlVzZIME5mdEE3?= =?utf-8?B?L0FLclZTcDNVRTJJVlF1eW5WWU5oRkFaYmtzR1QrV0xrTGJISzIxcU16cTRs?= =?utf-8?B?SHYxWlIraVhWQy90UGhnMWpXaUxra1R0a1c5Vml3NG84dkUyZnlwQkRFUzFT?= =?utf-8?B?NVZsNENUMXlmc0Nia0pjZi82WTBCMDcyQnRDbS9GNTdVejVCZUhlUGxUWkQw?= =?utf-8?B?N1Nwc3NaNXJPL3FJSWtjVmllcDZORURMQ3drb2NWWUxYS2VnVjNyTDhaUHp5?= =?utf-8?B?OFY0dVN4N25Tek5vVHNFT292Yng2bE11OEJNcUpHb01pby95b1dzckE0NlJi?= =?utf-8?B?K1lzOGl5QTJsZWNvdHBOOWhhajBRVEUvQk5sc045cGl0RUxaeGJyd041LzFI?= =?utf-8?B?dnNYbU1OTHdXenVISjdyL2VSUnplbTVZMEFBcUppNGlZMjhqaHd3T2k4WkRL?= =?utf-8?B?aC9SRHpIeTRlL3U3VHk3OFJSUWJSV3BBeFNHdTl5c1VNUFNSd3FQUzZTRnNJ?= =?utf-8?B?NG9wL0VZVm1Ndldjb2FrYVRiM3R3WmluVmRYN1VMK29QNEFiV3d4Z09zKzU1?= =?utf-8?B?T28zcFdIUGxYRktta1U1U2szZnY4bU9IcjZjL1VONzVvbnFIOHVZQWk5SHhX?= =?utf-8?B?dEM1aEhwTExzcFVvNVRPT3FpNTJKK2xBV2xzSzRTRnkvS3p4OGVuMzZ6VjVL?= =?utf-8?B?cUw3bnY4VkdvcVpiY1JLNWNDaEJrbzEzcWxXakZMb0RRMFdiWDNFeHlJTm1W?= =?utf-8?B?a2FseW5GTFY5SVIyc2VGT0lTMVErUlhGclo0MTVSdTZabnM1cHBzTEYxZERX?= =?utf-8?B?dGtUUlVSTTFyb3M2blJUQzdTMVpDMXlLU3kzN0c5M0VjNm9CeXRrcm9makxh?= =?utf-8?B?UU1GRTNtVm05SzB4Ni9lNHM5dUdVYWYwckRLNG50aHFPcmZNRE9XYW8yWDhw?= =?utf-8?B?TG5NeFpmeUtEYUtTYU9xTC9JVVM0cUh6OXk4cDNTWW1BdDdSbjRkTlRNNktQ?= =?utf-8?B?am51dUhTSWRHQ0ZuSlBKUWF2TGkvOVlxb1NtMmNkc1FOM3dHd05tUWR1S0Rs?= =?utf-8?B?dUZCM1RDU3RmOVpsekhkQ0p5VUVFbHV6TFJwTnp4SEZLMGRQVE15cFM1eDBL?= =?utf-8?Q?K2rt57nUk1369xtLxL?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e44d3d6-7e27-46da-673d-08df0795a8e8 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:47.6611 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fK0nlask0fl3Llr8ZeIpXxLcy3oOfUwyXTcL55SHI6Moup45u3qsqZIz9d4/vQkm X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 f2fs sets its PAGE_PRIVATE_* flags in page->private and checking page->private !=3D NULL is equivalent to checking PG_private. Change PagePrivate() to page_private(). Meanwhile, in set_page_private_##name(), page->private is first set to 0/NULL before an PAGE_PRIVATE_* flag is set, but it can cause confusion when PG_private is removed and page->private !=3D NULL is used instead. Change it to initialize page->private to PAGE_PRIVATE_NOT_POINTER instead and retain the original semantics. It prepares for a future commit that removes PG_private. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 To: Jaegeuk Kim To: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-kernel@vger.kernel.org Acked-by: Usama Arif Acked-by: Chao Yu Signed-off-by: Zi Yan --- fs/f2fs/f2fs.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 9940a6cecf1a2..2f7ab5888b078 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -2691,7 +2691,7 @@ static inline bool folio_test_f2fs_##name(const struc= t folio *folio) \ } \ static inline bool page_private_##name(struct page *page) \ { \ - return PagePrivate(page) && \ + return page_private(page) && \ test_bit(PAGE_PRIVATE_NOT_POINTER, &page_private(page)) && \ test_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } @@ -2710,9 +2710,9 @@ static inline void folio_set_f2fs_##name(struct folio= *folio) \ } \ static inline void set_page_private_##name(struct page *page) \ { \ - if (!PagePrivate(page)) \ - attach_page_private(page, (void *)0); \ - set_bit(PAGE_PRIVATE_NOT_POINTER, &page_private(page)); \ + if (!page_private(page)) \ + attach_page_private(page, \ + (void *)BIT(PAGE_PRIVATE_NOT_POINTER)); \ set_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } =20 --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 69242367B61; Mon, 31 Aug 2026 19:26:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204371; cv=fail; b=D2zbcITe8Z31U8HNnaHjdzPgffCnhm5POkTdP0R9Rkgl8kebr0pWZ5idHIImPNLozMYg79ln1n2hZN/Z+ShXHdTZVJ16pWR4hbUXZ8wQpvezJZJTCCxrqNo70XweDpco7UD7w8IS1Gzr2wh0iQEyqQGpBwcUGsUKDQtZxMIT9jU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204371; c=relaxed/simple; bh=AoOFwRHcUPe7Ul2xB8c1C6qcKxmtuahH5GmysL6Jprk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=HjLOCHk9sWGMTsjBYKpPM4SiCaLqj62ZgOdT6fVgY8cDwV3t1Jw9NwHN9VIP4h4uqXWWu9MiEWFts6780mP9bEMISKQ1++gErJ09buG7dEEv7VMVdVWMhoXUCGNyiiL4HwEwnectzvOIlUBJjtm4A9i/pI2JD4K24GMBkGfXR/g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=DqDalye/; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="DqDalye/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EmN/ODJ6Gr/3rzrPcdVrNkC+Ysd5YcWG4n8M1oe0JHRPlc3s7gIEueV0pEoMcTVoKlvtFZ+7Ys2oFNIdWb31ehWEfX9D4bEuKfq/QrOjkns0bKVuz7soIJzV5qtO5YVlBODsG6PqOrD3WZx7MGxQHgKAiFePCEVYko8wDgLmUB37YTebwfeTNG+4vFmOY1FdcFpt+H3yh0a4uGXpWBCzO4zy/shhcYXbp5q5pdMuBhHvFSrkx/w0PKpteMxSxmtag7JKv9YEB4xIH5Cna/7HilO7eGPvm5qXGNtx9pnh9qTy/w9nsJhSQmhYWRpc4kbpGneg4dJRDQxLqkUbUBeQeA== 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=MmiS3zJ8+gLvEmPROyGfTdnP+5xIWzIJ8ixlUsSG0UM=; b=bK304ak/K2LzplCOYLPuiRDAuzfC9AOgI3nSicbkh/vVt/uUna8fMgR7zKHuIlhwgxNots7K1kiUMTIDZHFnAyDiejW2ibT1nAcG0xfWWyUNZQakJh/SMyM661EnFKCSn4kUYPRtrqp7S07CgdIrZ9fGVzx8OYZVNm7ZQ1Qa6KQaxXVLU3D0mGvl/1HWzpY+J61sPZ4XoMrD2nQ58545MBDtoWP1lM71yP54Yh9ijcRpPn16Ga6vDHlwK4u/E0wEgY+EKEu8ncpjyQ/p67v0A0Uixb94Yz0YHXwY6SPpUg2swd5UkyQv/q0XsPtO1YI3rf1QUIDhS8duHCKlGn3bCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MmiS3zJ8+gLvEmPROyGfTdnP+5xIWzIJ8ixlUsSG0UM=; b=DqDalye//TN5IWfzMahUNHKVU4a77sPchgBTBFxsgfbmtrX2PnGGFwmouGjzpOEI6wLf3wgTK5SUgavvJVbe6isbIpojwISla8cxB3ht+POiQB8V+BEW/ByCgQefkNdPEriZxC7YQoQIqOMhNwtao/YA7eZG+cENAJczqQGCnCTRQM9vLP7yG/fMW6yqwJm6BbLoV/0qIRdbRntt2+NaiTAWogJNCmYEE3FzYQzSzhUkYMCb3EN/I25Y8OZt31a3Em6uF5ZKG5z22eVqxb/WpGTdVrIxYlCVT5zsxR9Ptrey0dSQhPqzGnXwTVhUarAXklTZCKG30i+6xK9+RtKhEg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:54 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:54 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:30 -0400 Subject: [PATCH v2 07/14] erofs: mm/pagemap: add readahead_folio_last() to avoid folio->private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-7-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Gao Xiang , Chao Yu , Jan Kara , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Chunhai Guo , linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR01CA0156.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:7e::20) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 98e162e5-4022-48ac-4630-08df0795a9e3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: jNhDQFLuMGZ0W/PW+ti5tfP1ZOViw+BHkuYtLtFMYS9XUeSkYPJTX4sLMVVTj33r20AJMrmnTGSlhjLNrkL0yuhhLT0hVjLL5e5MY9ivjWKqpGTu1NghDXIc9Dol3F5FlxY/lgPFsvcbvmS5cOThDQ/Nb/hbLLhWYRkGodQqrzv7uVLU3PMXYNPDv90ktUgzVl/IwQeVyySOLC1pzOkLlr2KZUfenc06mXI+ftND+1LOuepZ6VfvX5941GRdODG8YyDCTFmPPq2cNlIsQMqlBKFz3E21DMMunYlQWXGhJ11tVkpu+vXEookTy/qSPvdJgnXfGozJ16x6xXto/JQiGkyGKYl1ZkvjWnVr7gf7kCUr77EpP7zt/Z/haovK954I7ld/cBeMOewZfhCHXPxeW8SwG8G/FsNeYBEapIeotDM9fB1C2PQEE5sPVGyJ2O60DSScqY84AwRNxC0bKGvguLL2ZTtMmCULNqVVfDhKQAm/h2vvBAo/W3aJjYO83/pvjjexGVE6OitIZlGGeLMGRA4CJnSG/d8G/4NqE/x+It/aSpyJMMlvlf5IVajkGtdKxxk0WbSWxwZ8OBOvxu1JSifnpDW+ghK4Jx8UUoA7mih79gVTmuu5iZVyu7cpAnCyg9I9BaMLOE9PH2Jqx/Ed/h0UHFGyKwvckFo6wJrYqAkN5SuNY0d4Q0sNmkhMrs/68u4UtoE9TKgGOo7rHei9+g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SkhuNk9WWkQzc0laRG9HUUFoanRYNGRoMkNLd2I0MDNaZENwMWdEL0lDR2dD?= =?utf-8?B?RHdPOWZEQW8rVEFGN1RwU2NZcHNrS054WFhzVGN0cjRUZ3Bic2dTaGNyOTVi?= =?utf-8?B?QmM0dUcrZENSMDhYa0hVQWZYbEwvbUU0RkpsRVE2cWJvTElBL1BIUk40c0ZS?= =?utf-8?B?blUzYkFheUFKRTRnaHlPcytPbjAzZW56c0NxRFR4TWNjSUR4eStLUzh2RnBB?= =?utf-8?B?c0ZhVCtHWXk0dWk2NHdCOW5CdWQzVXBINnJiUERxazJoMmRoVG9jK1VJRTA1?= =?utf-8?B?VTQ1N3JZWjJWd0pnNGZhZXBiY2F2SmRmdVJvWjFDNFc1bE9BZlhXSmVSZHh1?= =?utf-8?B?S1hDSGtnWTJoSGZzOGlJQTJMeVlFcWtkalFOSGZFcWNwQUdvS215cjZFNTcr?= =?utf-8?B?dFc1RHlMRVRxYzZjUWRmV2xidGpzb3Q3ZzU1RzZERmN0cVRXYm5Hc1F3aGJW?= =?utf-8?B?SUVTclByWXFXZ2Q3VW1HdkwwbnVpZ0VIbUZxV1k0YTgzbGtBdEJWYUJvSW9Y?= =?utf-8?B?cDlmemlYaENQbW9UVm0zcE1aeW0zaTZETW5PdFVidEZQc1hPYUs3amNsU2Iw?= =?utf-8?B?bFgzeE5RMk9FNm1ya3hSV290UUZrRnlBV1lOMVhhQXprYmZMYmJKZm04eVJI?= =?utf-8?B?SE1xVlQ2ZE1ycjZwd2cvWG1iUmRTUkJPNjBhbSthNnJKbkpqS281RXlQSzRW?= =?utf-8?B?TFdjR0l0TzJzbE1OcjJCWC95N2MyS3h1aVdsYVNMcE4zMUkwYlhLcmw4U2hY?= =?utf-8?B?K0dzQ0tLZ3lNcE5XY29UQ0NidkdiSEN1SlMvTnZiTTQ5RmxIR01yTTFQNDQw?= =?utf-8?B?Nit0OUQvQzNoRHB4dFVvdllmVmNpUk9KaC9DUDVDblJJOHRUY0NLa2lsM0Uv?= =?utf-8?B?WVNzVFJUSDB6S0NhbCtQRnpidTUvRm9ZdHFwTEZnQWI3OWFVUVhkYy9veWpv?= =?utf-8?B?VXMzY3EvTUlqTGVpTjBCR0plVUgxdTVZcFJnK2tVbVZtYzM5cEFDc3dlZXdV?= =?utf-8?B?b2ZTT1ZtbU5GSTJSa0xvS2hJdkhJSSt5dmRvU0t6aHRTRm9WVjRDLzh0eEJS?= =?utf-8?B?cnJxMEdTSERkUThUaDM2NkFERG1EaVlycnBYMVpJUTFmR0RJN3J6NE5HWHFS?= =?utf-8?B?NmFvWEdVRzN6SDNuWGs1UlpJc0wwYU93bmtOQ0QzRUV5UktzbnBrTTFaNkM1?= =?utf-8?B?UU5jK3hQVXlKbzd2OXEzbURjNjd2aFJidUdUbTlyWUU4TERQTysrM0lmRmhZ?= =?utf-8?B?U0l5eG51S1h5bjNkZTczLzFrYkdZeGljUWhWT0w0SkY4VWY1a0w1VisxS1N0?= =?utf-8?B?NVA1QW1SRGV0NzF6R2tYbmRrSmg0Q2x0RDBnUEJoK2pYRkVrdHRxT0NsWFNQ?= =?utf-8?B?eUhJbzNJdWcxcVRjUzdId2FHRVlmcFZqeVlVR3BXNFVEZ3dDVXFRaWZnNldq?= =?utf-8?B?MW1wL0ZwUzR3ay9xQmFvTjlNcHVHNGVnaFpUNVNqVmhyNzhBT290T0RwTVYw?= =?utf-8?B?NjdMa2J4b2g5Yjc0QW1zdXpOaEUrc1BvQVVXbVU3YjRkNG1mU2pSS240emFh?= =?utf-8?B?R1orY3VDNDVDRzVHa1VCOVp2dDhqOURXbmh5OVgxb2lyLzFtR3pRc2daK0FY?= =?utf-8?B?Tk82NU5ZdUY5UisxdFFNeWo4V3UzTnpRRlpIR3J0djJZQnplMWN4N1YrNDBp?= =?utf-8?B?MUtaV2JTVUJKeUpBTi9WMW1EcVFHQnBURVZQOFhxNDM4cnNrKy8weEg2OW1P?= =?utf-8?B?WUk1WjhMSHZxL1dIQWRPQy9ja0NLTU45VDI0VUhxRjdpSEJTN0FkM1RhUVVw?= =?utf-8?B?SkJFbnU3ZUVHeGlEUTh3bkdQYzYwSTRkOEhJT0NWa0E2WFFOVVJ4WVhoVE04?= =?utf-8?B?cWVhK0N0eTBYUURYWVhjaXVWdHdlVzd5WTZLWWZlMjhFM2kyN2dwUG03WlhP?= =?utf-8?B?cTNiWnhpdVlzUUNDQjZyRlN5UGtDOXFSanVPMVZLejF6ejNzYjgrVnE1Z3Zs?= =?utf-8?B?QURZcUZmb05yVGJVRDFpdzRYUUxYVW9JT0F2YWRxV0NQMjZvQ04ycHpMREF5?= =?utf-8?B?S2VLdFlzUUhjSytMZHptcG1XM0xZNFhyMVZaeEZYa00rcm9lSHhsRHV5QndO?= =?utf-8?B?TTZ0T2VoR0tQc3FUbHlmdHhWV1VVa1VSVXdlMnZTbnR6NmxyL3BISWVjRGM4?= =?utf-8?B?YXZkbDI2Y0E5VHFGb1VRZVZUaFNBdGE4WHJxYk0zNTFCNFdDaE9lSFdUVXk1?= =?utf-8?B?bytKVGk1WWVRUzdNVkEvUjVCRm9GUk13Y3dvZHBSL25ZS0t6UWI0enhldEYw?= =?utf-8?Q?10zWh80V2EKn2UN60w?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98e162e5-4022-48ac-4630-08df0795a9e3 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:49.4268 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9ITzvUpcuLqw4Z4h17eUYHhm72+ssdjwcJUyiMPazmzrjAHRZRCzilERskSKvkZW X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 erofs needs to traverse readahead folios in reverse order to achieve maximum performance by 1. reading all folios from readahead_folio(); 2. storing the prior folio pointer in folio->private; 3. traverse from the last folio to the first one. Add readahead_folio_last() to achieve the same function without using folio->private. __readahead_advance() helper shares readahead_control adjustment code among __readahead_folio(), readahead_folio_last(), and __readahead_batch() by checking new private member, _forward, of readahead_control. It prepares for a future commit that replaces PG_private checks with !folio->private checks. After switching the checks, erofs's use of folio->private without bumping folio refcount can cause unexpected outcomes, e.g., in filemap_release_folio(), try_to_free_buffers() becomes reachable. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Gao Xiang To: Chao Yu To: "Matthew Wilcox (Oracle)" To: Jan Kara Cc: Yue Hu Cc: Jeffle Xu Cc: Sandeep Dhavale Cc: Hongbo Li Cc: Chunhai Guo Cc: linux-erofs@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org --- fs/erofs/zdata.c | 13 +++--------- include/linux/pagemap.h | 56 ++++++++++++++++++++++++++++++++++++++++++---= ---- 2 files changed, 51 insertions(+), 18 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index e1e25ca0d1904..78fd7d980e957 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -1898,21 +1898,14 @@ static void z_erofs_readahead(struct readahead_cont= rol *rac) struct inode *realinode =3D erofs_real_inode(sharedinode, &need_iput); Z_EROFS_DEFINE_FRONTEND(f, realinode, sharedinode, readahead_pos(rac)); unsigned int nrpages =3D readahead_count(rac); - struct folio *head =3D NULL, *folio; + struct folio *folio; int err; =20 trace_erofs_readahead(realinode, readahead_index(rac), nrpages, false); z_erofs_pcluster_readmore(&f, rac, true); - while ((folio =3D readahead_folio(rac))) { - folio->private =3D head; - head =3D folio; - } - - /* traverse in reverse order for best metadata I/O performance */ - while (head) { - folio =3D head; - head =3D folio_get_private(folio); =20 + /* traverse from last to first for best metadata I/O performance */ + while ((folio =3D readahead_folio_last(rac))) { err =3D z_erofs_scan_folio(&f, folio, true); if (err && err !=3D -EINTR) erofs_err(realinode->i_sb, "readahead error at folio %lu @ nid %llu", diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 0adfa6605653d..546e987d5cda7 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1416,6 +1416,7 @@ struct readahead_control { bool dropbehind; bool _workingset; unsigned long _pflags; + bool _forward; }; =20 #define DEFINE_READAHEAD(ractl, f, r, m, i) \ @@ -1480,18 +1481,25 @@ void page_cache_async_readahead(struct address_spac= e *mapping, page_cache_async_ra(&ractl, folio, req_count); } =20 +static inline void __readahead_advance(struct readahead_control *rac) +{ + if (rac->_forward) + rac->_index +=3D rac->_batch_count; + + rac->_nr_pages -=3D rac->_batch_count; + rac->_batch_count =3D 0; +} + static inline struct folio *__readahead_folio(struct readahead_control *ra= ctl) { struct folio *folio; =20 BUG_ON(ractl->_batch_count > ractl->_nr_pages); - ractl->_nr_pages -=3D ractl->_batch_count; - ractl->_index +=3D ractl->_batch_count; + __readahead_advance(ractl); + ractl->_forward =3D true; =20 - if (!ractl->_nr_pages) { - ractl->_batch_count =3D 0; + if (!ractl->_nr_pages) return NULL; - } =20 folio =3D xa_load(&ractl->mapping->i_pages, ractl->_index); VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); @@ -1517,6 +1525,39 @@ static inline struct folio *readahead_folio(struct r= eadahead_control *ractl) return folio; } =20 +/** + * readahead_folio_last - Get the next folio to read, from the tail. + * @ractl: The current readahead request. + * + * Like readahead_folio(), but walks the range back-to-front. The folio is + * returned locked with its refcount dropped; the caller unlocks it once I= /O + * completes. Compound folios are returned once, at their head index. + * + * Context: The folio is locked. + * Return: A pointer to the next folio, or %NULL when done. + */ +static inline struct folio *readahead_folio_last(struct readahead_control = *ractl) +{ + struct folio *folio; + + /* Drop the previously returned batch from the remaining range. */ + __readahead_advance(ractl); + ractl->_forward =3D false; + + if (!ractl->_nr_pages) + return NULL; + + /* xa_load() follows sibling entries, so a tail index returns the head */ + folio =3D xa_load(&ractl->mapping->i_pages, + ractl->_index + ractl->_nr_pages - 1); + VM_WARN_ON_ONCE_FOLIO(!folio_test_locked(folio), folio); + + ractl->_batch_count =3D folio_nr_pages(folio); + + folio_put(folio); + return folio; +} + static inline unsigned int __readahead_batch(struct readahead_control *rac, struct page **array, unsigned int array_sz) { @@ -1525,9 +1566,8 @@ static inline unsigned int __readahead_batch(struct r= eadahead_control *rac, struct folio *folio; =20 BUG_ON(rac->_batch_count > rac->_nr_pages); - rac->_nr_pages -=3D rac->_batch_count; - rac->_index +=3D rac->_batch_count; - rac->_batch_count =3D 0; + __readahead_advance(rac); + rac->_forward =3D true; =20 xas_set(&xas, rac->_index); rcu_read_lock(); --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 C9D3B3812F1 for ; Mon, 31 Aug 2026 19:26:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204373; cv=fail; b=WaBI3D9zNmoZ4cXHG9QfqWlXkj8b/mBWVtff9Y6AIRezFkl/+jlQmCds3AvV3qE2CLnQrVh/aFQpZKOgAQ5fg99axuWEraNLiUyVjPVST53vaO8S8vYHfp0/br2BuJBnYemZAihcY7Uvl+NyEac5JnBpUXJz1auQrtpNwBazcAc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204373; c=relaxed/simple; bh=dDH0ydIko7YGLIQq19bPUjM191rbOYlEMwT057KZ6V0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=s+UjIFBdE2jaduV8qnNeC48Tb7HGpa6ubburMEAwx3Rw/9Zk+tYIsfcgFbvmzXAL936KsQOMCYHE4wzGo/gcG0L4pnG7MhGKM+HJxtILEW2Nbu2LYEwKzQdvCnvWAr+enyjwqSKb3XotECqUaYbAbHAiD1BjJyYykUV+KUi2alI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=soCBs0AI; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="soCBs0AI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sSL5LbE4nHeBU7uKXRFoIJzKcH6yft2yxszKALYuDDlvX4KYyjfsfLlr17Xl+4ZFYVe89At3axbO+k9Wd0DvRkoXCLDUtYQm0tziGiZ5DiVRg/K8yHdL18SdYPE86Jemu1Tzf+YNaEAVdyg60Kg5JIQwmPpcSHt0Ytn4oTxu1clps4hNZ9n4XMlmmO2ggKh+RGN9DAufVZcX6WsQb0uxi21kmuOUvsS+gE90QsJ3VNkqJb96KwAYV4+Z0fVRt6UaRl8LgqjKrV2SliuvDVq/8yOqvtOTnrzQGe/MYl66ddh7WxrF6UFlOR29V7s/0GE4QP4HTQlxAK8cLf1rXz/p/w== 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=RxnL1o/ICM0JJhQDdSG6k0d/UX7PPpVBK/DANObKaQI=; b=Oq1t2K/JPiU+QGP+/qxFK0TBgGeJG62SQZr/vZ6vtoH+uky+VFFX8SvY14DPEEEELVkgyDRew5J6ShjQL49Xam0b6CBwHAFD1bD4I1qEl8u+FbG5N3DRCm9mpzUAX1+x1pUWF6/erCv2I8MrFVKL41xxjgKSOZ+TkbaYW3SZo+s2HvGz8fGHtojqrvY5iLcIGwDz3RxWgos8LME7vN/b1+M4wdHk6i+fnxqjCVoXbgFhWX6D1/aqrgpCd+mEZnDxnqzpp1vNGrHLD8XoKkJSl08ibwH3QNEKKD5nID9HWGv0hDXYfhlKLX1YczUCV54eBlE6jnafy1nPYZv2gxEucA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RxnL1o/ICM0JJhQDdSG6k0d/UX7PPpVBK/DANObKaQI=; b=soCBs0AIqm8UXhXy5Znls8JI3OBp5gw01Y67VLjLczWMmUlgDEPP03GuBU2fbHtco/RZIwGOgc08p9tdBGV/MFAS7r0lxQacSuqV8NsqTCQyRKZMJyxRUomfRj0nMK89tE3LE0Ue6QmoiW9gryrH6170QxLEBqski6c0FatfCqq3LhDEvPxy+BSxezF3i2UYZVnzkLSeZeMyDSMwLSshEmZW8cXoqcRRLtFK29quJAL6Ct290lxA0SWi45gQDs6GDxJLrHO/v6Ub/jU+zFDFlWxTGht8SrZ/o7xKVmPCQKKBhj+YC2qFuFLULJfQDO2j5jiQ9zwY91MYUoTbwtVJSA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:54 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:54 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:31 -0400 Subject: [PATCH v2 08/14] erofs: use folio_attach/detach_private() instead of direct assignment Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-8-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale , Hongbo Li , Chunhai Guo , linux-erofs@lists.ozlabs.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBP288CA0027.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:9d::13) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 361f0a3a-f803-4652-7424-08df0795aafc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: wohygzjTx6/d1344MKJ8oO/ZGPY9aGh3/jQ13kv8S7zK0yKyWOynSNdgO3eSsFPPXAuo1h3+PaIGS7dNYfK0eTyk9JAqFbXY9hA1PNf6mmY4jVNw9vTl4AQOZQnmWFT9jW1DOWGG2VKr2I6gRhAsiAV3BQtNI/Pr9IS4zUfIU6OZEWritaV0t1SGqJlkRjSir1ND9qQ0opj2z2WwO+jZuINxoiK+udZP2OcoIAoVRlNLGBhGH/+/xYRxl8PSzTa27v5F2uJJunvXtRRcmyc2OviLvN76l+OlD4iLZLaBJRWrIacxL9Jutini/eRyqCQf3m/8+Ddq9FpRnsc9w1cMei8kfssLT90NVSVmLxrK5TI82T4fiaoUmz6Lqb+5ttL982d1r8Vi/I+PxNaV0+dv2eXSxWJNH3QxRLufKZBftvAYLmTnr3AMhBHGSrWInuZI6mlQO5AKS4Ba0ayLW1Q5j4Cm2kJ6Qt7RFJy0ORC8KL+EFds3JKK2YsItwIfGREHO5XIaa8lYO7bBAjTBLL4rehAxQypaOSJvRDjBl4aBwzlQnyz2vIBAjOt7MF5JMAY81S0bKgXmkvo45lI//Oik4deIKED1tbm/isydI5qw2g/Pvuo74/XfCXXZWZmOe4ws3SpQRSFoe03/A5UKlmGHl2wRsIKpOWpUaS8C52xgMzFsGrI8IoWh/4qGAsYbhJF8m+b66REEuRoSSdZDqCIatg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Zm1iOGhnZWhBTWY0Nnl4djdCYVMrVlJOTmZpeTAvY0JQQ0h3T2xkdXg4WHdi?= =?utf-8?B?V0s1Ymt3bmRnOWo4dnplQ0hHaHpnWGJ5Y0FkaVpRSUNVUmVBTVNtWGJuU0J3?= =?utf-8?B?cDF1OCs2eE1YbS9Ya1U1OE1NS1hPbnUyZm5zS2JnekFUQ3hIN1lCZHJrbWFv?= =?utf-8?B?MXVCUmtVWVRpZXFlTnJKc3FxbFhkQkVmV0NKOUVqVkRpVkRwY3l3RzV2bUY4?= =?utf-8?B?MnFPaXhoTG1CaHp6Y3RXRmRZcDVCZjBIV1ltK3lCbGZnTVg2Z1JBNW1uTnll?= =?utf-8?B?VjBiSmRIaHpIRDM2WU83NDJxMG1CbXgyZGpyUUIxR3F3eVFIdkdwc1dPVW5R?= =?utf-8?B?VDN1UDBtYnRmWlMvREZZRVpKRWFFQzFGUno0VVNwVFFtSncwcWtPTUJiQ0k5?= =?utf-8?B?ZXE5MEZlRnZVVVQ2NS9TUjNsaklEby84UWFBRGRrTGhLbGxVbXBHZVBxZjhZ?= =?utf-8?B?NDhvcVBxdjZrdzlRVUdPQmZSOVRRVVFvNGVmY0RBVWRZVE5nTUZ1SDJObzV0?= =?utf-8?B?NVNQZW5OeEV3T2FQL24wbU5MUk9teG4vRjhKZEdlazhhVVZ5SW50aWlPWEhy?= =?utf-8?B?aEtadE5TOXB6V1NlM0NpMzdaNXRsVitGNU1hM09BQXdYQkkzSWliMWVBZU4x?= =?utf-8?B?NTZsVWFhTjhDcXByaXNLNlFRSVpvYVdwUUFqckZKMTZCUUlRUHpCNlovZVdz?= =?utf-8?B?VzVMZEt6Yjd2SjNHL3VYbVNCOUI5SVloU0hCNldJbS9oZHBIdkQwYm9YUDhN?= =?utf-8?B?VERNa25LSU5IR2s5V3BXaHVndUZCZ0lyQWpwZm1yb2doRk8xcFdPN2l2eXpi?= =?utf-8?B?YThnZE1LM2c0OS80V2JzYWdGZGNqQzZ5dmIwaTJXN05uRGY3MTFiY0U1QzZD?= =?utf-8?B?Y3krUlBEdlBkbXA0UzNFMHFwWnhrY0VOVGozR3hRQjFSWjhlQkNnK245OStU?= =?utf-8?B?cGVSREtML0h6ZnNwMU9EOFRyMXp0U0tmYzJFVUYvSVdDVUtmOWdXcjFJayt5?= =?utf-8?B?R0VwWFk3Y1ZCbG5obVNwMlNBc1g5NEh4TFNFQ2QvdE16Snh3WmZweFppVjQ5?= =?utf-8?B?clo5ejZtNGZ3YlRIV0ZXbk81NDRMVWt4Wmc5Mitvcm9WV3RIVy9JVmlLOU1s?= =?utf-8?B?Yy84bzNzTkNkYkFmMGtoR0pFdGVPVm5ZNGtyUUlZOXN0SFpEUDZmOEdjdEdo?= =?utf-8?B?Qzh5WUFBd3QxcTVxNDEzS2hIS013WWkwZzNsRlJ0QUx1WFVWS1l1YWV2UGZU?= =?utf-8?B?R3p3Wi83YzRoaURKaHlCR0NjOHdvbkwzYkVFc1l5N0VZbUlTQlhCZHpUWUQ5?= =?utf-8?B?VmdZZHBiRDlQRy9KZkRYMVl3NkcxdW5Fd2l2RThnTXlsWHByN08rMEw3REtv?= =?utf-8?B?cXhCWVB4SkFUZzMvVWw0eTdINzJQWUhKYUZ1T1ZHZ29SOGxFTjg5YnBOb0tS?= =?utf-8?B?VlVLTkhsek5iS1FWbGlqWUVRa1RadEJibkVrQVh2SDZWaExDZ2MzdktBNjRC?= =?utf-8?B?UXVHdjJ4VTVYMmY2YVpxajB5UE1xTSt2a2hoYU00TDVUNDMwd1g2RGdXdTl6?= =?utf-8?B?MDR4eUNMQjg2dllraHlqMEI3K0tkTGY4MHZmNngxUU1UeDBXeDFOdnFhcVlr?= =?utf-8?B?V2tuZzIrejVIM1dKKy9wQ3BWNE51N1VZK3llVFV4NU1scmZ3QTk0cVVvcGp6?= =?utf-8?B?Mm9hcmJ6azF2Q3VBakZLWEd2YTE1bGtDQi9WNFI1NXhGeHBNdWpnQjNMSGZK?= =?utf-8?B?SDM4ZGdxbHVCRndsaWpnVmRmTGJleVpWT0VRZ01PMVBnQS8xeEFQalA0RVd0?= =?utf-8?B?alJ1NkNRL0NQSTRMU1FMY3pFQVJtcFNoNzJjZWRDZjNXcFgwMkc5UWViMmE2?= =?utf-8?B?UURqU0JqaWMvZGJYZXFtVWVqanpwRlNzNjB4MkVLTERkeHBVRjV6N3AyNmVq?= =?utf-8?B?SDVrWURSTlE3K2FLc0RNQXpJcGVoT2RoYVVaQjRQTnBzL3h4Rm9hME10WFNy?= =?utf-8?B?U3JWcWN1bjJmenRrNkZqcHQ3Z2lwSy9GdVM1N0Y1NmZhRHJRQmpnT0llSXhZ?= =?utf-8?B?MkpVMmRJMUZKaGUzQk45M3dUcXF5WngwZ1h0WlJQTDk3VnpUcHBUYUJESGFq?= =?utf-8?B?VkRIT3JsRmNPeXRxTUY1TkVHTkJMUGRiQStGOGE1RGVnajlUb1Z1dDBWZi9o?= =?utf-8?B?M0NuWldnL0tUN0dtU2tBWDlqblV4NytvSzlqRTI1aWtlK3E3b0R6MENhcEM1?= =?utf-8?B?VU1UUzY3OHBRUUNBc3lzRThrWWtpWjR2NGFjb2YrQzc2YjBxNm1PRnhBaWJK?= =?utf-8?Q?J1Oe11AQrhUJ3Mk3et?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 361f0a3a-f803-4652-7424-08df0795aafc X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:51.1302 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Kg4v9lyisokpa4x2ZzKfa7Ot65Vj4wgDGjJ8OYzo8lpPObl0VF0Ca5/HCSS2nioQ X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 erofs_onlinefolio_init/split/end() use folio->private without setting PG_private or increasing folio refcount and it works. But after PG_private is replaced by checking folio->private in a future commit, it can break folio_expected_ref_count(), since the folio has private data without elevated refcount. Change them to use folio_attach/detach_private(). Furthermore, because folio->private is used to store in-flight I/O counter and the counter reaches 0 when all I/O completes successfully without error or being dirty, ->private=3D0 causes folio_detach_private() to not drop the elevated folio refcount. Solve this issue by using bias=3D1 for the counter, so that ->private stays non NULL throughout every attach-to-detach process. Add a macro EROFS_ONLINEFOLIO_BIAS=3D1. While at it, fix the comment about ->private bit layout and add EROFS_ONLINEFOLIO_COUNT_MASK. It prepares for a future commit that removes PG_private. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 To: Gao Xiang To: Chao Yu Cc: Yue Hu Cc: Jeffle Xu Cc: Sandeep Dhavale Cc: Hongbo Li Cc: Chunhai Guo Cc: linux-erofs@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Gao Xiang Signed-off-by: Zi Yan --- fs/erofs/data.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/erofs/data.c b/fs/erofs/data.c index 0885b1f2fc925..f71c7b51bb720 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -239,19 +239,23 @@ int erofs_map_dev(struct super_block *sb, struct erof= s_map_dev *map) /* * bit 30: I/O error occurred on this folio * bit 29: CPU has dirty data in D-cache (needs aliasing handling); - * bit 0 - 29: remaining parts to complete this folio + * bit 0 - 28: remaining parts to complete this folio, biased by 1 so that + * ->private stays non-NULL while the folio is attached */ #define EROFS_ONLINEFOLIO_EIO 30 #define EROFS_ONLINEFOLIO_DIRTY 29 +#define EROFS_ONLINEFOLIO_COUNT_MASK (BIT(EROFS_ONLINEFOLIO_DIRTY) - 1) +#define EROFS_ONLINEFOLIO_BIAS 1 =20 void erofs_onlinefolio_init(struct folio *folio) { union { atomic_t o; void *v; - } u =3D { .o =3D ATOMIC_INIT(1) }; + } u =3D { .o =3D ATOMIC_INIT(1 + EROFS_ONLINEFOLIO_BIAS) }; =20 - folio->private =3D u.v; /* valid only if file-backed folio is locked */ + /* valid only if file-backed folio is locked */ + folio_attach_private(folio, u.v); } =20 void erofs_onlinefolio_split(struct folio *folio) @@ -265,14 +269,14 @@ void erofs_onlinefolio_end(struct folio *folio, int e= rr, bool dirty) =20 do { orig =3D atomic_read((atomic_t *)&folio->private); - DBG_BUGON(orig <=3D 0); + DBG_BUGON((orig & EROFS_ONLINEFOLIO_COUNT_MASK) <=3D EROFS_ONLINEFOLIO_B= IAS); v =3D dirty << EROFS_ONLINEFOLIO_DIRTY; v |=3D (orig - 1) | (!!err << EROFS_ONLINEFOLIO_EIO); } while (atomic_cmpxchg((atomic_t *)&folio->private, orig, v) !=3D orig); =20 - if (v & (BIT(EROFS_ONLINEFOLIO_DIRTY) - 1)) + if ((v & EROFS_ONLINEFOLIO_COUNT_MASK) !=3D EROFS_ONLINEFOLIO_BIAS) return; - folio->private =3D 0; + folio_detach_private(folio); if (v & BIT(EROFS_ONLINEFOLIO_DIRTY)) flush_dcache_folio(folio); folio_end_read(folio, !(v & BIT(EROFS_ONLINEFOLIO_EIO))); --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 49B1D38655A; Mon, 31 Aug 2026 19:26:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204380; cv=fail; b=E5WmHvjeV0DdiuKBWdHQXuOvlUbghAFx9R9qQQPMcaJLgz4Q8KLS15CDaFNku+UIKXmiREMA3ro33QMyf5ojhpNfi9G1LPYk3NTkQnwNYowhd1K0LT4p6ae5LnJiw6MO948mBmGcJD/6w5w0A7SIhoSVF7WZLdxicga4BhgYpGQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204380; c=relaxed/simple; bh=b6qFoLdbolJM5tiVVVGRDBn3A4MSnguHLn8+g22gpOo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=CmShGVOTxrRXw2nvzw1v/i54UmkhYb8H1hyQvE1x9IYs2pl+X+Xhjz2/eEMBXCjXbRvfg+Qovi4zD6jj9pLyf+O8gcRvDYxQjJc3Z6hvSrgnl9VMRcHmWch7u6ZDKz3IvvYhDfm2FwYKENSLpOADuY0s0SOh5s5QcyZWBDiLudQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=PYBid6iJ; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="PYBid6iJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IrBzxAPU+QwR2KhQfLprfz/gGJNg3WuD/7idTnOkWbXPM/XR0KnYzf9b1pl9fRyJB4thV1ZSamzERsuc4SEq0q1A2tVyRDOcu8x56eoLB8drxPYkycPQPyz4/6zoLMKIUQqMeMN3rFJWR+E4UzT5uMzuEzhUDEmcc/866aewbrhIRKBXclRYtplftBMeg6PpFYq9sNDhEC4JFlkFfH5eyFeucTVLxdB542bC0ZiaQ73TyCDhs1jrBezsCdH1YGHilzvPDFyJ+Qxr3uosTM083WFFUy0FICSLkPFVekR9DeP12ADbwdP+NZKJDeBQMXwoYjOZtGAanF2Yq0Vw0yW4YQ== 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=u9fPVkDVsEiwg5A3aIUFy0PO5BH27mCIZ5RprNl/2rc=; b=feq9SYjnY/p9V6nn8Bn/YicX4vaQ7MMK24H3h8qaQwyfDLa5IVxY95Z3g5mO+dBOvvvbIyaVH/iXGGdtp4kF3M61vrxjC4cmGWtbHQSp0V4ZgdgB71d7jd66dZ53gCysuOQUvTk+hqANgy5Z/cnZigtKeu+ZGZTjjoQDeQCgL8CYSSEk42tcRdKEDVQKv6yh+HwXPGTlaKDO2eHkMcpc8stPpZzKq9/Mx3IVK3K/CaWHljelEG3nVzIutxruHclJq8wapuOJRple5XmlACVS6WlGJHfKPTVpd+ZD5wR4yMdQJIwTyW1tPprdMOPdPXMEWhYlKdt8eWahdVHCrOl6cg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u9fPVkDVsEiwg5A3aIUFy0PO5BH27mCIZ5RprNl/2rc=; b=PYBid6iJ9AW98Uv9fYnPYsm5KFNqvYK5d/tmEIOLOgYKr8qKJyDq/0AHUnE936C7Q3Wso18N3G1NP+qmuANhw3wxOzs4wF/Kvo/l9MmUeprwyGPc5p/gqf47BS4GyK1RYlVGQ2fBvX7nAi/X7M3qQdBGCZpEZvcZEowT9InRoYDct0l9azqJuGx2zAaqWHzQR2NNrYEPKe4wLDqd0rABrSVw2ZdIlRf33PgqmGXdmv3WHIQ22wk2fyZxCMn0jCiMZBK02WOfS94CKx52P6G9TcD2HHjR3cCvm5TXNywgJVghRx3KTBoNJQOwy4ekGZVmNPbwW/uY4ah9hWWOMVBBHQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:55 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:55 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:32 -0400 Subject: [PATCH v2 09/14] mm/page-flags: check page/folio->private instead of PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-9-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Steven Rostedt , Masami Hiramatsu , Jan Kara , Mathieu Desnoyers , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Axel Rasmussen , Yuanchu Xie , Wei Xu , linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBP288CA0046.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:9d::19) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: fcc2b33e-f5fd-48ba-d902-08df0795abd5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|5023799004|11063799006|22082099003|18002099003|6133799003|921020; X-Microsoft-Antispam-Message-Info: ElGByrrL7Cl1kA97Gt6SHEiSssdqtgx6+mEOkPmfi8W4u+xdX4rdh93RMH4MJMmDEyGxC7fzprdS6EVALit5IXCgWsgE0A+XOR3I/nLEEbdtMfSCS44lRx6+fSutqpXn7nt+CUUr96NeqKyk0WSzw7JZSqkA7e302WDkwGXmtotAnD2ktkARLtThXOJH7kwNZOG3+I0eRAH2vhoopMvWCm3SBJY0VgRo2LLSxb02ydiVt2n3cNkHduAnYwMHkvNqECzGZltF+vfWu6Vbr2ksxDSO2zmCn/YbjeXsSbar0WaKs9Q0ciwSsp6toct0wD7Ntdo9tzWfIAMVuvhI1CizMc6aRFTmXwITddiv4nEabrrrIjpqr5Llvm+cUEKeamcprb34LCGa97W5iX5Xj02rNKSLEe8FGIwUNRUk8RBZM2sgSw97kERYDJBpL1wHNVm4CTFb3YkGszjTvgw/MwJkzLdwCoaYxJ74aeFRFJVo2nP2cVB5krk1WeeEl/fM5esKJP+z9iFZiyokG0HP5stmDNSfpbKU2gO0SikRaqmb4Xd5yYf+ve8TTVuI0rEXPJhcUoNqa9chW9uCC104Xf0xJ+l41vYNx13DBJVKgBzeZ/VRjy8PxfNsC2pHPqvzGrmFgJqh8NTBRR5fNPHAie1bpwaBtlF4bCTS6uJV2fe88PKR5thN+01gamXuIdgJjNWt1m1TkXa0L13hTyA/3vzgTQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(5023799004)(11063799006)(22082099003)(18002099003)(6133799003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y2ZBbWRXcklNZ0NuTW9YS0g2OHpHdFVldnk2SHJYSnlVblMvWHRZeXNmcFlh?= =?utf-8?B?RUs2SFdTa0svMzhncjRFYUhEa3VuWFZTRXVaKzFKS1MvSUk2d3Ira05VRW5Y?= =?utf-8?B?WFNaekNKSUNoeU5DMTBvY0hwQ2RnM01PY2JHQmU4Qnd4QWNtTE8vazJacnpR?= =?utf-8?B?SzEySEJldURBcVUvMHZ2eHNNTFVjMU9ZWmdsanpmNTJrUGsvS2Z1bXFOWmNO?= =?utf-8?B?Sk55akhGZVJVb0V0SGF1ZDByK21URi9SWHJSR2VEcFNXSEp0Y1g2RlJSMjRL?= =?utf-8?B?U1YyUG1meXZtamlmQ203TVJUdjRITmxlbkg3alBPaVBoN25EUDFFNVR2Mk10?= =?utf-8?B?NGdBcGVMWGtXVjRJNVBqb0VscXNSNFpxUk9VNVg5Zm4yN0drVklMbGhIRWd6?= =?utf-8?B?d09DSXlLZUF5QjkyMmliMnFoTHpnVkZ6aHUvM2M5Skx3bXp6MW9VTVNTZkty?= =?utf-8?B?bkttRTBhSU9mQWJaSDBLVVRmQWNBcU9IMGdtcy9kUFVFdE56Y1JydUttWXc3?= =?utf-8?B?bUJBQ3JlOVpIMFBONzg1ZkdrRkNIaHVmWHpyYkdGQ082Z3dCMjNNV3pYUmlx?= =?utf-8?B?UUw2S1MyNWcwR25vWU5QRDZZaWRoWFpUTGVQQUZJdFJMT3QxZ1BWWHJqcFc2?= =?utf-8?B?Y0d3M2sxYW5ZeEM2MDZaY0hUMjJFVEhIWkNDWlArMHhXa3ZVUFYyUG96YWlo?= =?utf-8?B?YUpCcEgya2VtYkFaalBkem15aTRtQzVyNkNVQytNak5lTnY4aURoSDRTUnh6?= =?utf-8?B?SzlmSTNtdk81SzNYWWlDTkNHQ0N4ZVhXeXN3bFpWUmRoWlFZNk5Yb3lPVEhB?= =?utf-8?B?NGJJWlM4bWtISXhDbmYyam9XQVJSemtYRC9pM1VQaXZEUytmOE9JOUVCZjdQ?= =?utf-8?B?UjhvMzJLaVNPNFlWL2RLOUQ2SXpqejA5dFRGTVdyZ2d4UWJVQmZqUkQ2eU5r?= =?utf-8?B?SFQ4U1BjZURSaWdWRDg4a3htQkxYQ0drcFZUYkFQMGdhcVVBRlliUkZ5ZE4w?= =?utf-8?B?QjRZcC9sdjN1RTVMVVRoY2QrWWtMMUJjNlZRdXBjcFlHR0FZenRzbCtGaXgz?= =?utf-8?B?SldPKzY3MUhha2xEc2l6eFRIMVFsaVNhZUdLSTJkeGNteDFudFJDbDAvYlVF?= =?utf-8?B?SzNOMXVEMEhmYThwZWpiNzJPOFpDUDQzZTZZTklVU3FWM21SWEpzTE5Jd3NC?= =?utf-8?B?eUJpZVJRYnRDNFF5eEE0d1VudWZYbFJNdXNwR3h2aVNlejVFVTZvekZVQ0dt?= =?utf-8?B?Sk1xRDBoNkFWaGVwTDllRjE3L28rMmxWdWwrZE9HME9qNmlKUkw5VnJMeEs5?= =?utf-8?B?b3pzMzNlN2RwOEowa09RZFpvOHNmcGhBbmRML3pnaEFvc25ONW1aVmIreXhU?= =?utf-8?B?Rks1OHdnRC8vRXljUUhyNGxUSk92b1VudzduVTVBY21pWXpOelp1NnlPa2sz?= =?utf-8?B?YlR5MGxvM1BQM05VWlhDNDdvZlVHRy9WRC9BR0I2cTJNc01vV3gyOGtVSVJh?= =?utf-8?B?WHRwWGhpVEl0UTRUSGt0cVBwc3V0Zk41T0RQVkJKMi8xcUN5Y0tnNXR1a0VI?= =?utf-8?B?ODBRa01tT1RydFJDQUkzWkM2Z2Vxc2JkYXV2QW8wT2NYSkNjOHczVEI4OGk5?= =?utf-8?B?b2N0UHJpNzBpeVJtWHIyZ0duZ1RwQzhWUUVkUFBSa3BhbGNzM2pHOXBxK3hx?= =?utf-8?B?RWNaeGJLc3FJTGVyeUVlV1BqRXJBMG1iRENhSGJZdXYvYllyR0pCdTdmZjlL?= =?utf-8?B?TlZEOUYvbTgrdy9GcExWNlM1QnJyejAvYUd1ZkRjVk5GMVdPLzV0M3M4Sm96?= =?utf-8?B?K1B5SG1DYU9lK0l3eVRVdVRWOXdrOTNDeVhKK3kwRkFNRGdEU3hJM2MzeFFl?= =?utf-8?B?c1RSbndYbTNJVDZTWGR6RTNRbjNIY0xWRHluSHhYTkNLQ2k4a0hkbXpTODIw?= =?utf-8?B?czNBSmdpNnQvOG9pdXMycmlWazAzZDA4UmxxSTRoZmNMWTdSenNOUVVVUmdL?= =?utf-8?B?NStKUUdueVNsMWl3cHNLMGxDRkJqNm5ZNXRPUkVaUHlORUZIcUc5eWxJQkNu?= =?utf-8?B?NTJaOEQwZjNBVU9iZzllRGJJdkNEK0FXMkdYWWdCRElTbE9QbzlmQzlTSXRL?= =?utf-8?B?MkJQK2FvUFh5Wlk4ZEZlY0lta2ZleE1xZW1oazVYeG1tWFNWcWxVTnkxRGtP?= =?utf-8?B?QnU1aEJockowd0h3T285OVQvd3FyMGZrMUdaY3FrdFJ1WkZYS25mSHVoOGVn?= =?utf-8?B?dUw3UHRSY3g5N2UzekZ4ZStGUTB1MzRNTEdmSmt4UmtmVlZTOEREelRPZ0tD?= =?utf-8?Q?sng61tDcs2KtVR1YNQ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcc2b33e-f5fd-48ba-d902-08df0795abd5 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:52.5395 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3ntwS54ZZp3xlBqOFghqrpDqiDfDrnLihengUAlJW9sPmNa44knjX2MH8RRGZp+E X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 After the changes of the prior commits, page/folio->private !=3D NULL is now equivalent to checking PG_private. Stop checking PG_private on pages and folios and use page/folio->private instead, except swapcache and hugetlb folios, because the former uses a field (swp_entry_t swap) overlapping with ->private and the latter sets its flags in ->private. Exclude swapcache and hugetlb when the code is meant to check PG_private only. folio_expected_ref_count() can be called without folio lock, so annotate folio_test_private() with data_race() to avoid triggering race condition checks. While at it, annotate folio->mapping too. folio_set/clear_private() and Set/ClearPagePrivate() become no-ops. PG_private is no longer checked at page free time. Remove KPF_PRIVATE since PG_private is no longer used. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Andrew Morton To: David Hildenbrand To: Steven Rostedt To: Masami Hiramatsu To: Lorenzo Stoakes To: "Matthew Wilcox (Oracle)" To: Jan Kara To: Johannes Weiner Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Mathieu Desnoyers Cc: Zi Yan Cc: Baolin Wang Cc: Nico Pache Cc: Ryan Roberts Cc: Dev Jain Cc: Barry Song Cc: Lance Yang Cc: Usama Arif Cc: Matthew Brost Cc: Joshua Hahn Cc: Rakie Kim Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: Qi Zheng Cc: Shakeel Butt Cc: Kairui Song Cc: Axel Rasmussen Cc: Yuanchu Xie Cc: Wei Xu Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-trace-kernel@vger.kernel.org --- fs/proc/page.c | 1 - include/linux/kernel-page-flags.h | 1 - include/linux/mm.h | 22 +++++++++++++++------- include/linux/page-flags.h | 26 +++++++++++++++++++++----- include/trace/events/pagemap.h | 4 +++- mm/huge_memory.c | 4 +++- mm/migrate.c | 3 ++- mm/page-writeback.c | 5 ++++- mm/vmscan.c | 3 ++- tools/mm/page-types.c | 2 -- 10 files changed, 50 insertions(+), 21 deletions(-) diff --git a/fs/proc/page.c b/fs/proc/page.c index 260772b20bd99..f90e1030825e9 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c @@ -232,7 +232,6 @@ u64 stable_page_flags(const struct page *page) =20 u |=3D kpf_copy_bit(k, KPF_RESERVED, PG_reserved); u |=3D kpf_copy_bit(k, KPF_OWNER_2, PG_owner_2); - u |=3D kpf_copy_bit(k, KPF_PRIVATE, PG_private); u |=3D kpf_copy_bit(k, KPF_PRIVATE_2, PG_private_2); u |=3D kpf_copy_bit(k, KPF_OWNER_PRIVATE, PG_owner_priv_1); u |=3D kpf_copy_bit(k, KPF_ARCH, PG_arch_1); diff --git a/include/linux/kernel-page-flags.h b/include/linux/kernel-page-= flags.h index 196778a087c4d..fe5ab6e50bd70 100644 --- a/include/linux/kernel-page-flags.h +++ b/include/linux/kernel-page-flags.h @@ -11,7 +11,6 @@ #define KPF_RESERVED 32 #define KPF_MLOCKED 33 #define KPF_OWNER_2 34 -#define KPF_PRIVATE 35 #define KPF_PRIVATE_2 36 #define KPF_OWNER_PRIVATE 37 #define KPF_ARCH 38 diff --git a/include/linux/mm.h b/include/linux/mm.h index dd09c438fa23e..786f8a47cea6d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3022,9 +3022,9 @@ static inline bool folio_maybe_mapped_shared(struct f= olio *folio) * @folio: the folio * * Calculate the expected folio refcount, taking references from the pagec= ache, - * swapcache, PG_private and page table mappings into account. Useful in - * combination with folio_ref_count() to detect unexpected references (e.g= ., - * GUP or other temporary references). + * swapcache, private data (folio->private !=3D NULL) and page table mappi= ngs into + * account. Useful in combination with folio_ref_count() to detect unexpec= ted + * references (e.g., GUP or other temporary references). * * Does currently not consider references from the LRU cache. If the folio * was isolated from the LRU (which is the case during migration or split), @@ -3062,10 +3062,18 @@ static inline int folio_expected_ref_count(const st= ruct folio *folio) ref_count +=3D folio_test_swapcache(folio) << order; =20 if (!folio_test_anon(folio)) { - /* One reference per page from the pagecache. */ - ref_count +=3D !!folio->mapping << order; - /* One reference from PG_private. */ - ref_count +=3D folio_test_private(folio); + /* + * One reference per page from the pagecache. + * Use data_race() since folio might not be locked. + */ + ref_count +=3D !!data_race(folio->mapping) << order; + /* + * One reference from filesystem private data. + * Use data_race() since folio might not be locked. + */ + ref_count +=3D data_race(folio_test_private(folio)) && + !folio_test_hugetlb(folio) && + !folio_test_swapcache(folio); } =20 /* One reference per page table mapping. */ diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 7a863572adce7..ee7abb3000c11 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -578,7 +578,23 @@ FOLIO_FLAG(swapbacked, FOLIO_HEAD_PAGE) * for its own purposes. * - PG_private and PG_private_2 cause release_folio() and co to be invoked */ -PAGEFLAG(Private, private, PF_ANY) + +static __always_inline bool folio_test_private(const struct folio *folio) +{ + return folio->private; +} + +static __always_inline int PagePrivate(const struct page *page) +{ + return !!page->private; +} + +/* no-ops during transition */ +static __always_inline void folio_set_private(struct folio *folio) { } +static __always_inline void folio_clear_private(struct folio *folio) { } +static __always_inline void SetPagePrivate(struct page *page) { } +static __always_inline void ClearPagePrivate(struct page *page) { } + FOLIO_FLAG(private_2, FOLIO_HEAD_PAGE) =20 /* owner_2 can be set on tail pages for anon memory */ @@ -1170,7 +1186,7 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) */ #define PAGE_FLAGS_CHECK_AT_FREE \ (1UL << PG_lru | 1UL << PG_locked | \ - 1UL << PG_private | 1UL << PG_private_2 | \ + 1UL << PG_private_2 | \ 1UL << PG_writeback | 1UL << PG_reserved | \ 1UL << PG_active | \ 1UL << PG_unevictable | __PG_MLOCKED | LRU_GEN_MASK) @@ -1194,8 +1210,6 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) (0xffUL /* order */ | 1UL << PG_has_hwpoisoned | \ 1UL << PG_large_rmappable | 1UL << PG_partially_mapped) =20 -#define PAGE_FLAGS_PRIVATE \ - (1UL << PG_private | 1UL << PG_private_2) /** * folio_has_private - Determine if folio has private stuff * @folio: The folio to be checked @@ -1205,7 +1219,9 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) */ static inline int folio_has_private(const struct folio *folio) { - return !!(folio->flags.f & PAGE_FLAGS_PRIVATE); + return (!!folio->private && !folio_test_swapcache(folio) && + !folio_test_hugetlb(folio)) || + folio_test_private_2(folio); } =20 #undef PF_ANY diff --git a/include/trace/events/pagemap.h b/include/trace/events/pagemap.h index 36c3a90f0acca..fb9abec40ec79 100644 --- a/include/trace/events/pagemap.h +++ b/include/trace/events/pagemap.h @@ -22,7 +22,9 @@ (folio_test_swapcache(folio) ? PAGEMAP_SWAPCACHE : 0) | \ (folio_test_swapbacked(folio) ? PAGEMAP_SWAPBACKED : 0) | \ (folio_test_mappedtodisk(folio) ? PAGEMAP_MAPPEDDISK : 0) | \ - (folio_test_private(folio) ? PAGEMAP_BUFFERS : 0) \ + (folio_test_private(folio) && \ + !folio_test_swapcache(folio) && \ + !folio_test_hugetlb(folio) ? PAGEMAP_BUFFERS : 0) \ ) =20 TRACE_EVENT(mm_lru_insertion, diff --git a/mm/huge_memory.c b/mm/huge_memory.c index ced400f72d43a..546b37ccce37f 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4810,7 +4810,9 @@ static int split_huge_pages_pid(int pid, unsigned lon= g vaddr_start, * will try to drop it before split and then check if the folio * can be split or not. So skip the check here. */ - if (!folio_test_private(folio) && + if (!(folio_test_private(folio) && + !folio_test_swapcache(folio) && + !folio_test_hugetlb(folio)) && folio_expected_ref_count(folio) !=3D folio_ref_count(folio)) goto next; =20 diff --git a/mm/migrate.c b/mm/migrate.c index 15b45832bcfa7..f14e7bfee14bd 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1327,7 +1327,8 @@ static int migrate_folio_unmap(new_folio_t get_new_fo= lio, * free the metadata, so the page can be freed. */ if (!src->mapping) { - if (folio_test_private(src)) { + if (folio_test_private(src) && !folio_test_swapcache(src) && + !folio_test_hugetlb(src)) { try_to_free_buffers(src); goto out; } diff --git a/mm/page-writeback.c b/mm/page-writeback.c index eeab25d6ce364..4022d6c381896 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2705,7 +2705,10 @@ bool filemap_dirty_folio(struct address_space *mappi= ng, struct folio *folio) if (folio_test_set_dirty(folio)) return false; =20 - __folio_mark_dirty(folio, mapping, !folio_test_private(folio)); + __folio_mark_dirty(folio, mapping, + !(folio_test_private(folio) && + !folio_test_swapcache(folio) && + !folio_test_hugetlb(folio))); =20 if (mapping->host) { /* !PageAnon && !swapper_space */ diff --git a/mm/vmscan.c b/mm/vmscan.c index f11491ee9ed5c..ac275eec086b9 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -955,7 +955,8 @@ static void folio_check_dirty_writeback(struct folio *f= olio, *writeback =3D folio_test_writeback(folio); =20 /* Verify dirty/writeback state if the filesystem supports it */ - if (!folio_test_private(folio)) + if (!(folio_test_private(folio) && !folio_test_swapcache(folio) && + !folio_test_hugetlb(folio))) return; =20 mapping =3D folio_mapping(folio); diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c index 7fc5a8be5997f..47e4781c5fc38 100644 --- a/tools/mm/page-types.c +++ b/tools/mm/page-types.c @@ -73,7 +73,6 @@ #define KPF_RESERVED 32 #define KPF_MLOCKED 33 #define KPF_OWNER_2 34 -#define KPF_PRIVATE 35 #define KPF_PRIVATE_2 36 #define KPF_OWNER_PRIVATE 37 #define KPF_ARCH 38 @@ -131,7 +130,6 @@ static const char * const page_flag_names[] =3D { [KPF_RESERVED] =3D "r:reserved", [KPF_MLOCKED] =3D "m:mlocked", [KPF_OWNER_2] =3D "d:owner_2", - [KPF_PRIVATE] =3D "P:private", [KPF_PRIVATE_2] =3D "p:private_2", [KPF_OWNER_PRIVATE] =3D "O:owner_private", [KPF_ARCH] =3D "h:arch", --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 2707D383C7B; Mon, 31 Aug 2026 19:26:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204378; cv=fail; b=B2VplfAv3v5SrzmCpEofLxas2JJ4Vnj23oK3Qcp5StFqHFCZkUd5pQW9B6V8jTczyfZ3Cm6HSDGdx/29Fsf0Uc8fpN/bpM2DALXJrzThI09jd5Tr8mqrE6iNw4Tn16BJWrYgK2fIWW6/Y6k5NIpRGPNlz8GIVx7rKP5E4xgrN0g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204378; c=relaxed/simple; bh=V6rB6X6zScUDR5ZdGpz7JekGwYUymvuJHMd/vsgzPf4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=pKTMNP7HEGKifXQ4GFy3GnGNsho/mIVBfdcRUq3bY9e4ze4Ux0kTN/CRWQB5QeNAR9fwCpSugOFe69n4AiM7sHNUBimeqwWz/gGrtHIMlCTCUavSFD+wjn2rBBUFDwARW05l8p6omtRhoBGVvJ6ICm3W46qRATvqC3aGFs2dLCI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=fe2mDwwr; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="fe2mDwwr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rxV6wBgkb8XbAWIZpcfVuX0Sr2nAGWl/i2U6JJijt+vYUriRmIYweg/xHtSXnuXsfbwkHdWsXl69iw0UZ30zdbgUatOZTKPWmIr9HYwEVEyR4J5wGBp3J7L0JAjA8gERrnxk5N/3UYzsiuk5pouqUYynAgMPhHipD12uoPLQuLVdcnorP31CbqP2Buawit8DOOXu0mtLmH1Hnpn6DeUns30Y2CZPPbO+w4zjQIhkaePBNxSKYhTxwg1K5D/ArQld2p++a9JjoTaNjeCZskfkWyNlj1f/HgoGCh0Dj8nNzRliKua/g7Q2ndKnrJOfia9DwdfSYn9x9eW6fTrMOdhwoA== 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=EnYdIIrMzR44ZS7GZCp4+zuyz1qcDtthumzMnQHLfkI=; b=NjerSRF8buGAPOb870Xst3YW16esy3CoKguJvOOFyAgqEOPIsTiXLFPwG640bcnHV1Nhx2c3+yJaIT5qoD2KVAQUQLi8RSvqvN2dym+BmIyR0azBORWAO8GwI0RGMxMRb/43JgtJY3BQQmAaBESfb9QgvC1uJPMF1KnEQy1D7aEJSqSF5gfcUR/pC1zrDZG+0VgCZ+9eu0VQXsV399yyLUL2+fdzzVZSzm91tTTWDr0VU1gNFLSv9UH/ygIJyleLJ9hI6E9YPPtvEg+IWKtlIgdyXHUqGjTY6x6rEXBl94JcVJoQsT2dFjUkCcd6u0WN0aEbxze1frKZ1UBmqPBX/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EnYdIIrMzR44ZS7GZCp4+zuyz1qcDtthumzMnQHLfkI=; b=fe2mDwwrgN5bquNeoWuQ63KvNBkhVmsjtmk3RhnUrKFQJAojOJq/bE9CPZfTfhIjbpuG23BOkanXUYiqV44hOTcZc9FOHGJYFxioQdUUskrMbldY+Dx5ld1zHSCE/zbyiDceK7o5JhG8AiFGVpcPrL6IiIrVcCVIwyvyPRjVc45RYj7y8tNHPYI6wbkrxZZOpo0U+cRviK/Q34uxXRelNAcsqUXNonxFGrDlWg5Ksh7C5kiPo78OoILSTyEZ8QZncJHhT5lzLybtTEX0gNq3UI1Wsd8NnMDtIeLOTjG4oFoiXAz++HFPZH/KpyKi/czaXk0+BqsnWHxUXCIylLNzAg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:56 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:55 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:33 -0400 Subject: [PATCH v2 10/14] mm/page-flags: introduce folio_test_fs_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-10-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR01CA0151.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:7e::9) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 75e61fb7-4a23-406d-44df-08df0795acb1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: yOldFkLn/Z+43KEkuknqEympk2R6DYYP8SohyN7fvuQy+5ThZA6Y03XGetqx08uEioyEDD1QIh8aSVJaZZo3Rm038YMNcIwvTRmqKNFsapyPvv5IL+AHIlS5d6gakBqzX5VXArXQ82/VmaYOLRA+NVcUkX481k1QCuzeeoiM58/iHdxgzf/DxsWl9dql9P7etkcPiG9Y2ORNlxxxs8Nipxtel5gTG7o/DPETuO+MFLFCZII1cMNu04gMYpmUd5z9Gvu/gZsqgjsBypWTRcNKWrzqoBX6QRC9qUVNOa9d14nKJtfTl8pOIFuFXKpnzhKOapNZuqEX3CfvWfgOPvyxqSC5jtd+6evkVKnCxZq8j6BcscLuheDfu75FJ5b0c1lY+MMDPTxUSmnG6x9h97jhrQKJwN4Iba28CjvpQ2VjaPtXDkStIMaKw5qRI5QkXXkjAfaj3A7dXtGPTE9ztqTJbVnQ9Q9HjD6XRRoaFXt3VeO/EB7ijK+dW2A4nIWpvT3Gfk0AmXbqBpROHXMNQtQSXCT55svsXLnI6SK72rs2o3yqgjLSRGtn5YG3qGVijHe73N5ALZ72i9Ug9ImmTuHACqbLCGhIuWusO0/Jz0z1vBRDcHEA/iCFxvXKki2E6jSmg89nXvEY5D1pZ+9BpEhsM5n+7gvR9jldKxTH0YNMirplKr7CqFGrqroIeraKhEgIpfEw4ciLxCBTOHLFZHBBJg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WjFzVGpQTXZFd05QUGpCS2NGc3F2aWdvUkpaazFhTGZsSktvRklLNG9jS0NT?= =?utf-8?B?d3hPdGVTdit3ajh3eWNNRVpKOXZuc1gzZTc4akNReFY5UTMrUGZVZktoUVpC?= =?utf-8?B?YXFYbmlrT2pSSmI3T2c0a3VVNkZ0SzZyRHY0dFFvZFlzcHN4Q0pnVVhPVlhw?= =?utf-8?B?MVhtaVd4VnlyNWRHeTlIUmRwQys0bS9UNEtlRGZiMVZGZWw4VkEzTm8ySVAw?= =?utf-8?B?N24wUkJ2b2MxZGMwdEVqOEZyYmdkb2ZpTHZGeTNUUDdZaE9SVjM5MUwzNHkv?= =?utf-8?B?L3lJWTNkcUYwa0tMTml3SXMrVDhPZGdxTmdOQ3hCK1hvZXl5RnJIM3paRXY1?= =?utf-8?B?Y3Q3TGJiNG15NmpPbFZERzkwUWNiTkZxdE9PZU1kdEFrT2hRZnJSN1NTaDVx?= =?utf-8?B?ZVc0Y2NRSW9ZOEx4cWFjNDRhc3MxQWY3YlRhNTBReC9tWDhwS0QrYTdiOWhn?= =?utf-8?B?dlJNRDFxa2d4S1B3TTZGVFZ4Q2hxeWpZZ3ppVUs5bklURmRUVFlhamVJRDRI?= =?utf-8?B?QTNhTUhCZHVWMUxxblZUZ2NnaEhRclZPL1ZQWFZEQnVKQVFhaEJ0WUxBNTNm?= =?utf-8?B?L2tLN1NWWGNxTDFiQkk1TnNwVFo0NVVBT2ZFQ2dNZHdtWGk1OE80RVR2cEFa?= =?utf-8?B?TkdtWStoSEJlZDA5NWZIUXdESjU3Uk1DYk1LclkyaURkMG56bjBGOHRjb0RC?= =?utf-8?B?eWJESzhkUGhDaFZFUjYxYkZLc0pzZWlvQ0lvYjBUWGEzcVhHd2VkbkRTYllG?= =?utf-8?B?cEw0cWN5MVk4L0RHRU5vbXp0ODJDNnlteGxOQmVtOGRvVEJqUTVPSUw3cnl6?= =?utf-8?B?WDZUU3lrdG1temZRSVF3OEx5YXBaU3RFRk9ySE4xUGtWS25YMGpFbEVacG9a?= =?utf-8?B?blZGT2NKZ2dUYVFLOHpLWWFXTmZPSkZPeHVsK0RvK0hsT3lCMngvTTdtNWs5?= =?utf-8?B?VE90WU1RTVR6YlhvbmZLR0QvNTFPYzk5NDZBT3g2aUMwTmlsdkFaMUJLQk1E?= =?utf-8?B?YmlCTzg3MmNhM3VDTml4K3owSk1GOU4wTkVwbEVDVk5aTTJsKy84Nk1CYklk?= =?utf-8?B?d0x1dWJCQUxvWEYraUwvRG1NR05jKzRFQ2dBZzF0UkNRM0V3bzN4MGU3Wk1D?= =?utf-8?B?cFJUUytWSUdYV0FqMS9qa0p4TzBEb1pjeWFiNC9QOEllWHRldEZhMlhMUUly?= =?utf-8?B?TldDb1Z2dXRSaFhLV1N3b3B6RzM2aGxrR3FYcFcvMk5remhjbXNteWQySmRh?= =?utf-8?B?Qy82eXI1K2o1ZE5EY1oyQVJtMUgyS3Z3V3ZKa00wNlZqSFFWekpGTHZXYThV?= =?utf-8?B?YmRVTTkxaG5rWSt3Nkd2RE5BcDB4UkFZNUJFRGFKc09EZEF2OWV2OEFCbFlW?= =?utf-8?B?SjZMODU2MDdKL1NaOVhaTjc0OE9LZm9ZSkQybWJrcWdITEUrNEZVUmRwazlZ?= =?utf-8?B?RHpGM3RLMlZvUSsyZnhqbEJjUHcwQUY4bVU4RElZeWFqdnBNc01CaVFEQm9H?= =?utf-8?B?TkVqWDRrclZnVDduTjg3M01aelB2elVZYXVtY2dYR0FwM215ak1XQVdwaktF?= =?utf-8?B?TTBsblhiSVZWYy9LNnRXVmpxWThGSzdXVjRmanBKS1FDMGhyMlFVVkpqU3FT?= =?utf-8?B?RUpoY1VhQnc5YmhmTTRTNEYyLy9TbUk4UzROWmRJaUtxT1hyZTQ4OVZ0Sjgx?= =?utf-8?B?QTNucXJyZVhyUlI2SDVTVWlmMllMOWxabXU0Z0ZUYXppSUpHNU9IWHEzblBi?= =?utf-8?B?NjMrb0E0amY0YmVnVHRjdVBhTzc3a0JXMU1uU3M0UndXeXZIVU9uMXZxRzQr?= =?utf-8?B?OGNYckVxSk9scWlTN3BVUEU2ZTRhZWo0Q1BXbStPQ2hnYjBWdjdRdS9vU0lx?= =?utf-8?B?bGM3SkQ1NVJHekkycy9lUERzSHlpSXFtSWtqeUlKL0psdzRPZ3pLd2lyY0JH?= =?utf-8?B?VUM4bnZKN1BqdnRQbHhDd0FGWkVFNGFnbjZsN3JuU0pJME94b1NSMUVuU2dN?= =?utf-8?B?S1l4SUN6SThPV09QajZpWWpMZXdMUUJGVVRndno5UldPSVRQTTRsRDBiTGFG?= =?utf-8?B?Z1ZYb2Y5Sjc1dmVXRjdxVEdPekVxVDJacVI0Zy9NT3pkdVBNelVsc3FBZ3NE?= =?utf-8?B?T1c0NlB0Q1pTRW45a3M0dEhGL1ZXSnBIZktBd1hLbVN2ZjFFYTJaM2xQTFJj?= =?utf-8?B?WndoQklpNmNhU2JUQTRVeWQvclJjNDBMN1pFSDl2aFVLYkZkM1RKYTRaVmpU?= =?utf-8?B?RGNJM1gxOWMxZm1ySzVoY2ZIdHBTTmJ6Nm4wK3BwQTVGWXVsYjlWMmtlSWhu?= =?utf-8?Q?N+0g+aWd10Z6Jo41ND?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75e61fb7-4a23-406d-44df-08df0795acb1 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:54.0715 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: naGLR2muBpOyBdciGV0Dh8HO4mV6oQy0x4Py+p6TVTL56FEGSPJ4Vwu8IvZTNiBK X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 folio_test_fs_private() wraps folio->private !=3D NULL check and excludes swapcache and hugetlb folios, since swapcache uses swp_entry_t overlapping with folio->private and hugetlb sets its own flags in folio->private. Replace open code with the helper, since core MM does this check frequently. No functional change intended. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Andrew Morton To: David Hildenbrand To: Steven Rostedt To: Masami Hiramatsu To: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Mathieu Desnoyers Cc: Zi Yan Cc: Baolin Wang Cc: Nico Pache Cc: Ryan Roberts Cc: Dev Jain Cc: Barry Song Cc: Lance Yang Cc: Usama Arif Cc: Matthew Brost Cc: Joshua Hahn Cc: Rakie Kim Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-trace-kernel@vger.kernel.org --- include/linux/mm.h | 4 +--- include/linux/page-flags.h | 21 ++++++++++++++++++--- include/trace/events/pagemap.h | 4 +--- mm/huge_memory.c | 4 +--- mm/migrate.c | 3 +-- mm/page-writeback.c | 5 +---- mm/vmscan.c | 3 +-- 7 files changed, 24 insertions(+), 20 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 786f8a47cea6d..b5b60f3ad58dc 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3071,9 +3071,7 @@ static inline int folio_expected_ref_count(const stru= ct folio *folio) * One reference from filesystem private data. * Use data_race() since folio might not be locked. */ - ref_count +=3D data_race(folio_test_private(folio)) && - !folio_test_hugetlb(folio) && - !folio_test_swapcache(folio); + ref_count +=3D data_race(folio_test_fs_private(folio)); } =20 /* One reference per page table mapping. */ diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index ee7abb3000c11..9b585e68127a2 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -1210,6 +1210,23 @@ static __always_inline void __ClearPageAnonExclusive= (struct page *page) (0xffUL /* order */ | 1UL << PG_has_hwpoisoned | \ 1UL << PG_large_rmappable | 1UL << PG_partially_mapped) =20 +/** + * folio_test_fs_private - check if the folio has filesystem private data + * @folio: The folio to check. + * + * Use this in code that may encounter swapcache or hugetlb folios but only + * wants to detect filesystem private data. Swapcache stores swp_entry_t in + * folio->swap, a union with folio->private, and hugetlb stores its own fl= ags + * in folio->private; both are excluded. + * + * Return: true if folio->private is set and the folio is neither swapcache + * nor hugetlb. + */ +static inline bool folio_test_fs_private(const struct folio *folio) +{ + return folio_test_private(folio) && !folio_test_swapcache(folio) && + !folio_test_hugetlb(folio); +} /** * folio_has_private - Determine if folio has private stuff * @folio: The folio to be checked @@ -1219,9 +1236,7 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) */ static inline int folio_has_private(const struct folio *folio) { - return (!!folio->private && !folio_test_swapcache(folio) && - !folio_test_hugetlb(folio)) || - folio_test_private_2(folio); + return folio_test_fs_private(folio) || folio_test_private_2(folio); } =20 #undef PF_ANY diff --git a/include/trace/events/pagemap.h b/include/trace/events/pagemap.h index fb9abec40ec79..5425ef7bbae6e 100644 --- a/include/trace/events/pagemap.h +++ b/include/trace/events/pagemap.h @@ -22,9 +22,7 @@ (folio_test_swapcache(folio) ? PAGEMAP_SWAPCACHE : 0) | \ (folio_test_swapbacked(folio) ? PAGEMAP_SWAPBACKED : 0) | \ (folio_test_mappedtodisk(folio) ? PAGEMAP_MAPPEDDISK : 0) | \ - (folio_test_private(folio) && \ - !folio_test_swapcache(folio) && \ - !folio_test_hugetlb(folio) ? PAGEMAP_BUFFERS : 0) \ + (folio_test_fs_private(folio) ? PAGEMAP_BUFFERS : 0) \ ) =20 TRACE_EVENT(mm_lru_insertion, diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 546b37ccce37f..d085fd09466ef 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4810,9 +4810,7 @@ static int split_huge_pages_pid(int pid, unsigned lon= g vaddr_start, * will try to drop it before split and then check if the folio * can be split or not. So skip the check here. */ - if (!(folio_test_private(folio) && - !folio_test_swapcache(folio) && - !folio_test_hugetlb(folio)) && + if (!folio_test_fs_private(folio) && folio_expected_ref_count(folio) !=3D folio_ref_count(folio)) goto next; =20 diff --git a/mm/migrate.c b/mm/migrate.c index f14e7bfee14bd..666a7365e16e8 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1327,8 +1327,7 @@ static int migrate_folio_unmap(new_folio_t get_new_fo= lio, * free the metadata, so the page can be freed. */ if (!src->mapping) { - if (folio_test_private(src) && !folio_test_swapcache(src) && - !folio_test_hugetlb(src)) { + if (folio_test_fs_private(src)) { try_to_free_buffers(src); goto out; } diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 4022d6c381896..e03a1c46bce01 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2705,10 +2705,7 @@ bool filemap_dirty_folio(struct address_space *mappi= ng, struct folio *folio) if (folio_test_set_dirty(folio)) return false; =20 - __folio_mark_dirty(folio, mapping, - !(folio_test_private(folio) && - !folio_test_swapcache(folio) && - !folio_test_hugetlb(folio))); + __folio_mark_dirty(folio, mapping, !folio_test_fs_private(folio)); =20 if (mapping->host) { /* !PageAnon && !swapper_space */ diff --git a/mm/vmscan.c b/mm/vmscan.c index ac275eec086b9..29051c0f89881 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -955,8 +955,7 @@ static void folio_check_dirty_writeback(struct folio *f= olio, *writeback =3D folio_test_writeback(folio); =20 /* Verify dirty/writeback state if the filesystem supports it */ - if (!(folio_test_private(folio) && !folio_test_swapcache(folio) && - !folio_test_hugetlb(folio))) + if (!folio_test_fs_private(folio)) return; =20 mapping =3D folio_mapping(folio); --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011032.outbound.protection.outlook.com [52.101.52.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 0ECA537646A; Mon, 31 Aug 2026 19:26:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204375; cv=fail; b=YaY/n2FfDTWs6ByVpGUUjim1iLPm8VhLhqEd5+/LCw8Ae14riVV9PNSpZU9qch7uWyvnCaCSdndmzyzy3X0R9/BH2Hfsu3QfJDV8oavoqFd0C5qzu/StBWyWCMX0Occ+4DDrZaPkSXLfONWA4nMNJaOgmU4xxt9OMEYdcms+0Nc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204375; c=relaxed/simple; bh=GG201L87hQJ280mXMZM4SIN3P7elBV5y6+OZrp86DSU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=I6MHruYU95rrdE4/HfFdM3il5sZL8vi64jP/UOt1RICVnV/vKig7Rw8P2BYymUDSNHVRD59K2+3L4CkjHuZ8hyKD+SiLr96yNlXYaCunrM5iIhW1SC4TLpEVXe/3wV9lgwEg/NTsbhf5tLpjtRNNXqE3O4ZiI5DF75CBlGGzXUE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=P1GqHT8+; arc=fail smtp.client-ip=52.101.52.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="P1GqHT8+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZfqXnHCWKmHVY3K6+QHr5Nvkrdq91IK13mjIO80ckH/5FxFx0nL/LOsakZojnBj+oyIdhQukDmbgSMPljF/DnxXnUyuKxvO34D3LfUtqwCWLGrxJKR+Jbxfo+NFSOvjUt+yjKBfHsR5Iv57NO6XQmfsoOFIqsN3eSppJ4+GSBGvc+TlojoCF4/cZ+Ie82hmu05feF2j3y6uIsBETuC8U536Qokgi2uSdcuHqB+tRbNiYlU4jEvwh1JcYRjF1P+lUrc/dDDSC6ibL3Ar69xjez5VtcK1r7o/LPq60jx2H4VF9KggbQnzlDGg9n5P+M2H6YERxQXnTetY0v6HREBIgbA== 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=lih/fizY29lg92KpW0HpyAlHrKLcCx8Ux2zDreUbk98=; b=eKMYxoDkD7/tyOKQDUe10dzGkTddhadiwbx/LQ4Tz03GXytTE8SktaCBDgduJN+PR2xlgLTqdpcLeWwYV779Nz7Pmm50xcO9pk0qPBu1XtKIhNKhcb+0ylCqImH2q93aK6HJQuCcERUKqmlZ6aT5hkuzf1q7vaqNodwlty1QTtGUwOORNswHW/8DzQXcGWHYimBf2iuLFJbNxMYZ+fZT+OBai1owR15NOlr7EB+XCWf6d98JtAnp7v2hsNYBPLYdiPBTuUZ42Zd0oMrqn+egH/8ctw0VPePoLe6JwVXb8+rDtca8JZ6kuhyckosbfz77QmWVPf7vAEjP98eC6wpoEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lih/fizY29lg92KpW0HpyAlHrKLcCx8Ux2zDreUbk98=; b=P1GqHT8+ovYclNSRLhR1AQ4I+iZP/M0g/oZf7f0hho3vp1v3GGntzDxU34wEh8V3uKhsPWbWORPCnUZTlxt0jQdBl3SzsGix07ppY3BTSXisnEk/0V72phebQlSxCCiD5GSmCYTpCwpLvbNX8R+pLlH13MKhLjVdnVpOY7v74ft7iBCVGk7YbBGPf1VWxiNnFre6H2zMnrxUPQJp6qeyPv/LsSDpDIibxH3FukaZIAky2m7d6yngmAti6Uy5ipUUEaifm1+2FTUEzTI85TpxjqRrnaPef70Dl3e6G52v6JQA9VNDe8tfbWhWif9SLuOoYEPXtQVUyuGbHLT9qveX5Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SA1PR12MB8742.namprd12.prod.outlook.com (2603:10b6:806:373::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Mon, 31 Aug 2026 19:25:56 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:56 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:34 -0400 Subject: [PATCH v2 11/14] treewide: remove folio_set/clear_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-11-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Trond Myklebust , Anna Schumaker , Jan Kara , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: BL1PR13CA0343.namprd13.prod.outlook.com (2603:10b6:208:2c6::18) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SA1PR12MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: fd805606-a531-462d-2780-08df0795ad40 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|23010399003|56012099006|10067099003|11063799006|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: cDaBEllFgJq3CtJDDXL80r5x9w20y8YQAXveq0BL1V/ibh3Qc/Flf8EZ2kbpOmv2GDJ6HzmCzFCJu7cghbVP74RqgvYLnA7bptLKGgQAgqsPWp+Dt8T1ZHuA97cPCmOg+hbc40FYjlU9BryqJ3OsjIw/p3Wk8bxkIWSMYEdT0YRQV61qQOODJ53DeOGpiEr6ORSX5jTntitLs9BQsBiRiXHNKZIGQk13UPmJLJgUq9hrT5diBCvpiyNDya5n3x75TTv5z3olBhoGPKqKsBfhyV+2VdRHYRmbYYT8NRgvairiDSMZMmmz+F3QAnRyEKcBXvskhoDNV/jNnHa7XdrzQkwInK4U+cUHYEMx+pLIFj2cQ761E6C3GXAdXQSWahlVG4aKD9Qx3cxg5np60yuuWuXk6rcWkEn5FN0vI5enOJ2vACK+71oyoDE64bBKl5QYBbn1RBb1xZKRGzW6CTFe8XQ/snj5WG0p5D/eHdVb0MMuUatDhU4sevZLNiOPuCj9Q/7VKKWpStvv+lh8iXxrUV9n2MIaZ7E8spgxkRfwbMO+onytdDINX/Sl8eJ69hlMQ71lDMV1B9EYAAYrR3O3G1lB54pdiNEGKtWk7+b6m8bI41SnxkW/q+4+qaXdVvrpq+VQOyvHcTQrEXwb1b+qhK26FymqqYCUjpmXXyCeuvNMexDOFKvSPHn1UaDHshncW2NuiLAUN8eOKNrKmb9Hww== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(23010399003)(56012099006)(10067099003)(11063799006)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEZYRmV5dWtRMTVsc0tIYnNpNWNneWpTdmErdDFqQXFteXp6REIvbEx1N0t2?= =?utf-8?B?aW9BQXNBa0xHNUdyV0R6VU1yZnplSUVraVpES2ZLeVUyamRxb1NaOWFja3lI?= =?utf-8?B?aWNNYkFZR3RoK2IvUitrTnNHd0Z4cWd4eTY1VVJvNFprNTlMTWNDRHhoZ2Y3?= =?utf-8?B?WnhxMDRtWE1ZQUhOVXo4S3NndGRncWpQWE9BdHBWRExTRHRCTFlGQjk0dG5V?= =?utf-8?B?SmE2VDRMQmwwMXJGK1pZMHlHa0RtSkZrd3orVEJDRWM3SzhrUmtmbmF3aVlM?= =?utf-8?B?enlCM1RTck5mbmpPa29OdDE4cTlGSWZCWDVnVFlGcG80WktHQlUwb1JBMHJI?= =?utf-8?B?ZVFqWjVIV3JEbzA2NkViRHUzaGVIb1JDcElseWlucHIvUEJYK2tlTnRMOVl2?= =?utf-8?B?SWI1TisvYTBUZnlBN1YvR1ZmV0VnRytBRXA2YjBnYjZJOFNleDlKRmwrSDJt?= =?utf-8?B?eG9wTnhiaGFFdHR5WkZYS3BSUURTVjRCeGxJallBMFFrMEtyV0VkODJYa1VX?= =?utf-8?B?dWM0SXRFTmNIZnJ6TWM5Zk1jNzVUcUh5VFBTcHRVYllYeDUvcGUxMkVleWtT?= =?utf-8?B?WjJaU1FiRG4vT0dwR3ErSlFXdkdNY2cwS1gyMzFJRk9KcFlCdWRrUjR1YXlS?= =?utf-8?B?c0k4TFlSMm5TVlR2NVpXYW5sbjRDV2xPVnFQeWZPYU9UL3oyOGE5K3Ewd2N4?= =?utf-8?B?ZDBTQS8rUHF3T2NlRVg2R3pWazJGVmt2eHZyaWJXZGVVOHU1UGZwYnNLMTcx?= =?utf-8?B?di9ENFo1M2hpOFFCOS9tcTZqdXpmVFdlL3pHaXEydFFsTVR1bkI2VktRYUNX?= =?utf-8?B?c2dsZktNRm9oS1dHY2FUcFdUaGhNRVJlZ3UwTzRyZFVMcmUzWTY0U2R5MjNl?= =?utf-8?B?a21UOXdOdThuQ3ovbmpzWkpMQ1AzamZyN29MY0txTmV5OUlPRDd5N1FIR01Y?= =?utf-8?B?bmpRaFZlbFpaVW1qL2ZFOWw0QkN5MmcwN3p4ODhiUWxvemVGQkYzU1FWc0tE?= =?utf-8?B?R21HcXVsVE1DRWpIcm54aHZ4cVorMWtTOVNoZ1UraFVXV04wYWpockZZcW5y?= =?utf-8?B?NytGVDNIQUtOSWo2YzlKc3V3WkZHL3N0akljT3R0UjFycDZhVWtRQWxSdzlw?= =?utf-8?B?aXVkVHpNT3dsVy91L1JOVlNndi85Z3FPUGQ5dDdjZ1JZR1pqUkpFZXVUWjkr?= =?utf-8?B?U3gzS2tTSzZ1NTJJeXBacXlsVWZ4YnY2WFVvY2QrNld3YzY5Wm5BWVhTbFll?= =?utf-8?B?cXFJTVViRml6TkVyZjNZQ1hRRGZwbXNvbVBLOEEwaVBSQ0wxU29yWVBOcG1G?= =?utf-8?B?TkFOYkVxUy9yNk5jekhPZFJPanVHcTV6c0VGY1oxcEtoeG02TWNCZVZDQkJz?= =?utf-8?B?NEhhY3pBbXVCV0IzQXlnMlIzSG56Tm5xUVlSK2c5bEQ3TDdNYlZnU2ZReEI5?= =?utf-8?B?djh0QTZCOExZZVFKcjJubFJ3VFZSMjhjcHgwNWo0UFpRR2phSkszSjdlc0RO?= =?utf-8?B?M0NOb3hIdG43T2pPMDhwdEdreTJGTG5YYi9UMnF4aUYzSDVMQTg3OXhvclc0?= =?utf-8?B?Rml1czdCTFJscUdDS0ZORkh2VHQva1c5MTIraUF6R256N0dZZUdpczhseUIw?= =?utf-8?B?eHhYZnBaZCtxN1FDcGdaNDhRM1RNcmxuWnplbVVBa3pySTRNN09oNUxsL3N6?= =?utf-8?B?VlVOaC9kZ09JUkRBWStqaUV4cGtYNCtFYTVpUmUyb1NWMC9WSjh4VnQ5MVo4?= =?utf-8?B?OTNFRVM1Smp2OG82a2ZFbjRhUmlEL2l2Vkl2aWZCQ1gzbGhYaXAvaUdGMHFh?= =?utf-8?B?VTlIUnFyL1Z2dWNPVVpKblpqNlFFYjNtWWNCRzJMNlZpRUNkN3g1bnJDWGZL?= =?utf-8?B?SjJXMWJvVVRmWU9MTFFaaUVPTmlteC9tTzZYeHpTdkd6Y3BSOEUvQjhON0RJ?= =?utf-8?B?UzZlTWZZMU5XNkxmNHp2NnUxTmMrZitBRVduK2t2dEdITFByUG95N0VzZEY4?= =?utf-8?B?eHBoa1cwZFE2ZTNVS1JtMjdzYXBTT3ZUY21rWENseS9abERrWFlqWEozaXEv?= =?utf-8?B?eUZCTlhQRE9WaVpqaGVjSmZoTEhma3ZlRnN3WEt6NHV4V3U0TGVxT2pITlBQ?= =?utf-8?B?VkszNjZQVHY2QWRSNXFuSUt1c2tnUWNhNDFyYmhsR2U4S2MxYW5iYTVQc0ly?= =?utf-8?B?bkZlMTVOQnVITzhtUGJndnoybVdHc0ZlcFR2ZFY4SHJqNmpYSlJwV0VPTEly?= =?utf-8?B?NUFlVVQzYjl5alJyZm1YbGNHemlyRjM3WTN4Tm5yMzRScDFCQm9tNWlsdnJ4?= =?utf-8?Q?VQPdk4lTA4J3YCoIcz?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd805606-a531-462d-2780-08df0795ad40 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:55.0143 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dK4lbrei4QfZuS+CY2q9IzvnaFO/nAnboeNBmCq7WFWkKmG+4C4IO07a7bw89HDN X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8742 They are no-ops now. Remove them. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Trond Myklebust To: Anna Schumaker To: "Matthew Wilcox (Oracle)" To: Jan Kara To: Andrew Morton To: David Hildenbrand Cc: Zi Yan Cc: Matthew Brost Cc: Joshua Hahn Cc: Rakie Kim Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: linux-nfs@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org --- fs/nfs/write.c | 2 -- include/linux/pagemap.h | 4 +--- mm/migrate.c | 1 - 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 623e7ef1f73d5..b6967b5286691 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -717,7 +717,6 @@ static void nfs_inode_add_request(struct nfs_page *req) nfs_lock_request(req); spin_lock(&mapping->i_private_lock); set_bit(PG_MAPPED, &req->wb_flags); - folio_set_private(folio); folio->private =3D req; spin_unlock(&mapping->i_private_lock); atomic_long_inc(&nfsi->nrequests); @@ -745,7 +744,6 @@ static void nfs_inode_remove_request(struct nfs_page *r= eq) =20 spin_lock(&mapping->i_private_lock); folio->private =3D NULL; - folio_clear_private(folio); clear_bit(PG_MAPPED, &req->wb_head->wb_flags); spin_unlock(&mapping->i_private_lock); =20 diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 546e987d5cda7..88b4c92b43575 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -594,7 +594,6 @@ static inline void folio_attach_private(struct folio *f= olio, void *data) { folio_get(folio); folio->private =3D data; - folio_set_private(folio); } =20 /** @@ -629,9 +628,8 @@ static inline void *folio_detach_private(struct folio *= folio) { void *data =3D folio_get_private(folio); =20 - if (!folio_test_private(folio)) + if (!data) return NULL; - folio_clear_private(folio); folio->private =3D NULL; folio_put(folio); =20 diff --git a/mm/migrate.c b/mm/migrate.c index 666a7365e16e8..5ca1548ca6d61 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -835,7 +835,6 @@ void folio_migrate_flags(struct folio *newfolio, struct= folio *folio) */ if (folio_test_swapcache(folio)) folio_clear_swapcache(folio); - folio_clear_private(folio); =20 /* page->private contains hugetlb specific flags */ if (!folio_test_hugetlb(folio)) --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012005.outbound.protection.outlook.com [40.107.200.5]) (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 B498736F90A; Mon, 31 Aug 2026 19:26:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204364; cv=fail; b=qG23Yj5cXKyMuAJcLePrlRMDCxsE+RvxdzqApD/PYiFsUIEyu6hG1L7n5MPEtXUQEo2sf25BaHVp/ovFXQbktCIVSxaVeaTrcmB4HuNXBZfiCkcKN9JI21q7Efp/kEsvKfkqtjoR1AOjopXKF3A6sJnE3aAQ2fQiGWvYth17n6s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204364; c=relaxed/simple; bh=aK9mOhpFt7XZggxW22GEovJdLOclN2q4+ttFGV73rxM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rP3DIedcCzYoap/cpVCRpvlUC/h+lcDD114zqmMIk7VsbjWH9ebAZRW90/cTkj33jUjh07WjwbrapuKhDFgIWS/fKayGI1+qvMwsCZ2EmyrP0Tcd82CjihCv/37FGTAAl6+d5I3BJtvnhA7SovBlZ/i4vD0kWUfv9rlp4Wktgj8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=VUsQilxe; arc=fail smtp.client-ip=40.107.200.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="VUsQilxe" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q4rsVKKlHfXh3l4lMZIUOgJlCbzBMk8CaSmABQHHUUg0oS03t4zSd986OjGRr/83HHbHzYdmfYAfCOk9wPgmSePf+59IckyOaWNIDDOy7sIZg89xfgm+SCO7mq3ZZtff1dJrzWz29NwwzCLTqDaLfnC9A9IEZzG4ItHBFNbAIPahWtEhySkA13780r6eFGQOs5F4y21kQ4FSNT0RWunzCtwoWZe0+WDP90HpseWdrswC5OnawDbw5Z/8zPtXDqVEb1DhtN2KmrNPo+y5TSLyWAmzuMBclII9nTFD51MyuV2x7qWuEJUnVoFZxu4+rusoWCDUnE1XeOLVdH+ttGwFHA== 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=PtBmGbUOYFH+i2ZpQMpglFnrKDm5AoKmlhUbiDdRNIM=; b=c1pF6WlHeUOZjvTMZ2a9dKoW4IuFLkxUKxs17zLhHkhNV7OBdpoKZAvsh3aIWz6iD5h3rWOEI7Lv/agoHtayIUFdSRv7q0UiPsXCkXKlUauGc7qYkhPBn7CSHceG46w/jPWTxqB4fgUTnxl5KMdk8UQDuNO8ouGwy7XddGddJQB3HA/JJoW0mtkJsWJULkGh+ONPJHWaFsCNW8efkG3Hj1mefD60YL5UMT4s1yTJMfaOPkhJEQ+TNe4E0tj2YAySMGYwCzX+iiE8gXP95+fNUhPqkMrUy2bFc+wqp5bfLNAamFVYZXM6v/K4ZRVKZs1HArx6SN25MxQp+hVUYvWbUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PtBmGbUOYFH+i2ZpQMpglFnrKDm5AoKmlhUbiDdRNIM=; b=VUsQilxeQ3CeDti/jJ9ypcIEl9HoIaLBDvQyVi1yc6wnS5BujojGLUK89fkUjtkJTlWxYdZuZh1tpOQSrn2DVhyzzkFFqcUKy2sbap0WT0tMKpuGPHbWkYcFmlU5SUcqcU7wWV8xInvYvBbVBeGb1AeolcHInStGbcEG3AROrgeKJgQeIC+5Uy05XcK74NR1JPvsUYqq8RqNFF8BLu55Wr1YP8fjLUFpUYbrOlVGcXZpnd2X/JxeL2DzXwxQbemZacobPGLlWD+FnE7lSHOhsMUsEe8rPeEsvcyl6HdhA6EWNapTwtQtsa//zf4mKZgK6tIDCeb7X20azJIHPmjSZA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SJ5PPF0C60B25BF.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::98a) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 19:25:57 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:57 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:35 -0400 Subject: [PATCH v2 12/14] treewide: replace PagePrivate() with page_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-12-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Song Liu , Yu Kuai , Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Li Nan , Xiao Ni , linux-raid@vger.kernel.org, ceph-devel@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR0101CA0310.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6c::18) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SJ5PPF0C60B25BF:EE_ X-MS-Office365-Filtering-Correlation-Id: 2550fb1c-0298-4b3d-e2ff-08df0795ae4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|7416014|376014|18002099003|22082099003|56012099006|11063799006|10067099003|921020; X-Microsoft-Antispam-Message-Info: JH3lEVF9GXgssAzehBT3UTWIKt4T8maLh+X5fH/4Sa4+3ICUZG+JvlNdorOcUJy+OxL230VySQnWB/yy/9D2wET1VNaR2BZHWdqPq7PdAPb7mnH12U2GmSvEbbHhYGBxpMEr1jfHiopqblgeKofUEUnkP5h1Kjll4ZhfisJnKU0C4Bis4Gxt72kUEQgCHb1/XDGHWqvK/lgBU+nL6apX8y427SkeC2XKFzAWTj5MgkCWhsPLO0Tzk5lMm53cMvH4p07mszjCVb59Qgr/sHLZVWjsevf65Q55sOyZ7Bjp02FZv0jsQGyjW+dn7DCbeVgTlo/UJIcFWxNYI4pkafdR2xkVnEUXzENQ1a0mI1V8LqaiQhAYPUKUiXB5A84JwO3l4DWUT+7XZi618+E944lFoDuenFXyldjf20SIR8axRA8frW7Rp6Js3G8KNCsvVRvtwK2l/8vaGgmUBvanbmqRqpsRwq6dyJhgFuskpEUlmnQbHiyAn9qZzZOqR5050VKDMsknAJAnWr6muVEB0+d83tBlx2KBtXt1LGqaMQP/NTeX6GtQBsJF4Lq3exSuW20S8m9+mmc1PSaDXeMgZO8WWqMvOAwu+PtnoLywswaeZoNyJeO6jVDEfVihL16KWKaNzFTVE+TeGMGT2x9hxG3RKKqcXZd/hqhVwHVp9mdAjdKmsggHtp3ZCNbSFCvfcJHzjx18V2GxshChdGrp91efqQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(7416014)(376014)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L2c3TkxIZ3N2alRhemJWK3EwYkpkelF3Z0xyb2NyUUh1Nm0wQ0czb2pHbTJ5?= =?utf-8?B?S2pzRWFWRk5pRXBsR254ZEh2d3ZKR09hUWJCZ0puUENNaFBzY2JuWjNWZklT?= =?utf-8?B?RjRiK1IyaEM3Rit3cGpwZDRjOTZUSVdCeTFHMGZHNVRXMThROEIyZEwvekRI?= =?utf-8?B?SG9Sd28wajBRQlpEVnNvb004Vms5VC94amhBcC9BSTlUM1gvMy9IdGlHb0U1?= =?utf-8?B?d2UzOEtSQzg3cFZ2WjEwNGhDQ1dic0VETkFISjZaK0JOSm1RNEdFZjlCK1pR?= =?utf-8?B?SUYvMW5TZkFDMStLaTNJalpSUVZhRUIxV2RFWkRJbkxRNHVObW0xcS9KcE1l?= =?utf-8?B?K3J0MVR5dzA4NnQwUlV5NG85QUUvc010V0JHdXlOTm1VV3FiOXlKSG01YmVo?= =?utf-8?B?SVJqNDRMSUhnQ1RGcXBMdHdnV0w5TzEyb2ZVTG9zZmZzT2V6a3d6REowdldX?= =?utf-8?B?UFM4d3NaM0IvdWZ6cC85ZWtJUDJNTmo4ZllWVkNseGVqZUFuRWNEMnVsSmdI?= =?utf-8?B?a3gxbm94d3VJZkV0RmMwajVaMjQ0RU9INElBaUlnRnFSc0N5YkdyR284YWt3?= =?utf-8?B?Y1NKVnFNcnFweGRYZjlreHVON1g2dDNydVdBQy83T2VEa1MrekdCWENlWXVC?= =?utf-8?B?dXhLMnNQWTJjaldWMy95RnBVL09CZk1ZUmVRSnRnQUhjVU93RUl6VXpZQi83?= =?utf-8?B?eUxyVjkwRTNQdHNpY21zMFgyaStyRjBhV0NkV3dNMndTOFRsa2pVYVVyRnhz?= =?utf-8?B?OTFSZXpNWk13NlhaQStTME5RUTB5ampuYnRLYWJra3hoa1UzQUR3QTJuTmV2?= =?utf-8?B?KzB0bnMweXVPcG03NUZPMFN4Q04vZldBUTV1TnU4MERYVUdsL3poQjh3RS8r?= =?utf-8?B?dUdyZkd6VitMWHQ0Vmo0N3FncFpvRzQ2S0U3SW5zbG9sRVJLRkI3blVWTFBn?= =?utf-8?B?SjZoVXVlTjdxa0FkMEJKeDhIZ1QxWXVjcEFJbzh4YXFsOUhRZGo2L1V1K1Vu?= =?utf-8?B?c2wrRTJ1cWF3SEVNR21TS205WFhrK1d6NGRIa09zY2FwLy9WK0xNVjhLaEFa?= =?utf-8?B?Q2prNlJSMSs0Mk83dlZ4NDdza3M2MUN5dmtReUVjR1ZQWHFLVitrY1U4Nkta?= =?utf-8?B?UHA1S1lOMEJzMjl2ZGZkMkhXVTA2QlBKUHlhMEpaUjJIb2tDcEJwNVQxbjc2?= =?utf-8?B?VkxNSHQzUGZwY2oxcTFOa0JhQ3RiVFdQVWNWemg5a0JRYnhPNHZZbWt2MTlm?= =?utf-8?B?RHphMXdNL0grRmJvTUN0UGNOUE9rNnlXNnpmTXcwSzFXS3dSanBmam8xWmlu?= =?utf-8?B?WUxiUHkvdGYwMS83VGYyaVpCcGxDaGxVNkNZS3Y4b294OGFXb2Z4bVpQQUJq?= =?utf-8?B?Y1VweXBNVlJXTXoxMFdOS2FodHdrSTEwdkZqeGtkSVhENTkvQ2RBaGtJM2d2?= =?utf-8?B?MnNzVkdtMUhnNkVGZmE1UmpDQlZrUkwrZElnOUR4d04rOXJjTnlVWXJGdzNv?= =?utf-8?B?eWhwaVQ5N29hNm1wUlM2bm5adlFZbmNYQm5OOGQwV3pIRDEzVTJlbjE3eXhR?= =?utf-8?B?LzFGRkUzcUlnVVRiVDJSeHdlM3ZkS2YxelpwQWxHNTUvR2tSQXFLTUY2NFJL?= =?utf-8?B?Rml1WEhmQUExd1dyTG5WK3VBUWw2VGFrcnZzbXpvbHhZeXRLS2Z6eWNuQ0xU?= =?utf-8?B?Q0tQUnE2YVdGVCtzTTVoNkxhYzAyYW5QVTh3eGl2eHUzQjhSZE0wUHdqM2ht?= =?utf-8?B?aUY2VVFhUVVFUGxtTTdxU1NFM1FxdnBWVE92TW5nSWlqYUF3SE4xMnMrVFEw?= =?utf-8?B?R2FjaHV2OXYzN250R0tzejhOb1pFbTZSMG01MEtwdCtFWllKUzNQVlRsTmdy?= =?utf-8?B?bTZZVlNXckxzTWhFUlRGT1V2QnNhMkFBcE1vVDNyM1hMMGRMVUpFeEd5R1FB?= =?utf-8?B?ejNkQndOMm52WFVKM3QwbzhDZ2xLTUgzMHUrQ2JQa0Q2N21aUmM0aGh1c2dJ?= =?utf-8?B?L1oxU3YxNnBPeEx0UzVock53SklyeWEvSWZYTkFobUNWYXo2R1JncTBtdTRV?= =?utf-8?B?bFpnUk43bnJQc0xra3VrUk5SY3BSSnpxV3hJNE1PcDJTT1pncTNEVGtzWjVq?= =?utf-8?B?dHpNMThJREdRNWxwYVlBa2dOY3FrQ01zTTB2S203VkVBNWEyTUR5NyttWGxj?= =?utf-8?B?endtS3Q1UlpFeDRZTllidnUxcEFJblpQcFIvVzVMbnp0U3FVMEx2QWxOaHpR?= =?utf-8?B?ZDNDb0RVU0U1clY1LytIOWkyVVBLaWEyVHBQU1dsMzBLTUhJRUhNaWp2bFly?= =?utf-8?Q?zEHfdWQyDvb/mUF+RC?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2550fb1c-0298-4b3d-e2ff-08df0795ae4e X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:56.7135 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ByVAZ8Vxubqa6jljEwUkIGzOk1lV0y8b2Et+XbhSlyi9msTbhRc9DbcEiNblmprq X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF0C60B25BF PG_private is going to be removed and its check is replaced by checking page->private !=3D NULL. Replace page_buffers() with page_private() and delete page_buffers(), since only two users left and both can be converted to use page_private(). Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Song Liu To: Yu Kuai To: Ilya Dryomov To: Alex Markuze To: Viacheslav Dubeyko Cc: Li Nan Cc: Xiao Ni Cc: linux-raid@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: ceph-devel@vger.kernel.org --- drivers/md/md-bitmap.c | 6 +++--- fs/ceph/addr.c | 4 +--- include/linux/buffer_head.h | 6 ------ 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index b8325cb09a371..0cf14bc1cff32 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -516,7 +516,7 @@ static void end_bitmap_write(struct bio *bio) =20 static void write_file_page(struct bitmap *bitmap, struct page *page, int = wait) { - struct buffer_head *bh =3D page_buffers(page); + struct buffer_head *bh =3D (struct buffer_head *)page_private(page); =20 while (bh && bh->b_blocknr) { atomic_inc(&bitmap->pending_writes); @@ -535,10 +535,10 @@ static void free_buffers(struct page *page) { struct buffer_head *bh; =20 - if (!PagePrivate(page)) + if (!page_private(page)) return; =20 - bh =3D page_buffers(page); + bh =3D (struct buffer_head *)page_private(page); while (bh) { struct buffer_head *next =3D bh->b_this_page; free_buffer_head(bh); diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 657c2cb0f8811..fad17df1d5082 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -70,9 +70,7 @@ static int ceph_netfs_check_write_begin(struct file *file= , loff_t pos, unsigned =20 static inline struct ceph_snap_context *page_snap_context(struct page *pag= e) { - if (PagePrivate(page)) - return (void *)page->private; - return NULL; + return (void *)page->private; } =20 /* diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index fd2c7115c0542..e47fbd0387b69 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -175,12 +175,6 @@ static inline unsigned long bh_offset(const struct buf= fer_head *bh) return (unsigned long)(bh)->b_data & (page_size(bh->b_page) - 1); } =20 -/* If we *know* page->private refers to buffer_heads */ -#define page_buffers(page) \ - ({ \ - BUG_ON(!PagePrivate(page)); \ - ((struct buffer_head *)page_private(page)); \ - }) #define folio_buffers(folio) folio_get_private(folio) =20 void buffer_check_dirty_writeback(struct folio *folio, --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012005.outbound.protection.outlook.com [40.107.200.5]) (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 A28C737C911; Mon, 31 Aug 2026 19:26:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204366; cv=fail; b=HzCvOKfFo9ugxtFJ+iD4wUNnhATq6ckTYRp3Ttj+oO2D/nakZEHfnpmJ4id7EHiytw+vaE2qwmDE9lo1wa4cGEi10Z9L1/mKki70y+5Mip2acHpmmMMpOtIdL5C1eUtW2zfadSR/dpX1FdCUlbgEAn4YJrJ+tli4b4UPJC8a8qs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204366; c=relaxed/simple; bh=4zGG3F4y9ZxLXAr8xFku3h+krWrEkhGq6KJCkInB24c=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Ymac2L8GYqHo5qhEGe2/kbi1caLuWShPULEGx/5a8pTccIJGNWEw6pWHfdH9ndUpcVJd7nEQugZf71wzibndxKhU+AVSoF8n4/qXtTcKin7q2OorRCPProZzMQrwc5lLBIqiSwKUdde1Sm/PMJia3frNSgPesbqA9W1Y4DXtJ5E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=fJ6FJOp/; arc=fail smtp.client-ip=40.107.200.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="fJ6FJOp/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YqrIARDt+wre83+RMRmK+oQlHlLSBN9tJuRsmYieuL9MWtxPllZxu13pi4SZKIdcCaitj+/4lVSW0ssDGCOZODp2pR3cDOZviR90dWdJDVO0bAMlUYUnMqWZNVhaTqESImIzx1OMviNtRGxTuKfGCOyY6FBikPszzfwAFRop6z/HvIGj/2D+lRxRm0LLHrj1c/lmvjpI77ZQeHqAL+ErcrbxioAS6Cdixhn0tP4KybhlTBIsSjak87SA3DW0Ttpk+6/rHpQSN/vLkwcTn/eY+zdrBE56+VSJ4BJGyhxS50wp+elzNuvOetVcRn4Ck9oSFl4Wjk0U0Aa7yyayy8LkyA== 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=RjyqvtfBBlSxPQWh0x7FDeUVapoLG79pHCjYhlTljVs=; b=ky373oexwEOZnMhU3HW2XRh4zJEWIyqapl8qPw3ldgFK80Ej+DmtMRj9LSQPzDy9kX0o2qfWQW3Gr0QEvH20He+t0wWu5wMCHLUVJUD0YRd2TVTXK9d+uprAFA13KVCe0XDqJakD1Rdy2BehOiVd3V9HIUI0CIybEUE4tjaWxH7vP8rf/cAc5ysg0zmm+T/RDnVuG3phRlCi+dMGNrWhvRACzEWq6DUobc7YeqDif7gYY/7j8v1z1TJVDpjvkH4gEOn7C/A/ukMvUPK8rRrCClBonHbLI2g+hPxlOHRIdDstwaK8daU33nfqDhrARdTDZrbpxZxSUGDMhrh6LNuadQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RjyqvtfBBlSxPQWh0x7FDeUVapoLG79pHCjYhlTljVs=; b=fJ6FJOp/x/n+HMWfrGLXu0BFEIj+r5TTLbImWLqkQvIo/lqAYbeBQR1F1rjl6KhJM/EkJky9+XPcecVAQahukx8UBSdf57XfvbXFbSw7ejHemloq+IjPAopUlkiUcpcCmEzaalfdTYuw1afJ2Qt4lfRgvTcxPtSK/AXgwyShaNPts0ivcT9zEOgvHxZaFBBJIpE1INTn3KoyTQAmOR+zELzM/Bq3dJvyfwwJCvrA+ykyhL1wmu/izwx0gTUdJ0xyo3lwYYTMruSikwnOU9q94bAqjLPk1JGw+/fyFZdTO/3CtRPNBJ8TcSbofAt/A2c7KoSaKfKzQcsnZQ907CZLVA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SJ5PPF0C60B25BF.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::98a) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 19:25:58 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:58 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:36 -0400 Subject: [PATCH v2 13/14] treewide: adjust comments on PagePrivate and PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-13-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Ilya Dryomov , Alex Markuze , Viacheslav Dubeyko , Trond Myklebust , Anna Schumaker , Richard Weinberger , Zhihao Cheng , ceph-devel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mtd@lists.infradead.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: YQBPR0101CA0315.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6c::16) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SJ5PPF0C60B25BF:EE_ X-MS-Office365-Filtering-Correlation-Id: 78bc9ccf-88f4-4f5d-49f8-08df0795af1b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|7416014|376014|18002099003|22082099003|56012099006|11063799006|10067099003|921020; X-Microsoft-Antispam-Message-Info: ThSdE5GGLZTT/nuw7A0dqkxVQwB2qU9PRMPgQa0Xl05QBDC53fhI3fckqnudjEKmBDTE88+260sZHGF8FKM8WXX6ecP2X8o6z4Cz+h2WRxAgGJq5ExFLIYtChJMdGthZZDOxgzfxv340/ulhSvIozPN8UQaD1TVsHQvuF2n7+9IuGAM4bJ2MsIdFgzeDHjm4WoyQJO/imJz7HJQ1C/HR6+uDGEGeVKcMZiVnUpGkQjDd1y5WBbQM4WzJum1KQT4T4n1Y1YbyPZ0qGPLg0l6Zdjoy+AvM0u2vwhcOJuMnp12EEZ8iRbx+5qvbrAdwdF88aOaQLgXPNEAofUJsDPTURSGrPpBesBoiSkRoW7JUSdyDxJR5sImZizTpSmiwqc2jkTYFBtre5JFzJ+bWCO31lpcWjkEQROpn95izxMlUCwxb5iYuhuMXUeTYFlLzE6b8YxIxpc4o36MyC1S8jMfle0ESJL91yjt0lfjbmab9Vki1tJCpP41JpEfMD9au6Ay+ir7ZdNEl8PfVZdt5iER9Deqd31L9oeJUEeeJsUE63H8OTy+vPa6ly+G/gMUusrWVzHp6TrJnXo906H87KwcKlkWkXdN0L7NtPTWz0nEG0y/GIy49BdKZJxXVk8bpkrTjHref+LKiSpYU5EvIwBjHoXrw6zZMU9ys1wFB0t4vVdpKCljqUu1rMTgwa3oBsDcM3W9fgh84RUgoQi98dblgRg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(7416014)(376014)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R1ZjUTdTSWptNThBM3R1dWxza1hKSlBLek9YVmZSdGI0eDdvazFQcjZCeVdE?= =?utf-8?B?ZWVlaHYyd0pUQmJvTmNvMnk0NUlGMlJjdmFBM01UanNEMmFQZzR0TGhpQmMx?= =?utf-8?B?QjFaMGlFeTFmRHl4d0FmQmFseTFnVkJFd0dTOEVxb2ovMzdpSDRaMStLRXJq?= =?utf-8?B?bDd1VGtxUXVTdTZUUXZiRGQ0SENxWThTSy9qRjRkb2h4LzJFM0FyNDcwd2w5?= =?utf-8?B?VGdYL2FEZmlnSVBsQlJaN3luZk9TbnhiWkJBVXlqSW03MDAvZlBqSzlkOE9V?= =?utf-8?B?VGxzK0RUYU5tRGhBVjhXaFZFNWNhOVg1U2xGaURlRzBGWXFqOCtsN04zekww?= =?utf-8?B?dGs0RG0wUDZQejkxTE5ZSHZLeDdOUWhKSnFWSUMrMkc2c1hENWRkL05wcm9Q?= =?utf-8?B?OHk4cWVmVTF4ZWs4THhrVk9rLzl3RktIcDhLWW9ZaStlL3N3dTJQaHlHMCtk?= =?utf-8?B?eTJ2dWxSQjhqUitsSlpBazVmdDVsS25xdkxaWklRaXJlVS94TlpISURaWmRQ?= =?utf-8?B?SzZlVFMvVytDdVU5bWNDUkQ4MjIyVXc3VDNkYldKWXF0d21lclpSa0JZcElo?= =?utf-8?B?c2VCZmZjamx1WHo4VVd2RDJjd0l2TFF2cUFxQVB2UFNSRk5WNzNoSTJzaXBV?= =?utf-8?B?aXpRTngzVHZ5ejdnR3Y2Z3Ezd0tLOW1POHZ3ODhNVXVvMXZNblE5UklCWC9k?= =?utf-8?B?TVRiRENpbDZWcWtXeVhmQzdhZE9GYmt4YmpmSFNVMHZTRlRLVFRoUFNXWlJm?= =?utf-8?B?L3FIV244OTA5STZFcmJQc2hXVk1jdnZvb1VvUjBIUGZuY0dvYnhKTXpqNDAx?= =?utf-8?B?NldjWm8rYmJzVGtXbDFPTzZxRXlVRjJER2h3ZkJlYTJ4YWZyekNiVzZnS3ly?= =?utf-8?B?aGJmZFBnYUoxbXQ0c1pNbkc0OGJwWFhyUXFUQ2ZpVjZrVzQveGVTYUNpcStt?= =?utf-8?B?cThwcEI0M0lEY1ovcWVBSlZKK3VQSHFtQmRZZVJWMCsyT3orZEcwRGR5YmJy?= =?utf-8?B?Y1crVXYxN3dSQklCM0VvMHVzUGFGSFJhdlVYNFJaem54a1pIeVJ0dXl3SlZC?= =?utf-8?B?ZkNvSzAzdmtTMS95NXJCZVZEWTJsakh5eldGS2EvOUJVTlI2MW04djVoMzFT?= =?utf-8?B?cXdKb2JGb3g3Sk1nRm9IOUZGbUNXbC94US85WUc2MEV1K3gvWWxML2gvZ0E1?= =?utf-8?B?Q2trK1hhN3hxRzdLdmRvRGUzSHNWZE5hNzlvS0VPemlFWVhsYU05OTlHcWlL?= =?utf-8?B?VEVxWVpwQlVyS0h0Mm9hY2JFMFozQmdvVzZ4VUJHclBNeWU1V2xwRVBUMzV5?= =?utf-8?B?d08xZDRHM01nQWpYZ2djb0xTalR2VlNFdnBLcEFzNkhpQUJHU0w0VGh0TVJw?= =?utf-8?B?SmlBclZYbUpkeHpKT25yZmlIcW1ZTC9Zbk5zSGR3dmhKd2ZhUGJOOWV4ZzBa?= =?utf-8?B?b2ZVVkQzZTMzcGhvR1ZUSVhML2kxazFnZXUzeXNDWXdMVzd3U3Q1eXBxUFY3?= =?utf-8?B?Q3BBMk5Ma0xidVVSTFRBQnRYVVFnKzg0MEljazZjWU9yQUFxQzdQNWN0SjZH?= =?utf-8?B?azBFemU5ZndvR0lBendsck1HYisrRGNZbTZxdzYvOHlxUUhrTklDd0ZaYWlH?= =?utf-8?B?SWZqNk53dUFNOEREZzV6Rll4OEs1SjFlNThGT1crQU1acWVCQy9KVzdjeWhj?= =?utf-8?B?S3ordGhveEJEdXhKQnArRnBuNjY2U1dVUFZEOTh2MGh2Q3hrOHVrdVZLY0Z6?= =?utf-8?B?UWhBS0FQZ3R2MHpjdWhuZ3hwYS9kS0hQVnk5YzBZNG1haU16SWNwOUd4dUVz?= =?utf-8?B?bzByR2VLSmRSeTNxQlVUcXdRK05KQ0ROZFdKbS83eWRnV25GRllWN0hXYURk?= =?utf-8?B?SnA5VTV3ZGk5ZTY5Mnl1SkhGckYrOFFTcXk1eXR2ay9TeDZkbGN1T21YdnpF?= =?utf-8?B?V0hFRmlzbjBSNDJtVEN2NFJPcGJZTW9TNm4yNDZwKzczQU1YSUE3SldETnQ5?= =?utf-8?B?dkNYSXd1cGVyQ2d2OTVYVzVDTmlYR3pFdGxsTGp2U1VuUW1HME5QM0k5YVBx?= =?utf-8?B?WkdrcXBLZE5zcE1oQkpqOW5rUURvZUxLQVBPMmRVMlNJMHdqclZmQmxTa2w3?= =?utf-8?B?WTdhYkxJQlo3NHI0YnYxRHo0SnI4ZWdIZWxNM1hwN0p3bStlMStON1dEa0tx?= =?utf-8?B?dkhTSFg4Q0R4a093ZW42RU1PaUZUOWt1TjhLeXhsQm9HSUdRMjR5WmZiM0xN?= =?utf-8?B?aEtML3ptUk0vY1g2Tk8ybGNRVldJakdvSmJlZEp2S0luWTI4VmYreHRybjVZ?= =?utf-8?Q?ATgZNVnOmzpoQSE68C?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78bc9ccf-88f4-4f5d-49f8-08df0795af1b X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:58.0584 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c4D+bONIoe+hJjLC3tCtYFp3gZo1ni4TTzhIrcQAIKslfsqrXAibpTfmeO7KLioJ X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF0C60B25BF PG_private is going to be deleted. Adjust related comments to refer to page/folio->private instead. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Ilya Dryomov To: Alex Markuze To: Viacheslav Dubeyko To: Trond Myklebust To: Anna Schumaker To: Richard Weinberger To: Andrew Morton To: David Hildenbrand Cc: Zhihao Cheng Cc: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: ceph-devel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-nfs@vger.kernel.org Cc: linux-mtd@lists.infradead.org Cc: linux-mm@kvack.org --- fs/ceph/addr.c | 4 ++-- fs/nfs/file.c | 4 ++-- fs/ubifs/file.c | 8 ++++---- include/linux/mm.h | 15 ++++++++------- include/linux/mm_types.h | 4 ++-- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index fad17df1d5082..f9b2ec9550481 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -122,8 +122,8 @@ static bool ceph_dirty_folio(struct address_space *mapp= ing, struct folio *folio) spin_unlock(&ci->i_ceph_lock); =20 /* - * Reference snap context in folio->private. Also set - * PagePrivate so that we get invalidate_folio callback. + * Reference snap context in folio->private. Setting folio->private is + * what gets us the invalidate_folio callback. */ VM_WARN_ON_FOLIO(folio->private, folio); folio_attach_private(folio, snapc); diff --git a/fs/nfs/file.c b/fs/nfs/file.c index e1bdd10b35f10..38f830a6467c9 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -484,7 +484,7 @@ static int nfs_write_end(const struct kiocb *iocb, * Partially or wholly invalidate a page * - Release the private state associated with a page if undergoing comple= te * page invalidation - * - Called if either PG_private or PG_fscache is set on the page + * - Called if either folio->private or PG_fscache is set on the page * - Caller holds page lock */ static void nfs_invalidate_folio(struct folio *folio, size_t offset, @@ -555,7 +555,7 @@ static void nfs_check_dirty_writeback(struct folio *fol= io, * Attempt to clear the private state associated with a page when an error * occurs that requires the cached contents of an inode to be written back= or * destroyed - * - Called if either PG_private or fscache is set on the page + * - Called if either page->private or fscache is set on the page * - Caller holds page lock * - Return 0 if successful, -error otherwise */ diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index e73c28b12f97f..aa0298ce451ef 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -12,14 +12,14 @@ * This file implements VFS file and inode operations for regular files, d= evice * nodes and symlinks as well as address space operations. * - * UBIFS uses 2 page flags: @PG_private and @PG_checked. @PG_private is se= t if + * UBIFS uses folio->private and page flag @PG_checked. folio->private is = set if * the page is dirty and is used for optimization purposes - dirty pages a= re - * not budgeted so the flag shows that 'ubifs_write_end()' should not rele= ase + * not budgeted so it shows that 'ubifs_write_end()' should not release * the budget for this page. The @PG_checked flag is set if full budgeting= is * required for the page e.g., when it corresponds to a file hole or it is * beyond the file size. The budgeting is done in 'ubifs_write_begin()', b= ecause * it is OK to fail in this function, and the budget is released in - * 'ubifs_write_end()'. So the @PG_private and @PG_checked flags carry + * 'ubifs_write_end()'. So the folio->private and the @PG_checked flag car= ry * information about how the page was budgeted, to make it possible to rel= ease * the budget properly. * @@ -1509,7 +1509,7 @@ static vm_fault_t ubifs_vm_page_mkwrite(struct vm_fau= lt *vmf) * * At the moment we do not know whether the folio is dirty or not, so we * assume that it is not and budget for a new folio. We could look at - * the @PG_private flag and figure this out, but we may race with write + * folio->private and figure this out, but we may race with write * back and the folio state may change by the time we lock it, so this * would need additional care. We do not bother with this at the * moment, although it might be good idea to do. Instead, we allocate diff --git a/include/linux/mm.h b/include/linux/mm.h index b5b60f3ad58dc..2855739a0f379 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2075,20 +2075,21 @@ vm_fault_t finish_fault(struct vm_fault *vmf); * * A pagecache page contains an opaque `private' member, which belongs to = the * page's address_space. Usually, this is the address of a circular list of - * the page's disk buffers. PG_private must be set to tell the VM to call - * into the filesystem to release these pages. + * the page's disk buffers. It tells the VM to call into the filesystem to + * release these pages. * * A folio may belong to an inode's memory mapping. In this case, * folio->mapping points to the inode, and folio->index is the file * offset of the folio, in units of PAGE_SIZE. * - * If pagecache pages are not associated with an inode, they are said to be - * anonymous pages. These may become associated with the swapcache, and in= that - * case PG_swapcache is set, and page->private is an offset into the swapc= ache. + * If pagecache folios are not associated with an inode, they are said to = be + * anonymous folios. These may become associated with the swapcache, and i= n that + * case PG_swapcache is set, and folio->private is an offset into the swap= cache. * * In either case (swapcache or inode backed), the pagecache itself holds = one - * reference to the page. Setting PG_private should also increment the - * refcount. The each user mapping also has a reference to the page. + * reference to the folio. Attaching filesystem private data via + * folio_attach_private() also increments the refcount. Each user mapping = also + * has a reference to the folio. * * The pagecache pages are stored in a per-mapping radix tree, which is * rooted at mapping->i_pages, and indexed by offset. diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 6d815f6440c94..e35aece38b933 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -108,7 +108,7 @@ struct page { }; /** * @private: Mapping-private opaque data. - * Usually used for buffer_heads if PagePrivate. + * Usually used for buffer_heads. * Used for swp_entry_t if swapcache flag set. * Indicates order in the buddy system if PageBuddy * or on pcp_llist. @@ -675,7 +675,7 @@ static inline void ptdesc_pmd_pts_init(struct ptdesc *p= tdesc) #define STRUCT_PAGE_MAX_SHIFT (order_base_2(sizeof(struct page))) =20 /* - * page_private can be used on tail pages. However, PagePrivate is only + * page_private can be used on tail pages. However, it is only * checked by the VM on the head page. So page_private on the tail pages * should be used for data that's ancillary to the head page (eg attaching * buffer heads to tail pages after attaching buffer heads to the head pag= e) --=20 2.53.0 From nobody Sat Sep 26 13:47:20 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012005.outbound.protection.outlook.com [40.107.200.5]) (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 1DB1437E5E8; Mon, 31 Aug 2026 19:26:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204369; cv=fail; b=L5l8mhFRP1hEFXcD5nJDf0cGJjn77q0BgYteY7Nw5O8kVH30nophRVjG+MYfIWYdnCPbLb7wUH005oK1U85dxdu18GnA9uLzHWOXS5/HqKCgWSbfClu7TGsoEuM1RF4AhmvmSKKPJzWKEvBNNLJ2SCqsHVmYSGZhuW7U0ckmpk4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788204369; c=relaxed/simple; bh=xYwpBt2SU4ArsPP7NZ+CzoSDOWTAB/cMnGk1GuHZD7k=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ucN/ZupIK17rzygzTjfNCXKukMOqZQt9l853EqACptmLGhBdWTo8ajuma2XMkhZ1bguHhW04al9EL8KHUIMFqZcsWEUL33741lp6WjoJMewTt8D5sUfB3suriUoNOOf1CBT6n3rlheKzDfwa8hFu99XQ5+UjBqdfNRHFDCiiVaA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Ttqsa0F/; arc=fail smtp.client-ip=40.107.200.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Ttqsa0F/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OkJ0bSMOyOf3HN4E4BLVEg55iFa6NuEJ5IvQTAuAwCxZELhsOoc8TchdjoMyNCOsRfQJ/UGgjc8IbGWdgQMmIiP1n6V1bDlG7rR+rZ/q+YuhOWivTtXxlJ6lIYol2I5tpd97jd4Ht7MWorQgWMxvxmUoM6EtbDR99RUWIe8LIJrg/6+tJfKJBQLUXidLB4eY1RCnVKlvhyBoYrWxCdz/TODXBgNBzawSvldc6OuMdJl2SmwmzJz3zgCp9XgCSySroUODxHVPQQbfG+d3SKyHqmVZQdY0zd4ScQy0cEnlG0APizCMvOm6wYqxf+ilyDoLlT11JPFWZxYuMTfkBghMSw== 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=gmKfHB335PFvYjEbUGYN25bMarf1tk9j1nRdQmA714U=; b=WUbkmMoeTk1p5CdL5Wy+E1bTX+kf8cfwOXEBExqPyiYIznMXV4oYTI0u3ofusnnpapQEfXbd4FOW5uD/Z1aJ0pDmO+saMcwH5D7I3jMpjcJrTlV+6cIwzlSd4YRsb4SZDwOyorRK5CGDCq8WfDQbwXP0L3G4GOJ49iu3zymCgiKeIZqKLzZSZmymmJM+UNUjPyzALchzNLPkVJbQiLHxZc+7B8v/fBHx3BFmpJmjzGg0biwtA5YNoMIGxsPkvb3BO0CQQNZRtqsaKC7UbRuybKeoXBgcI0JqG5ynSRtXaONTGZXaDX61lPGUw43Ie5+WO2XvoaLLeAkiQ3R2rgAgfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gmKfHB335PFvYjEbUGYN25bMarf1tk9j1nRdQmA714U=; b=Ttqsa0F/QDFaape9r4uUt4I01dfXz1au0hAxhJ39Rbb5o8OFfMyZW9bwB35grvzxlKCPxD52QVzaGPaNC7cIsdjFpjfy20epAWRgGazsnedHINWEEZbD2hhtyH3icT1E7HZakvd9jDcy8ns0PVyIhX+VpgmwJ7Rv+7/9r/DcqyZNXj7Fr9dXxiH1xc/DHBBt6D4ayHIq6LX6+EuK3PB/anI6BEctvO0dA1KzThaZMvWYuV2UlLq4ryaypN8qx7p8JK3IZ07kTSl12bLYJCl/mfAXTUtgE5GxerpnwSz8/x5ds2PMJp7hOQEof7V0PJDSOkevzlS012Af3gORHn2X1w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by SJ5PPF0C60B25BF.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::98a) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 19:25:59 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 19:25:59 +0000 From: Zi Yan Date: Mon, 31 Aug 2026 15:25:37 -0400 Subject: [PATCH v2 14/14] mm/page-flags: remove PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-remove-pg_private-v2-14-3668159cd9e8@nvidia.com> References: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> In-Reply-To: <20260831-remove-pg_private-v2-0-3668159cd9e8@nvidia.com> To: David Hildenbrand , "Matthew Wilcox (Oracle)" , Andrew Morton , Muchun Song , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Gregory Price , Ying Huang , Alistair Popple , Johannes Weiner , Qi Zheng , Shakeel Butt , Kairui Song Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zi Yan , Baoquan He , Pasha Tatashin , Pratyush Yadav , Jonathan Corbet , Jan Kara , Steven Rostedt , Masami Hiramatsu , Dave Young , Shuah Khan , Mathieu Desnoyers , kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-ClientProxiedBy: BLAPR05CA0015.namprd05.prod.outlook.com (2603:10b6:208:36e::15) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|SJ5PPF0C60B25BF:EE_ X-MS-Office365-Filtering-Correlation-Id: b1c89649-0ff1-41a2-d995-08df0795afbf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|7416014|376014|6133799003|18002099003|22082099003|56012099006|11063799006|5023799004|10067099003|921020; X-Microsoft-Antispam-Message-Info: yH6RBIwMfB8nK8nl5tZ890F8T/DQJgFJC7Ybgvqt4FcVSdqtV/uoM1dlxYXAdKmNvOT+AxV0gvNrSwjGu6PGxAA590uYHMlwOCmgFpilWqiulfdsc2hrOn2pVd2yv0zv18XpldAJZn3fBF9fwG/kuROO2cMyfCUmC+svj2v08bXKxZUkB2GU7iIWCFpMrGc1bz3Faly2UKeNQSrdIiI0CNuqofaNw7z/m6yW1XDCgHnNRHckw3WXDgU/roUpX5u5xD0vlEVhFIsrolMpTse+g63uxIs39ZYtgRe7Rtfd4kc5o9EL/Aoj3ThxYHMCzX4Ec55gLq/M1dizcPRiLVYdTOtI9VfMY1I6KCm/7lcV6zfWVcgm4Al7fsUvF9DN5vlkkZEL2bgPRd+unghwMfOojGAJEjRrNatD+qwIlYvmQ8ySMnrE2ofBFIy7ySrlVRi2RJOA51tx849rNlfWLT8orrjRi+KX0DFOsFo/5ytO2tNd3n/1Loo7I94gY3PWOidmVx3Y0Z1g1xE6H46x/Lg7Ya9yZhQj03Ch6yxg07DF0CLRujK/AY5MvvPQdKEnAskw6eL5mRbhndOtBGRF8oX4R1yFCojBc7w4jVKOyA9Bgd925hqgCaj5+LxTUR/j7xFFlfmDP3fhnxVQe+I7R3n6VBegF1f2OrW7g6LU4eUs/wHGRbk8fgo23gNG7fo8krVvHHIucwkq2tANHGFY5cvjsQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(7416014)(376014)(6133799003)(18002099003)(22082099003)(56012099006)(11063799006)(5023799004)(10067099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NVFmRHZXc0hOZjhaNHpnOHpJcVlacjV0WFYwUDRiY21QeW5XaHkxYmFLTU56?= =?utf-8?B?a1lKbXdKOXlKaHAyMWRHeHg1ZVNBN1R4UHpwc3pSZk9zWm9FbWUrU0QzUW0r?= =?utf-8?B?d0taNGo1SEFuZnhvQ0tZSTVVYmFhck1wUTVJaWhZTzViTEFSRCtudzc1aXMz?= =?utf-8?B?TWtleWViTDFDd09RVkZmSTNiNS80UlU0NjRYQ21oSDdYZUU0NVhXQkhhb1lM?= =?utf-8?B?SUxUL3YvZWJMYmlPK2FyVU11N2U5NnF0TFMvWkZvaHBNZk9lR1UxaUJ0TzF3?= =?utf-8?B?THE3RUI0MjdKd1RMQ1UrallWVTVEelZMbGhHYTJVZUtlbDZPRS9iekl6MUg3?= =?utf-8?B?T2NVRjFvT0FwalpGSXJyUFRYUUFIdVdXcnRJdUM2YkpnRDd6c0d2U2trR3JN?= =?utf-8?B?TG1aQTdCK0ROeHFJN3NMcXhNdnVaZTFGbUNZNVhLa3FyeVhPZGxDeDVsYWZ1?= =?utf-8?B?aVh5aWpsd0lPM1o4T2NITDQ0Z0FUUVVJSHNGcEFKWE5jaGhPTUZJZ3A2UkhN?= =?utf-8?B?SEhRZ2VKbzZueXNPY2kyTWZvYytEb25mczRpajRkaTVjSUhBTS9mN250N0h0?= =?utf-8?B?djFLbXN6QVovTVVTYVEvQUJNN250VTNkdUNHcGIyUUJVaXFRUHNFS0dEMVlX?= =?utf-8?B?eGNSdG9MTkFCT3AxMlV1a2IvVHRXZ0N3cWdYWG4yaHlXcU9rYmhpVHNRUy9D?= =?utf-8?B?VzI1S0N2MFlJQkpXWFFoVGxUYmp2RzZrWEtWMVJ5bVNSQWwyTXBpOEkzR04z?= =?utf-8?B?dkJZZHJyYmJ6TU9nRndwaGdmYXcrWS94d29yL25jbTJGNVVGWVZ4N0I5Y2FW?= =?utf-8?B?SFI1b25NOFhwZExkMCtibWJBMGsyRWkwZVY5N1Y0aS9kWDRhR0dwSzlkVjFx?= =?utf-8?B?bDBCS2p1U21nZkdPTGVjQVlKcEgwT3B0djJKRzY1Z25YbzdnRVdUcmQ0L3Zv?= =?utf-8?B?UjVjN2tUQjd2cEllcDc2ZTF6WS9NV1NGZjNKWGNQa05tSTFJSGNhdy9NcXpK?= =?utf-8?B?VHJVbkVkaExJczFSWmQ5U1ZHNlpwU2ZKVVAwQjQydG1yU212Y3RqKzdSam9t?= =?utf-8?B?UGNRTVZaWjJXN1ltZWxFTWptVWg0SmRZVGdIYWZrbG1HeGowTi9qakhCdDQy?= =?utf-8?B?ZzF5MlVCSy93cjlINWJLRENxMFZ3NlkrWXNzVkpKK2N2VmMrY25nYnVyWGdV?= =?utf-8?B?SkhyZm9YR2ZuTTd2K0tscXJhLzJXVkRqcWtlY3l1Z0R6VFNuaGVZWGg0OGNs?= =?utf-8?B?QVQ2MmZJbHh0bUZiOVZHaWNSZUx2dmJHNkhwUE45NDNRUFN6U0Vza2lhUUt2?= =?utf-8?B?WWxnbXFFVktWTWdCRUpuWWN0K2pYRzNvUURtT0k2VmhQSkk3eHdwNXhCTkd6?= =?utf-8?B?VmN0cVBjVHJEVDJOdVhoRW8wZlFURnJNZ0JTOUx0SndtMVpjWFoxUVlGYkUw?= =?utf-8?B?QW9LK0tzNXB0QUZLaEZ2RFZLKzZTd2p5aFlqMk0wY3hJU3ptTW5MOG5SZWcw?= =?utf-8?B?RUZiVXFCQ24wM1JDQldaM2ZyNW1QOHQ5Ny9KajZrK1lKTnhIZ09kbGordGlj?= =?utf-8?B?cStkOW95ZEdWejVLVFFWZlhhdTJRNmgyK0RMLzdyeWorRGNUdit0aEs3TEth?= =?utf-8?B?bll2VktXVEN0bit1U25DMndHRjdYbWtqaFI1OGpDS2tsdFVNamJpa3doV2Uv?= =?utf-8?B?TVJ5Ky9iQUkzLzVCbDQ0Z0lCQnI5R3dNMHFNVmtxWDVUbysydzNzMDZZVXNJ?= =?utf-8?B?NGZUNEQxRGVFRGhFRVQyQWNTU3IzN25WV3RtN1UwSXl6RnlNcURISHMxcml5?= =?utf-8?B?TmlOdjd4QkJtZmM2bHREWkF0TnBYSjB0OVVDZFg3c0lOM25nbVAzL0lIK3NB?= =?utf-8?B?dW5ublhWS0p2bUg5YXV5YnpPdnlIbFpsZTJIelgrNS8wcXQwNjd4QlNHUEFO?= =?utf-8?B?blU3bDFtSWk5dXJzOTFTemkxcDFuektKTGhmaHRzVXA5RVhwdkdUV2YrWXUv?= =?utf-8?B?aVRVa3J5WGhtdFk1Qm8zWXM5Z0R4VEFGV3ZzVnBkMFRsQUNUT2xkRmNWVWpJ?= =?utf-8?B?bkZ6anRvdTd6d0pua2IraGFRZ2hDdU5ZdEZUeWxVU085aE9MWndwQ25xMGFW?= =?utf-8?B?MVJCOGJFcWJnS084VHZIcEljMERhWGZTV1c5a0V6dFZ2TGI5ekRyLytUUk1h?= =?utf-8?B?MU5wNE9DVDMxcU9PSlc1bGMyUUhoUkt3Z09ENmxUd2FOekVpdGZDdWNod21V?= =?utf-8?B?VTRxb0gzWGRnUHVpb3ltRGhuYVpvcm1qSHhremQ5VWNQbGRqWEZQWG1wYUE0?= =?utf-8?Q?6uUnT1ETAhpwHZFJg1?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1c89649-0ff1-41a2-d995-08df0795afbf X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 19:25:59.2423 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CHy2tnvWWo4sErCdmDvmN7g4PzCbS7rLMbcqy2wm/Xf9zilKseRwnBQVtB6qSUE7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF0C60B25BF folio->private !=3D NULL indicates a folio carries private data, replacing PG_private. All PG_private users are converted. Remove PG_private and reserve the space as __PG_folio for future use. Also update files in Documentation. hugetlbfs_reserv.rst is outdated and left unchanged. It should be rewritten. Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Andrew Morton To: Baoquan He To: Mike Rapoport To: Pasha Tatashin To: Pratyush Yadav To: Jonathan Corbet To: "Matthew Wilcox (Oracle)" To: Jan Kara To: David Hildenbrand To: Steven Rostedt To: Masami Hiramatsu Cc: Dave Young Cc: Shuah Khan Cc: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Mathieu Desnoyers Cc: kexec@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-trace-kernel@vger.kernel.org --- Documentation/admin-guide/kdump/vmcoreinfo.rst | 2 +- Documentation/filesystems/vfs.rst | 6 +++--- include/linux/page-flags.h | 19 ++----------------- include/trace/events/mmflags.h | 2 +- kernel/vmcore_info.c | 1 - 5 files changed, 7 insertions(+), 23 deletions(-) diff --git a/Documentation/admin-guide/kdump/vmcoreinfo.rst b/Documentation= /admin-guide/kdump/vmcoreinfo.rst index 7663c610fe901..5f1df6d080508 100644 --- a/Documentation/admin-guide/kdump/vmcoreinfo.rst +++ b/Documentation/admin-guide/kdump/vmcoreinfo.rst @@ -325,7 +325,7 @@ NR_FREE_PAGES On linux-2.6.21 or later, the number of free pages is in vm_stat[NR_FREE_PAGES]. Used to get the number of free pages. =20 -PG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask +PG_lru|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask -------------------------------------------------------------------------- =20 Page attributes. These flags are used to filter various unnecessary for diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/= vfs.rst index d3a93eec3945f..dec7816303c6a 100644 --- a/Documentation/filesystems/vfs.rst +++ b/Documentation/filesystems/vfs.rst @@ -649,8 +649,8 @@ Writeback. =20 The first can be used independently to the others. The VM can try to release clean pages in order to reuse them. To do this it can call -->release_folio on clean folios with the private -flag set. Clean pages without PagePrivate and with no external references +->release_folio on clean folios with folio->private set. Clean pages +without folio->private set and with no external references will be released without notice being given to the address_space. =20 To achieve this functionality, pages need to be placed on an LRU with @@ -674,7 +674,7 @@ filemap_fdatawait_range, to wait for all writeback to c= omplete. =20 An address_space handler may attach extra information to a page, typically using the 'private' field in the 'struct page'. If such -information is attached, the PG_Private flag should be set. This will +information is attached, non-NULL 'private' field will cause various VM routines to make extra calls into the address_space handler to deal with that data. =20 diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 9b585e68127a2..eb2961ed61018 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -44,10 +44,6 @@ * Consequently, PG_reserved for a page mapped into user space can indicate * the zero page, the vDSO, MMIO pages or device memory. * - * The PG_private bitflag is set on pagecache pages if they contain filesy= stem - * specific data (which is normally at page->private). It can be used by - * private allocations for its own usage. - * * During initiation of disk I/O, PG_locked is set. This bit is set before= I/O * and cleared when writeback _starts_ or when read _completes_. PG_writeb= ack * is set before writeback starts and cleared when it finishes. @@ -105,7 +101,7 @@ enum pageflags { PG_owner_2, /* Owner use. If pagecache, fs may use */ PG_arch_1, PG_reserved, - PG_private, /* If pagecache, has fs-private data */ + __PG_folio, /* Do not use: reserved for folio identification */ PG_private_2, /* If pagecache, has fs aux data */ PG_reclaim, /* To be reclaimed asap */ PG_swapbacked, /* Page is backed by RAM/swap */ @@ -576,7 +572,7 @@ FOLIO_FLAG(swapbacked, FOLIO_HEAD_PAGE) /* * Private page markings that may be used by the filesystem that owns the = page * for its own purposes. - * - PG_private and PG_private_2 cause release_folio() and co to be invoked + * - folio->private and PG_private_2 cause release_folio() and co to be in= voked */ =20 static __always_inline bool folio_test_private(const struct folio *folio) @@ -584,17 +580,6 @@ static __always_inline bool folio_test_private(const s= truct folio *folio) return folio->private; } =20 -static __always_inline int PagePrivate(const struct page *page) -{ - return !!page->private; -} - -/* no-ops during transition */ -static __always_inline void folio_set_private(struct folio *folio) { } -static __always_inline void folio_clear_private(struct folio *folio) { } -static __always_inline void SetPagePrivate(struct page *page) { } -static __always_inline void ClearPagePrivate(struct page *page) { } - FOLIO_FLAG(private_2, FOLIO_HEAD_PAGE) =20 /* owner_2 can be set on tail pages for anon memory */ diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 935893e5ea53b..caf090cd6f85e 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -144,7 +144,7 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); DEF_PAGEFLAG_NAME(owner_2), \ DEF_PAGEFLAG_NAME(arch_1), \ DEF_PAGEFLAG_NAME(reserved), \ - DEF_PAGEFLAG_NAME(private), \ + { 1UL << __PG_folio, "folio" }, \ DEF_PAGEFLAG_NAME(private_2), \ DEF_PAGEFLAG_NAME(writeback), \ DEF_PAGEFLAG_NAME(head), \ diff --git a/kernel/vmcore_info.c b/kernel/vmcore_info.c index 8614430ca212a..5a417f8a922ab 100644 --- a/kernel/vmcore_info.c +++ b/kernel/vmcore_info.c @@ -216,7 +216,6 @@ static int __init crash_save_vmcoreinfo_init(void) VMCOREINFO_LENGTH(free_area.free_list, MIGRATE_TYPES); VMCOREINFO_NUMBER(NR_FREE_PAGES); VMCOREINFO_NUMBER(PG_lru); - VMCOREINFO_NUMBER(PG_private); VMCOREINFO_NUMBER(PG_swapcache); VMCOREINFO_NUMBER(PG_swapbacked); #define PAGE_SLAB_MAPCOUNT_VALUE (PGTY_slab << 24) --=20 2.53.0