From nobody Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 80C3026F2A0 for ; Tue, 8 Sep 2026 02:56:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836196; cv=fail; b=l43KhHnJjUnwl0eU0g7tYHDf8XFL/f+rvtJi7YvMdr1Sp642Hqx08dgL54az7Q02qZuLvQ2ym7u9/5iAVtHxYYt3/TfndtvBtYia5Sha8Diqv3yn3TcCXVI8LO2rq1JshmXpVSkdIsXrw0yl2JSX1c6/6mrjw1x65GKu7be8Xd8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836196; c=relaxed/simple; bh=KVvsjrhFffPzdeGsG5jWFfWPmpRs8WfcyNSd8WRM9AI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Kpw+AXyfu9DD0VR40gubBo6AIrtFhJSmZ13K3a1tChkPrzv/qsqTW2mUsqMwzbKVRsL7CJSiGmIeYgoSfzcPD9QLwM/0AzIEce7GTYcPW9rYaVmbHeHmxFDaPlhXWFoFYKRvtQYnjOrxicreuZAZbfIir080IjPuoNtTpArc8mI= 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=GV7KqV7t; arc=fail smtp.client-ip=52.101.57.56 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="GV7KqV7t" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QLAqNoLcbXKJg1Csum+zY0d5yHs/0PkcHvsodgU0hL8/+nwVoNQV1NZr7ozB3uuOOG7jFB1QsNkuhxMyXjVTbfAe3i84HLxJT6tOM/oC9xlSJbtgvqoxZKY4/5FHd0n1H1Du4PQ5TgWULTGSp0w2+HsRbaQ87/hUx2OhUSybeE5XalJKv9iKhpLyZpVHZH38PfMyThfCzPRgUNIIN2CJpk+Kak+IR+MxEBbuwYmT983nPNOW3xKheEt7ysGNv5mAu468gympzo6RG1nO4gxQQ7UKXluu3j6wltxZSAKT6Ojz4ee2SXkHAfhv9LZ1Lfq4Ygf4/HMZGJcayxhSEMlDFw== 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=g3aoeeVgZcaS3t1rrOxj+NTNllqMS0EjYgOL5kQFjqJhKpufXJa+JIv0Zo4P53AH2MELAcdrbbri+vBCbbkacLAM3P6F/UniIZnm8LhBhVrxSw3TMssAyeHdJjrCFukVw49+TcqPrWEWASM5FCnLy1CMG3n4C44NEGDV37xN5T2qonYGIl3gNT5xkyXazTeVmZC2ZhbnKnm1KBd0tglrgcuXaRe5aXbJdySTvFxTFSWUvB/ncpWzJ/0SuHd3dzvKb7AIxaIn/aDh/vSAh1PO5wq5HLuH/ao2PVr8WSTdvTik3lC6XQOkhBnMFMFStseCidYTVU2kGDbPqK6T6qsO0g== 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=GV7KqV7tKxWgohhOZuRuCre2xHkurS4/8Rpnhhun+i/9DTBeENi9DDRQgBcSg4UHmSO0fM5lAyOTT2D4moXGVnLw0Xrl2Qa815zbFriyoSJ7nx5Ld1BLGcHdpFoXH0hBo2rETuCeOf5XTr4JwToGrWoCW1sYnWkJoskmS1B0y6Qoc8e8zYS+x8F0hfdOM6BLNCK183Sm1F7rPLCKeoO7/DYj/VeCJTHog+AYG/4HY/iJlDdTOKeYH01Boz2/VhfK7yN8sHCYa7fYltUu0YtSjPaVi+YGuUHdXDDuI9lYfLGjWtnQ9TKOswuYR7/EFtghs0LGFTPKmj+cpXjx6GPgZg== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:28 +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.0382.014; Tue, 8 Sep 2026 02:56:28 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:08 -0400 Subject: [PATCH v3 01/14] mm/zsmalloc: replace PG_private with pointer comparison Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-1-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: BL1PR13CA0286.namprd13.prod.outlook.com (2603:10b6:208:2bc::21) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d173bf6-e8de-403c-cd45-08df0d54c720 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: aOEmDer+kidDygyELFXVwVgBPnjbwlrQXWD5/l+Jfr1dwCpthEZO5+WZhyrKrHgyArCzc+Ts19mpApb7jrnS6d6TD1ijQFqfj409MubJ+C+ILb3r4r1aIdzkGmCxL3/fTlO93u/CKgl9bkz5NAwsJovZR/ZfwJJojfAeiTmjPmQCkiGZGCVNcuJSEaej+T9kZtcTjo1ZzN192u/YOuv/OEzz/N8Ga3xkCe/WaLnAsSD6PN/MwzFQuAjyNKR6qh0RaZEWVUllbMXm4e/HK6nn9ChjoA2JCWZAtPsLvUIk+eBOog8kHEF1uNFbEcomZvyHf+v59qLu9a4WcDvSA257ygYlDJ3tyPDEhp+T8nb/xG29axHK7fJrmIAyvnIbW9g6GnrRor2Bm/HUJiJSZALa1r1OhqnT8QICbhfdTBub+EVRpcTOFZPH/rv8j5jMHXDuaC85H+e8wjfxVTX8hdu1fqCAiC7k5Yw2QYIBUhHp1RhKLYPRDy6YCfUpdO+nUlqLr3CarDBmLAdYJ/r7dq8kov3g26FNY4E595ugvhlWhLminPaUchWtY9s1d2bPQ75bKUjJH7A3a+Zl5Rxiek8wFxSz+68TR03viXRmDgG5ANJRkDdTATZMfI7e1iXA7NST5xaN4t9RzWmzEJ0q7XMOZq9p1LsLKj5m2qf92X8L1S/H55at+UAq8gPwQMoORY9f3O5quUOennPZ0CtoUdBFEA== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VEoxdWFTYllWeE1RWFpZQjJJTDdBSUl1Y3RDdEZEdXZnS3hsNDl3bzFMQ3RC?= =?utf-8?B?cFRvWlNzdDRkejZkaHFwUVpYUW9ldlFpNkhHSklJdFpLdkRRaUdza1FYMEFl?= =?utf-8?B?cFV3TG9rT0kwc1ZOeE1ZNVl4TUdtK24wNUlBS09wUXhHTEZWclMvbFhicHZZ?= =?utf-8?B?K1V0TjEzeVBpdWRPM1dTaFRmTVlEL1c0RDRzYWliNGRYbmJtVmRTNjNDSysw?= =?utf-8?B?UnpOY296UmNKOEZ3aldYVzZWeGJLUndoN0p3bFB1c2RBV1lvTy9zaDRGZERZ?= =?utf-8?B?NmNHMS9KMWQxUHcwUFRSQTl5ZWYwQlZkanI2UGhOQUdqLzhhWEtETDFSakxa?= =?utf-8?B?eC9OK0IybDl0R1RTLzluR0YvSFd3ZGY3c0QxV2dmSmZhc29CWGY1K3FyK3lI?= =?utf-8?B?VGhxaTN5dkVwVWZIdmo5RVBydU9xbEZWbkxMbS8rZkVzS0lHaDhDR0ExMlhQ?= =?utf-8?B?aSs0clNGNUNwbFZTL3l6R2JscmhwNjBDdVhRTFBuWFZ3bXV3dUdKTTR0SDhG?= =?utf-8?B?czYzeStTWDhaalBSOEY4RE1sUUJJTmJWa1cvd01wMEtEVzhqcVlLRzlQMUl3?= =?utf-8?B?YjgwMVlrdzgzMWZuTWtoVmFIUmR0QXlUQU1QV01DWG1ldmxQbFl6NjR5QlVw?= =?utf-8?B?cmRkZUZ5bVpZcUV3cHd2T3p6T1JCTC9EU05kUms4WXNWZW9UNFVXMForVEd5?= =?utf-8?B?QnVveWNleDRpMWpUY2tENFlSTzdqRHM4Rmo3ckx2a2xFbVdzU0xCUnVYZE5t?= =?utf-8?B?bnhnUEJvaU9tMVNsb1IwaWtvMi9LSndmbWVBcitVeGRkeS9OTUtNTENvOGg4?= =?utf-8?B?eEptWTZkVDN0VWtydmNlaWxYV3dNaFV1emRybTAza1ltT0xNVnJJbkRCbXM3?= =?utf-8?B?OFUwbi81UjdpRFZHaHJYM0d1am1UUmlJK25MeVByMXUxSDk1K1FFd2FiSUdl?= =?utf-8?B?RHRZK1h0dzdNa2lXQUs0RWQ5N3RhcWJZNHBzTlRxZnY4K0IxTFNUaXpDU0wx?= =?utf-8?B?Z2t2d1Q2a25lUnpkbjFTb1hpWkhBZjlPcGZvWlhRQ2pBcVVseUtsVFJvZVdL?= =?utf-8?B?U3lRUCtpZVBSTndmYUx3a1Y1ekE4R0dteGJWOTRxbXVmK2dCTVNjV1YrM21r?= =?utf-8?B?b01hK2VNNWEwMkRTL0lVNStqRGFaOTd0TlNMM2NDb002WngwNnd3VXpOUGZD?= =?utf-8?B?b2hDcGErV2RHSmVZbmtRRXJYYlQxbDZZbUU5VWRmbExsYUp6NElic3R5cXFH?= =?utf-8?B?bytZRldzam8wckdlOHhnRVZwUU50ditDWVdOZks1SVU1akJCV1NMRk54ODBS?= =?utf-8?B?Q1VyWGt3c0g3WlJqVmhjVW5UcVdMbHBTUUVzb1A1QVNpK0I5aGFIcDBZWVl1?= =?utf-8?B?QU5sc3FFQW5mSzhTQ3ZoN05CaTBxb3J5ZlFCVFBnR1dJSEFRTjhaK09BNmRl?= =?utf-8?B?eFdEQ0RnbjhyQUhDNWJ1TGRjeXkwV3hwTGtXRUxPbDFUWlUreVBoU1k2Rm12?= =?utf-8?B?NVhDM2Q2NUV4VW9QZUdYSDUwenNrRmQyMUpOYVREZS9LakJPQmJvVFJtTnR4?= =?utf-8?B?WFNZSlpBTDRXRDRsVUFDVThqQjN5c2dZTGRoVnQ5ZlZoQUlGZ2lOREZJRVdu?= =?utf-8?B?SDNGL2dPQUY0USsxcThLdzkweXhUTDQ5MDRZZGN3KzE0ZlgzbllQb1JsZkd4?= =?utf-8?B?S0RyYXNjMmRnditEVHdkdldia2Y3eVVGK1pZdjJLbGg4bHh5a2hadHhHb3Uz?= =?utf-8?B?TlZIenA4Um5WK2ZCTXRNUlF1OWxjYUE1dyt0cVFIYkpSSTFUekEveEJyUU5p?= =?utf-8?B?M05XSWNJaFVTa1lzN3hhQXR4dFl4TElSQlV5b1AvOXAwa1lRcmhpNTNDQzR4?= =?utf-8?B?dW9JM1ZGeE1NQ3l5c3RnVkNYcXgzYnpnM1ZyT3h0dUtUcUJxN1dhTzZiZUll?= =?utf-8?B?ZFVwN1h2TzFrVENrb0NwUVFHa0ZpQjRlTzkxa3RLcmxBOHl0d25JU3M1ZGJK?= =?utf-8?B?NEIxb0c0enVHcCtQUWlaQkR5azRLNmlmbDU0QzZ1eWQ1aUF0cG50bW1odHpk?= =?utf-8?B?ZUJ4c0ovT215eHN3d3lBajgzVGxPRWJCSHR6dFNQbTQ0dndwcGY5d1BDMitU?= =?utf-8?B?YldyTmtxRmhQM2E0YTBxZGZtZXN1b0V3OHFxODI5SVB2YVlsZzJ4L2FOMEdk?= =?utf-8?B?bzljNjRtTHh3T0M2MHlBWGJLYVZJVlNaamFZOEFDT3dvRnBJUkRqbXlMcXd6?= =?utf-8?B?emNCYUNPaXQ2aUZrV2FPVmJERHc5eDl0bktzeXgxb20zR3Fuby9CNmVFcHN0?= =?utf-8?Q?tIVt0yNYzcI+yR2pK1?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d173bf6-e8de-403c-cd45-08df0d54c720 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:27.9978 (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: yX0AZ8rW4JJVr/EbNyAgnDzwRpG9IY+NK0itiD32D6MulIL6Bi/wg2FMwBG/xTLD X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) Reviewed-by: Sergey Senozhatsky --- 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 Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 8B8C62E7623; Tue, 8 Sep 2026 02:56:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836199; cv=fail; b=gv7lWg0fuJPomoNas28ADp3yVTle8iSA4lF8bWlNidQRdxlPIdsra2v4LKs68eIQRNufQzwZP2F86+/Xl94gBUNQoS5m9pDWtyecq1lLlC4c4USNJ5qq3GPthgzJpYTOfZ5CMgZEGUtL4cNk9+hqlGAFzrPt2jYu5A07v6e61ns= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836199; c=relaxed/simple; bh=r3mTDbiyJ6Ri8cCbs/hx1DhztVQQ0CBclSWQcoehl6w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rmPwlO/U6F4ijvq5OHqqV7R+utmwxae94IkzZIZWkhqPrxk9xEl3t8+wk+vlArwCF/kORedI4pa29Q+ac9ZjpKAm0+KhjgpXO596TdgYKCvvtfXoHbldOKPgJ5sI5eAMLTcEGZ+oiP7ogXRiSMQeM+BsEgltTr2R5Mmz1CbSPwE= 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=fnzvRsdG; arc=fail smtp.client-ip=52.101.57.56 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="fnzvRsdG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZwxgY1r94GDAr50yfJU2nRd7tYSZPeM5xSckZkKTO9EzZF/zj8wFiWsu8nTv5tgEIEFYXIAGaI04qCLmdMdXCwAsOjXpLQw5+e9PSMIUOb9vLwRJ2cqpq/cUBLlZB85nalR1aoRA2zuiJHVocTavyeQgcOJI/7hgEPN0QqlLdrRy0O3bjagSEf2MKCxvHQZguHEb5KhDprzUuQ17dyfDxI/QNTYu/za1VsES7838QgyJHZRwoz5HOrLwRMIT/hKmqiuUr3MRU2LXL2gHoCPJExO7tzFUXZrtqGpYd8hulKZz5tW9QZw6SWdzVzawT2Dl+LFpX995MczeILdZqA7u3A== 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=RWf68+U62rzcZtFjE+1u6lMS+pYCF0GHSxmbUKpBzPPEczILzKDU/raPhTQp7QtVvypHr8TVeQC25MB4a1DOQQ2eSRy2KOq60Aw+TwMVHGc4L5rlJPFMRrMigb+8E8IEs6M5KeZbD8lymDWHB1WhYma1sprYv6b+8hp+mDNdU0lWAwkiWZfJ8WR/8QzczZl7ijIqF6EaQaxMlPJ8Q5Cg00HchAL7LyYqo+WnWcOXfXK0yONJL+8piUrhPM/41MR6dKWW2XtkNMkOHb2uNs7PhAwU3ToZS7597h+IjG5w/+nkMJMyhTmfJ1Vor3jzBhyvQ8MJ476hrZpKlFWIdylICw== 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=fnzvRsdGXtw3Z6Jm7J+FrXJjRfuETSt+3MiWuYXRGLeH3FNlPTSvOGidUJ8y2MJhOsB3HdHs8Xz3RPIsKZzHecTlfxCVlrKhfLznAzsdrWD6wXWZsR7IdXfbeuxorGGK9xmWLkc8WwxP52YtJfdXA4t5m3PiibecGTb9McZXmyYj9ugNZunQCFhRORFfjBqezWiF8KzLc4f7NA/jdYMfdIDUho2AQ7LlGYpPA2yZAmFy04/3sh1cPbkNEbDDrp4XDzWBvbzYpz3y8pJsRr0nbJR04368pIVi1pP2QI2Cb54Xu7qL0gIIjLKQpfV5gjyUFJNLOfcb6ZwLQQBMIntFqQ== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:28 +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.0382.014; Tue, 8 Sep 2026 02:56:28 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:09 -0400 Subject: [PATCH v3 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: <20260907-remove-pg_private-v3-2-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: MN2PR03CA0027.namprd03.prod.outlook.com (2603:10b6:208:23a::32) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b88c763-ea9d-4434-42da-08df0d54c798 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: E4sVKwAs2L/BvlivQlcvHg0unm4URMVwG+gD3Pfrsciy1vDQxT5p8CKA/dNXDZadmGZKraLhQ3NqmB5gKMFjN13u4lxts7f2gb93EaCUzjAzYCXCGX1EoY/4J/Mtaief+S7e8FT6yFjp9Lk8IfZPI0oI3Y95rFPBibOKn4Lnhz6yK1DTwe4fG6m6XCGCvQ30z4pVCd9K/tZMRbwd33t29uMVNW5MDJAcKXn7K6rXBhoel2iq+GzLoO9xxEAa0GLAQ7SUGa2DpMIXLhG5x8XZ4+my4LzxmK5J1BMwvmH3xXAMtNH/kkg5xjCSVTechAjQxgZWg/zAaiCCDCcwRQnKfvkZXGwQjKfmwWLai3Zx29LFamDIl2nzdTenm2IhUdcuJ9L45eJMCWZiY8H3FFXjmzxpKuQXndvG+9epGvmHDta4ZiHPEg56RlYFUQFVj7Lb0BaJQW3bfF6Ijdx4P/BlKBI8DBQuLYGnl4y1csKyz31wbmO8f3qA/5BXMIYjmdVb759tINnEzxSQxVeKvTpkiDsZGvm/6lyeQEQL+Yy2g+EYeCOg/ASPEeijXCy+xgaZtkqHnINSUbnKPCM/+J6DPIF0F7B9fgAcCuocSi80kNL+p24QnW9Z2Slu1UGviNocIbitExbgH2Cj4ChSNMnzrfsPL1dDAqnkAEtJ2kIZS0iYHCzfeWBZIEAf74wozS4H+zNnHveiYu0pDyRvvqW0Lg== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SlFQZmM2NWRzajdIVXpUcHJ5WHVOb2xSUE91VktsTDJOakhtaGx0NTVSTDZk?= =?utf-8?B?VUlLbk5aemFCejFyR2x5VzhML3FDWFFuTG5GMXZVWllPUUFXOW93RmxEOXRl?= =?utf-8?B?S0R2VTIxREtIcHpEdy94YVozSmdjWFg4NHRLWEg5dDhRT1Q3Nkt0d3YwZ201?= =?utf-8?B?L3Q4NElpY0lNNHdTUk03VzRVZWRMMWpMZFJiKy9KdjlaMmJtblVYVjI4Z0p3?= =?utf-8?B?dmVoQVI3YTR1dUtNd24wUE5JendlY0I1UGdDSVhRdHZncWpBV0s4SFY0KzBD?= =?utf-8?B?NnJENm9MRjhmdTlzWFdnU3ZjOU9Qc1ZoblgzUllISmhUUGhlNUNhRVhaQlY0?= =?utf-8?B?c2M2Y1dKUGNLb0FBUkJSQ2F3YWdZYXc4OHZpNkJWbTBEVGp4cUxlWi9nTVJh?= =?utf-8?B?YUovRkxiT1RuN01MUWRmVXhrMWZsTnVIMkNFVk9tNjNrK05vT0g5VU1VaU1Y?= =?utf-8?B?RGNoOHJ1QXdsb0I4S3Y2QkgxSWZaYmVINHd1SVVQbHloTkF6dURjZFRjdkhR?= =?utf-8?B?dURQM2ZlbG11ekc2U29jR01PaFUzMzBJNHU5NHRzdHg5dmpiWjhDMWhQTEo1?= =?utf-8?B?VXovM3pmMDRBTXkrVlNoaVpPaHNLOTdxTFlCV0M0TVNkUEpwbS8vVXBpK1dw?= =?utf-8?B?YUk4U2VOeFYzT3NudXlMblRsa0ZxVlJDRm1PNHF5bDRXWXl0OUFJczl6Q3R0?= =?utf-8?B?VVlLMUhvY2Z2dWd0My8zSjZTSm9RRFMzUWVIbkoycmZmVzcvcHZ4REtQRDYy?= =?utf-8?B?aXVqa1liVjZSbGRPczVCK2RIVG93RWdWY2ZYQUpLZ1FPRkRpM01FVUNXMkFL?= =?utf-8?B?eHROODNYZk4xOUhNSUFRcURab2FHbHJLMzIzdzNHK3VuTnljSGllSjgyZXNY?= =?utf-8?B?WTA4VVI5MHdpSDhDMDlyTXR0ai9UY2QyTGJ3UjdZbCtHQ2pQaFJVSkhvOWR4?= =?utf-8?B?TVMvMGVtUlIvRVFaNktSbXBRR0xzWXZZaVBKdU5yMDZhV2MxQnA5ekVlRTVP?= =?utf-8?B?L3E5Zk9rMkxYSGVZZXZaVWxuZnhPU3BiWDYrQnV1WXp5aUhZSmkyZXJHZEZG?= =?utf-8?B?Tm45UDh3dm1TODZDck1hRExMMG1VL0wzeWdlMVVkRG1iTDA1NVN5YWY4bFBl?= =?utf-8?B?Snh2aHp5amNBNHZyTU4xOEJYLzVIaG5vTHc1QWQvSjRYYjJWMkVMWm5HV2d4?= =?utf-8?B?elVLczYxY0ZaRndPd0lNVGo5eEZyVStxMmRjbDF3cWl3enFLTGo1UklKM2I4?= =?utf-8?B?U0NCSTMrTTNleVcwd0pHMEQ5dU9xTEdxUXhuV2IyaEZIZll4cjIxVkFoU3B1?= =?utf-8?B?VkRQb0tJTGI0N0VaY2xYdTh1aHoxa1dXZThyOHZ1SzlPN1ZPd2p3Ulo2UHJS?= =?utf-8?B?dk9zbXltbmp5Lzhiam5uOVFWVHV6dVRFM1ROVmFiUDlRVnRtc1ZsTldxMnRR?= =?utf-8?B?YXFzMi9pQW1lNXo0UG9KUVpKV29MbEp2NGxvTDNUbEJ4SW8xVEpSYjYrajFY?= =?utf-8?B?WXNDb2RHT1YwRzAwclA1bENmdms4NnJWVVo4Sm9zN0tlT0VtSWcwVHVucUFr?= =?utf-8?B?WlN3emNTOUNoc0pTWmR3OVZVY2hLcEIzNWkvRWduYWxSOFNpSXIzc2E3Rlpl?= =?utf-8?B?SjdLKzBIam5uTlJKUU9IbVJ5TGVNMllDdDZzR04zek1OZlNPa0x0N0RaeU5j?= =?utf-8?B?M2tzRjZWa281Rm5rY3FUSFZ3dWp3WlYrUFJEcUlhV2VrVHduMGdlWm8wenB1?= =?utf-8?B?L1JRV25kRTRYQ1lYaWxkeDVFNGM4SENodVV2SE14RWQ5a0taK1lOblZpbEpW?= =?utf-8?B?M0xaVmRCRFViZ2VrRHE2eHRkMGIxU3hjMUQvNHh6MFVuZXU3Z0dITTR2dmQ5?= =?utf-8?B?dmZmOWVyZmlXT2NWUTIwWnhUcHYrQjBrM29POC9NcGovM2plekxTZGw1WkEx?= =?utf-8?B?Z3lYTEFjaDBVeTVXMTlSRlMzM294aVhRSlpHQmhuTGpCdFc4dVp6VXgzMENR?= =?utf-8?B?QUhYSmJpTGF3dXV1TGtPZ2lnMno1cVVHNk50bzh1YmtveHZCOU96VlIyMDhN?= =?utf-8?B?b0hzNXY0bUZHeDhZQUpyYVlraW5QTTlvb3R4Q2pzMnEzTDB6N2xQK244eEZz?= =?utf-8?B?bm83d3RqS29YWU1wK0JjY1NsRHhMNzVzN2tUSlVnYlVtckcyaTJPenEyTExZ?= =?utf-8?B?TTB5L3Z5TFVqd1ZXNVAvTXg0dVRwRklwdGk5OU5SMmozRDU2clZJdDgwVDBi?= =?utf-8?B?ZXRkMXJOUXovclFGM0JERzZGc3g1dmpLaVBSM0tJWEVvVXN6aGVBVGM2ZmZH?= =?utf-8?Q?p9Aa0DDlfuhLdBAjVx?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b88c763-ea9d-4434-42da-08df0d54c798 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:28.7850 (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: VnT1nC6lfYWyLShhQUD/hAEvxo78duc93+N8eS5FStQ3fQJwIKo5GIOtfqhTpDXW X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) --- 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 Fri Sep 25 22:19:30 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=1788836242; cv=pass; d=zohomail.com; s=zohoarc; b=lTeG0Qa7cprcPlWosg2sBxlSz5JdB4ZN3QKNrg5PV5qxDe+9NNZSeXzVpj9fLTSx1yqP54dpv7mfXdFp5F/1v+cB9puhjyxGkyVNmPunvAEuz8uXtjYZz+n1CBCER+eqtN3d06kTfZ37MfVgVBt0f5RzlDu8Hi4dfkbYvyQ/GSM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788836242; 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=LRZLemIQZNsDK50rmLFgk5QZgZIdeTfxJtNPZr25xADyah3Zi4PwZ6iGk3hcKUs1KRNz/p/gpLkIzS2QIJtsXjj3nFKIrvYfT4i4SM52oXp5My9xIP5Gp6esWl4YmlemjxKnlxCyT/VquCAHQ7aAmyWWKzZQAfJAaSgc379MKOs= 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 1788836242615667.2544145325954; Mon, 7 Sep 2026 19:57:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1411097.1641836 (Exim 4.92) (envelope-from ) id 1x3m0m-0002yl-Lc; Tue, 08 Sep 2026 02:56:40 +0000 Received: by outflank-mailman (output) from mailman id 1411097.1641836; Tue, 08 Sep 2026 02:56:40 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x3m0m-0002yc-GA; Tue, 08 Sep 2026 02:56:40 +0000 Received: by outflank-mailman (input) for mailman id 1411097; Tue, 08 Sep 2026 02:56:38 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x3m0k-0002yW-My for xen-devel@lists.xenproject.org; Tue, 08 Sep 2026 02:56:38 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x3m0i-00BVAx-FL for xen-devel@lists.xenproject.org; Tue, 08 Sep 2026 04:56:36 +0200 Received: from [10.42.69.6] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a9f790d-e002-0a2a0a5209dd-0a2a4506b926-24 for ; Tue, 08 Sep 2026 04:56:35 +0200 Received: from [52.101.53.18] (helo=BL0PR03CU003.outbound.protection.outlook.com) by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a9f7962-195a-0a2a45060019-3465351205af-3 for ; Tue, 08 Sep 2026 04:56:35 +0200 Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:29 +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.0382.014; Tue, 8 Sep 2026 02:56:29 +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=QZ5hLKHaYzmJkZSLcIYKJ2gJ+/N4E7Ljz8W2kKf+SOtYnLwoFibxJ+OyoYlZRwYorCx2u4VktKelVQ56HW+6lLTH7rMkPEHpZFYOETZXm308oKSLnYBTEjqKADN/izUCYf+0HVH2fDX3jWv4XhGS383/gVAPkzNzZ6gFs88biQ+ei8t71phKXPCBA0VZ2tRbylAUxiVxD5hF/jkYswbNAGoTLwkoOL8IHiZ9GuAV+IGpd+uS/xVNLLcJ33rW3ePNSMZJemOYhPiKwYKp1hH6cPMf6YW3LEZmLWKjAuZmgQxpgRm3G9yzQoz8LvozaHs8/9/z/n+ffGYskJXq2ecZCA== 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=P9DGD2WqumsVeUHRW1wsQabiE4SdQC62RmuTLn0BFQvCWYHGvu7Pm6M2a+dTlVDZCD5qHtDT+FWaTiPvDjcaVv53oAO4FBbnCIWWgsmhpktgU64momMCeW0sLZWdwvVAw8qix2gFt5RFav7isTm/NKncT8zW5k4Ow89HrKQaB5eiFklaLu4vyRU4sJtaqBw8BMyRad2k0eiiJHPOnniDMZgWQsQoX2C0yyttEHkFKKHyDrJ7qOBWEwYTa6XFNuxKV1YlGS8o4jCDeoNGrvK0atuQJRhp3ylNZztlHQ/qefNk7o1ksEWUvGndzmO+EwvqtR5fWqqCMbMJh1bUPt3Ljw== 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=aDOhnCljt+nkoWR04sKhhWlQezDH6t5jOU6EPM5JMpkRft3AU2JVG+vr+Ig6vC5a+OFe+hcCf16TNV2gf0TGjr0sGr+csi1xYdTp7t6UCPVrzfvX7r5bv3p0lECox736zOqYkjAIMtSJScdiW26ucq0A28WBBhRs0o3aCkU7s4AXxv7FnlXDrQcAbbGJyP3fQ0jjsgaufGXjVTTwBRqJQyycoIr8mk82CEotTT/odZQJFiCUL3OvUPwJTGS0L2ww4v8zKZEAwTbUORxsNi9J+4Bc6IW17xlCcIeOOGroj1tSk+b7OJ4fvsgqiBMspjSbzXrnaba1ndekyHJIMGcjjA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; From: Zi Yan Date: Mon, 07 Sep 2026 22:56:10 -0400 Subject: [PATCH v3 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: <20260907-remove-pg_private-v3-3-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: BL1PR13CA0335.namprd13.prod.outlook.com (2603:10b6:208:2c6::10) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 311f21fe-4e34-4094-6a66-08df0d54c840 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: jbSabVQG30RHv71lVYeVvSNmq4tYCclGHpQ7tv4QEmjEItFEMzotKrbMHuoBF6ELwqr9+ZHiyF9B8loNLYGK59EDFDMTp36tIuVT6z8KuE8qEhf6VmH1lmkUSLQTCR/KzQGmn0BkdsMvv2BjIumSIdtFqKfMbYKrEPglyyjCW6dCV1m7BmuX0e3t37qT7LsWEf775QlJK7zxePaNw9YUhXywmgeKB1QS5lWuMkpsdYbD8emlRRDjw7axZauZNtWHl1PikVX/vGGccGiQ5lYqJS3H+Ex57Y8WW7geIaMLqwNV+2LByXWbfF7HwBQkXOKs81DpcRjKfd9adzx8xVWPlo7/X//yiv8bAAnKgnsPRegcfUdjvUimhsUGaHC2qTvWBbOLkRsFvRgs1bNBASwFi2u3anJtEKV+euddny4H2ZSU6iBohjLbFgo5ZMERe9ff/6Lkt0oQOho7rNU0znGOMqh8ERqZLiO6lrhAF4FvtSMV3J13tRmQmZrw+/uAgTJUeAbPUYQstteDqlAV9tKM1+XmMlsQ87pKsO00OFKc4Y0duKFhs47zZIMxUunsl44dw0OIS+sLCkUpqeL5+ccrYCl1eFkU1A38Z71mGH+bg7Yvzwq8WAgTri0Lvhmnm4m+8d9N3yKrV5S+FU3spNC974KlzB4ZIXrlMu8k0h5kUjKxkIeuRujjPzsfaLXA3xtjeObYR7sx29+KnRMbQFo9+w== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzFGbDcwL0c3a3A4a2ZjQjRlT3B5ZFZWOXJSSGJvaXg0UFZ5M2pwV2R0UFd6?= =?utf-8?B?bXAwcGdQZXRUSXVzL3d0cmlhbXZvVFUyMEM5ZHpOM1Fya2RqVUhIbWZ1VjRs?= =?utf-8?B?cVVKVGR0SndpSTQrcjF0ZC9WaTlVekRXeVBlRTJJVHozeEd1cTB2ektzRi80?= =?utf-8?B?QXp4K09TTWhIZklxUzlJeVc2VmVPYXRvNEgxQitnaG9LdFFkb1djUEVoZ282?= =?utf-8?B?SXJaY0pCaE82UkxGTTV4Uk0waW0zb0Npbi9NR0lRcmlJWlNjUnRQMm5BcEUy?= =?utf-8?B?dkl2cTFsZjdTRVkxYVJ5Tkd1b0JYak0vL2owa0RrVVJJM0NHOEZBUlBVU0RE?= =?utf-8?B?MkdEUXVGVXJYWGJFcUhhQmZKZkQ4WUJnTGlpeHlMTE5rcGprSXd1cElxNWtt?= =?utf-8?B?QkliQXpLdVZ3dUxuVjRHSisrT0JmSHExN2hIYWJzeitaZ2ZkU2VjdHJ0a3RS?= =?utf-8?B?ZFo4clRlM1Bqald2QThOWkc4WHpySTBtcHN5bExQRjQ4a1JCNzVDUmRzejZZ?= =?utf-8?B?SUJwZHZqNE53REtxRzNuTnZEeWFBRlVFYlZFUDJvWEtST05rVU8yTjRhVk51?= =?utf-8?B?RXE0a0ZPRE9PSVV0dkdMMlE0WmtaMFBrenhTZFRac1NrbXlBT0l2S2s1VXRP?= =?utf-8?B?YWtJQWZ1NHhqcFJST21DdmpvM2lBWVRsYjN3dk4rL0E5ZW9XNTJGckdrUzhH?= =?utf-8?B?eFhIMnJveFRxOUpLNG9jQWxoZW5XQ0FBSmtIK2F1SnBrY0tjVWkwcmZmQ3pa?= =?utf-8?B?VjBkMWNtc1d6YlBrRWlWLy9QM3ptRDZ5dGpIRXJvZG12VlpFSkF3LzhzVFU4?= =?utf-8?B?KzBYSmk5OE1wMks5NUF1UEdTWnNpOVRkazJ0c3RjRlBMR3JZMUhpQTBhcW5n?= =?utf-8?B?QnVMbFd6Y0dFa0lETGhhTERjQTJOaGFmczVkR3BSNmdLWkZwQmp1MEVnS3BD?= =?utf-8?B?THZRNnBmMzZYVVJZRnY3VStrOXdFVmR5RlZRZlFyRVY1eGZEblZUMnZpdGZZ?= =?utf-8?B?Q1BBamRFbkNVQzlyeWQxZ1RQS2loTzVob1BFa1V0N2NuWXpwbHp2dHBwclc5?= =?utf-8?B?NkJXL1NuZDRKY3pwQU1YcUEvdThqSGhRVStWSlZFdTltcUxqbzFXUTN6V1I1?= =?utf-8?B?NFpWWUV2WkI3am5tOXdraFh5V1UxREJpUy9BeEhXUWhPV2RnV0M0NExpaXd4?= =?utf-8?B?S0JwZ1UxVmdWOUh5TkJmK0RJaEFBSEZGMHRzWXg3MW1ML1YvM3JETW0rd2pm?= =?utf-8?B?MGEzRDVtTGQxYmIrMWltZjBOcmd3NGIrSzVBM2tkanVHNUFXV0VDYUJMc25Y?= =?utf-8?B?M1JyUm02K05jZ1BSR2JnanRKTllVRTRNbVlCTytGN0F1MXhVQnVLUmNsbTRZ?= =?utf-8?B?K2VlNlR1ZUVBZVVXVG1zTGx3TCs2YW0yeFlhRkdhcEk0eXdLaG4yMml4aDJ2?= =?utf-8?B?MVp1VDNGVE1tNnI5MEFQRVFJcWdpUHR4MkUzV3kzU1V5Vk1MQjFERFVCZVAw?= =?utf-8?B?Q3Mxak1YbXVZNmYySk5kTEhhcGVMbkpKRHRCVWdMRUFoMjJhelFZY1FKbkM2?= =?utf-8?B?enVBSTZlWkd3L09IeUMzQlFmdFE1T25DR3ZKeU9WVDdLUStKVm9Ea3kxbDVt?= =?utf-8?B?MmlHVlhGdldLTXRvbm00QlowbWN1UHB1cm9YYVFaT1ZqSEFmSThlVXpxU2RP?= =?utf-8?B?dC9XaDNuOEpoUTR2WmRaRjd5RXBPVFVxRS9XZXUwTUt6b1JnendZVGQvUjU5?= =?utf-8?B?TlVhMGlWcUk3RWNiZDAwRTBEcFBYYXVuV292RDJ3aStIZk5BWVFpNE5tYmZp?= =?utf-8?B?TmpGR2EzZG5tMEtkWkxsSmhobEtVUXdNWjNFNE1vbFVGMjBwRy9OdFIxR3hQ?= =?utf-8?B?SWhuTXMybURZYVpMbDdCTW0yY2QxVkpPdHAwM2JDUkJvY3NpZ3I0YU04TGJD?= =?utf-8?B?YmJ2ZkhGRVZWY28ycnVmamsrL25FeFhNQklpTWFwU1kvdjBTVE9GLzNhcWcr?= =?utf-8?B?cCs3cUJOQ252ZmZqazlmNWdCRXJxLzZZYXdMVFppYThCWExMQ0dNOUo4eWFa?= =?utf-8?B?cTFDNituUDBPSWJCVmtrdWZuU0N5R2JBK2cvWXZHRWFIUjkvSlY0bmQwcUEx?= =?utf-8?B?M1pKRmVXTFpSckVMWm9hMHp6dW9VK1llaHM3cXZyRldpSWMxUEVncWZNSWs5?= =?utf-8?B?YVNNYUw2OWJqbG16ZitKL3lUL0k3ZjVwK2NWdU9IRTBWbHdUWkYwL2VWcEpW?= =?utf-8?B?bE5tUjRJcll6MjRYT28zT3FBS0swY1lZWWRjdXgrV3Vnd2xNckM2Uk5ITzJH?= =?utf-8?Q?lBp7EAf5XXWIufUjfY?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 311f21fe-4e34-4094-6a66-08df0d54c840 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:29.8638 (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: 2QlM/uczXHjWE7PSdJaYLIQu0dSp0UAjugrRRw4tmD2alv1B38aHLz0wjbAg2Vpg X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 X-purgate-ID: tlsNG-16d1c6/1788836195-FE67277B-69239FAC/0/0 X-purgate-type: clean X-purgate-size: 2610 X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1788836245135154100 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 Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 721522FA0C6; Tue, 8 Sep 2026 02:56:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836207; cv=fail; b=A7KtaeLeoHVw0XGN73CLkyanacZ8fC/+qQCUADFpNEz2lDfhCcX50RtG3y9eZQ6ZMO9wcMRx3vLVRsteeqY0pnXaijWYzEWd650QnJzlBJKGD7DBNdW8JWKB2K3pxCKxon3NhSg0Fezqt8R2quqWRRQyRir/jqtSXva4TY5mW2A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836207; c=relaxed/simple; bh=Ty8ogNj7wZxdWLgSnH0+9SZJOU9go05juWfxSGyaZuo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=GpXNFUe4xLuNBIr760+e2lkTp8sfcYw4+qLvXMw2lSCUGfA5IlVZ5NrkpSoy5xRM0Xm4AZ20v/XLSqI7YlCpNwW+DkFg3sn5rTbp1wfUByuWZ8NNC/ZrrNp3p7FTsCqDHFh9kWyP7ARkgZRST2gJ7D7TG6ZdC919Tc6TIeaOiik= 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=mMyNXtX1; arc=fail smtp.client-ip=52.101.57.56 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="mMyNXtX1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FVamF+vknjboiIu4xnKCF084W5+FT9kSpDVQtQzwNId0DZUrCqJdsWMJZCf16JM/eivC/a0DgZNbSXU0xLvCJRwSDYPkmD1Srt1OW7tkQIU+ApCzpVfMJh/rtQayrBffP1autmIIngLEkufmUarGnzR8mpxHKkC+KEOqOrHStDJY7SsuiBSy60IEfRIU9hn79RtDfxDkIWVwPbfujH3ddGgV0WMpW9J0Dx+6ovH832EUnsWAG5LXT9s4jqoUeK5ymP3Tzhro5S+gpqPEn6NWXqfx4ORLeaEOL+sJeYjCCaxaQHlnhZzpvQgVdVd4Tz7ibxA+XnXBYb/WK/MqmQkW3w== 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=ZSEif/QkKaKVtpJJx+qBbVHMFaIEw6hSJg78cX6A/p8saO8pGqQIMBbLc9eMWvXSFHRxoGLu5PWLuBj0BYVDDRm5ZGzsnhejLac36pdBdLYv2aPuoJYHbHGqZMDuglvCk7TxxOOYTvYcsJDSU7GeNxaPEuY5qnr3kOnCl+YEWmdYue2ztfGo39+vf1WCNz8OjcH8o+YGFseyOheu64tcgdqPDdCsAu54uGaTY2EfmeMYjbMDd9ohTw9DIRrq9IPH5uBLOsVG9uUSKdPt8Jxo2gTGjdc33o1PWF5u1cK68WBN98uDkn4u40Qk4jcopfnGTkvgxVLQCgvI/XQ0PakraA== 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=mMyNXtX1RnIw1ta0aaDOi4SxokGe32Qp4FLY18Tn5yRtu7ZekwFKoP2FFhRwRz1Ib7wjuQuNsNemdv1ECgjcxcWzGr6yfKIzJ6HDDFO10/LBlUrmcmAPyFx0EHxyWsfkUzkc5rxDUDafgXO3n+99+IleCW371do5onz3PsIO9XHqs63sU2mwfmJvaLsJNh2qqEIU8BB/aRVCbzyqA/WM0CLiDlL+XLeaIH6QXFZR7y7sTW6zUA3plOv2aW2OgHoJtI5Szmmkw2CDVZT/FMiqE5ULjXafREOn1S2l6EZhAmhwkP+VHjPiV22kr6awXm4Zh7gQNMaVV4NmIQv7pGiItQ== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:31 +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.0382.014; Tue, 8 Sep 2026 02:56:31 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:11 -0400 Subject: [PATCH v3 04/14] fscrypt: stop setting PG_private on bounce page Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-4-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: DS1P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:8:451::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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 88d1de28-9cc3-4d5b-1f3b-08df0d54c925 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: YOYD8QjNOmgaavs5owygNd+yFGQiz3h7QvocmuUT89ZfHMmeWSB96qKSVlq1XMFiZ/2StAHZskhusLiw3f79CycTSp2YECqlGtyd46sOTXqZzsM81FN+JLzOjygfPSiMBA4AxOiu1ioAriEgB0XN+nY/JHEPhbira3Ze/jjyeW7rcuTkD/VLTwxsRtBXA4io/19RXHdP4atFoHevwlGU8TQFfBmPltNBCvryFQbcjaJ3HpOwpeIpnN4jTv27gLrWYnc13Em5EhcIDWvna9yB+WKFXjCOdCMgV/ZecayPINhRKvWlcbB1iTL3Byy0OWLRcLAdZPWEaSjZ/KaevQ6VrlTrgUMr2tH6eYoJc9r7/2YbdNStApLf6zrgETixLbP6KHTxEMIhgq+AkbibLzBFKMB2ouvFy/XchsloEJ49QbQtUUT2DGWC+XfN2E8wwuT0rJunpjlVZId5IBt1KjTpdPbQW1IWHRumFBrWhAROHyt4zDjgb7B65i/GiAWlJ9fVMt68EeO18usr+UvVLgx+7SIeEUl/2aJ/YgEt4ozNhchzoaTqgFBrZPp77UFaEu1mXfLrY0Cv/vWy04rXrU1O9HL/ck3zaNVnK0q2w3VPfh6Dy+g0a7+ajZzemSOKkcHrnaj3nfRGgywbm0ZsASwx44CHBYfbAaK+beSmSbQVmk1hbxSUSnrak28SChLxeUMC5pdYHHallsGzN6H+nWQxBQ== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WGtLL2tzdEUrY3FMZVdSMWN5ci8vU1pJTFQydnZBZEg2NmtQNG45MUFwODdx?= =?utf-8?B?ZkF1WHpyR3I2L2RFQndIK0FWclBvZTZTMytqSElXYkRIZnp0cHFlejV6YnhC?= =?utf-8?B?WXloRjFLaUdmZWZKcUhsc2ZpK09IMWNpcDhHclZzbHp3c3pMdVdlYWpLZ2px?= =?utf-8?B?MGJlZW5EazJ4c25pTnJIMWNlSHNleFlOc3A1bklBRzY5OG5scmpTWjZENXIz?= =?utf-8?B?NWx0cnoydTJrUHU0ajM0czhUTW9GOFFzUnlibStoakFZbDVGVzYvaVRuY2h4?= =?utf-8?B?ckJ1TktNUWZlRFNXTVoxT2pMWTNrV3czWFlVdFRwdnVrbmV4c3NKSmdySWda?= =?utf-8?B?YkpsMmp5MHl0R0tzblk4Yk40UFhneVNsN3ZiR2xmdzg3ZVROSDFoTEpsV1dX?= =?utf-8?B?azd1WVJuMFovYXVSSzRpS0ltM2JmdXY5ZTB4N2Q2WDFIdEowdWRYaGtqMzla?= =?utf-8?B?SkRyNGtMQUI2SEdJWEhJM2RVcVV6Z1JnejB4RjhwT2M3RjZnNUJrQW1kS3FN?= =?utf-8?B?Y1hWY3NjRUsvN2U4NGtNRUFhRGVteHo0NW1DclhGZlFsSmFvSExQTnhYR1Rr?= =?utf-8?B?T0J0Y1VsZFl1bmVuTEs1TVVhVnpOeThmYUMrUkVoSlZGYWM4RHN0MkRZdzdV?= =?utf-8?B?eWRTM0JydUtCQWJubi9RRUdSWnRhazJUNTNOMGMwckpITFhLNFIrZlVlTzU0?= =?utf-8?B?ZFYvbno2OG1icm83UEJZeUtFMlRCZHdiYjZQYjM2RzJLbmMrSFQ1MzVOZitz?= =?utf-8?B?Q2RuUmJyRXFDR0lISDcrNm9Zb2xTcC9tMUYrczlQSnlZUTBKbnpKTkFiTDAw?= =?utf-8?B?NTlyVEx1QVNEeEpJQi95UGU5dGFTZkx5UlhhVzQrcCt2aWVjQWF0WkdmaEJj?= =?utf-8?B?dlNZN1dtM1lUbWpYcCtiU0E2SmV6Ky9RakFGbWo4UmRHSzkwVzVhL1kwMmhh?= =?utf-8?B?R01TQTIzZ1Z1TThRNzBTdjEyMXZwYnBCNnkzSnB6anNnWVRRd3FyNDJ0T3BT?= =?utf-8?B?Rlc1ZkhURDQ2cFRETStvUFI3QTZtMEFsV2QrUnVSVUlxN1BMN2pXSkNmN0Jw?= =?utf-8?B?RmQwWjdwTHBwckcwVTN6d0hISms3STQzdU1DRWU3YndYM2h5dXZvVGt2K0xj?= =?utf-8?B?VXM5Y29BdkpvemFTMlM0Z2Fock96V1RDTlpTcUFFZEh6eEdOazBQMUJOa3l2?= =?utf-8?B?OElmeDdqZ1J5Zlh0c21ZdzNuS3hwcjYrV1ZpU3duN1dJUUFtdkN5RDZGSElH?= =?utf-8?B?UkdYUU5iTk0wL0l2Ris2MXJ1QVlweWMvUm1mUVUvSkRYcS9ubEF2ekN0VjJ6?= =?utf-8?B?bHdXSXBmUlM2ek9OS0VqcWZlWno3SE11aWJCRm55YW5rMXhNN2tNRE0rejUz?= =?utf-8?B?bStIc0wrTmMvZUV1aUxyVjJsdTZBayt3bE9QTndZWm0vNVNMTEhEN0JrUUY4?= =?utf-8?B?L2YxTE1rL29YTytKeWp5OTJqc3VGajJjTGZ6NExkek1GSkRYSXFMSFJDL0x2?= =?utf-8?B?SFV4RDlCcXhLalp6L0xoOUR3UlhhZGtHd2FEcHdlQ0VDb3FHRFB0YkNhS3FX?= =?utf-8?B?VVM3R0w1UnhlOXhGcDF3Qm8wajEzMFc5WDRsTWNUOWh6OFBvYlhyK21CNmVj?= =?utf-8?B?V3p2Zml6bnNVSy9XSmxRQVgzYk5FZnFFMlg2a0lZZ1d2OGd6ZkozZVR5QmJS?= =?utf-8?B?eHMyMjZ1bldILzVPRjJmMVQxa2o5QnRMYVZYUXdPOTREenU5dVgyNGVzN2NF?= =?utf-8?B?SlZjbVIzT0VMVlRtMWd2aEJNN05UWFNjSkpaZkdydGFKbHpWeElEbXVUMHlj?= =?utf-8?B?QzhLSnQ4eUVvUjBRQWtFYmFmSHovaWdBZDdvMTE2aTJrN1ZjOTlOemE0aHdi?= =?utf-8?B?TlBhVnZPZThzQjVMK09STWVYY1RTZ3cvWE12RjNvZ3pwTmFua1RFaXhnSGNP?= =?utf-8?B?elpPdjE1Yy9zNTBIMm5LQWl6UUpaRmhQQWhNaUgralk2SDhnY2tVS2V3OU1P?= =?utf-8?B?cXBCMVh6YXlTWWFNalJyd1k0SGpnNFRQRGljUTBoNm83RjJza21UUnVNVEhD?= =?utf-8?B?RVpzYTc1alJKK0FPaEpFOXJGK25teHNlL0NLT1RyVUtOSFducEIyaXIxdFNl?= =?utf-8?B?dmVLVmtzUS9aQW5ydnFvOUVZbVdCZmJLZmR1SGJ2ZmpOSWJXTld4eGJ2RldY?= =?utf-8?B?djB5V1UySTBrcmJSOE1XUThWZHNyOENiQVJpYXlHOE93REl5ZUVHeUtINE5Q?= =?utf-8?B?MHQyZ0tJZlo0SHpwWWpMMjZEdXNuKzd3aGg3WHFGSUxMM0xndVBHRUtWYnlL?= =?utf-8?Q?u3ZPWAjckKBw2tRAKm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88d1de28-9cc3-4d5b-1f3b-08df0d54c925 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:31.4073 (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: 4Gksj8d/2nDz0YgDlbM4c5+jN0uDWD3G+mRMLBVw3S+mzertBN5WjRflnF4pd0wt X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) --- 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 Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 7E9712F60B2 for ; Tue, 8 Sep 2026 02:56:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836209; cv=fail; b=owxIyY7cc5+GMfo/cObos1AJbD9pVQxOukL/ayWVy39cAf+/csKxplYHwfJWSl1g7Heec2Yulo4Plnc/nmKav/+RnF50nfBwHkk40KAYfiM4EZSFeg2rznhndhJSzFk7rSaAw0eIpOIUoKUURjQNCyeVF42h4iPZwnP7Rah+5Dc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836209; c=relaxed/simple; bh=mVKkZ2CDSFxR9TTuEmFhW1WwhqEtHNwYb9eF0KTJgfI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=C1OQwB8xIKsxe2AJBmSJoIDci9B1e/y6taI4qvrSyLPxDNca7ky8xharbHZ8OSRohopaClvJH0ffgUoX8Jvyp3zJKEOX1X4a02P8tsc163DhrmUZreEDSQK98xz9YlVxEhTTNxMiVEaKCpF5GQ/eGjQZXZPGSyAW4ZVhZ5/AVs8= 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=oTajnPSM; arc=fail smtp.client-ip=52.101.57.56 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="oTajnPSM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QdiicOlXeWJPZQVkO43huVeOL7I6LCs5l4B60zoOU0yn7HKlPC82AB8NGgTq9d2c7gIfu84fV6CJ4rB4WGkM78nsjzngy8AaitFD2yrKUwyby3WsOqZEKzAuR2rZXhu7jaVIjKWcivCPDVPlUEnXa23IIPAZvnZxr1N558Ktz+HBRYZgWN2BDswHl6EPkrFsFWg+c/83iiCOzrLazlNT8pMCxax1lcMEHEQgwfGiYtyPmnqaPWbMQz2RfGSxTBTq0R3pa3VvRgLM0L30vs61w95+7x3q5VS1fC4/peQKac8cIAHeeiQWJlJG3shTaABwsaVukSVDU5wvP0XqMYCPaQ== 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=hjC5CJHRzG8QdypZ6ubvFNHEuZD/7E08tlsthr2EnQQ=; b=yhNA0KuRo2XsutAwTZ9WJfhxkQ6ujJoIRImLX9P/xcjyIrqoKBuk26Y4tiOeztXq4wcOOlvA7gGCofx3j8FwJB6Yo9mZIpwJIoan3jH/aBse7es3d8j+UcyFQuKaENdiqu1ubOX1kQ9ls+YqnyODiyY8sTOuODTdthhsVSsriwgNLM9csyG8+3XP7PKtpb4leF0Xl6F29Tbr7WmrWF1/D4CSCJijsmWyPxvW2LFGTcAavYu32XDUZFfzCdNQ5OIDdJuMpgE6xhvM9hXfPJC580pgmjWQqIvzxfbzGz23rha6CbzuUlKhKExSt0Lxwg+mDvgjMI40d7Za8aDoVsmE0A== 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=hjC5CJHRzG8QdypZ6ubvFNHEuZD/7E08tlsthr2EnQQ=; b=oTajnPSMvWzC2VZ2oBlE03fgPSustZjUqZ1yrAcnGkYUukm03lFsJ1y63nrNx2j0befDJspzhRUXeFDl+m8HP+ql1SyPn7hbOxPZULm+wGVa8sMWCleFRetcB1GbIIrImJa/MQpbw4j/kxqu8DIa/rBR7awztUiWsMk+NTmjZNDkZo9T/i5N5UpP1YRjtRClOKFfYrwGeqG+Zw5cbx9G9WB9ibfX2IaA/SsG6BBEP5kHnK/irtIMG7Offl65eHrjK7ygL2puUIkkyJ7sL3s38ID2ux+gNNxhz8LJdYg50isdBuRFqLPZTp/ercYo+YZ0izOVrpOvXqKEX8iDaPn3NQ== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:33 +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.0382.014; Tue, 8 Sep 2026 02:56:33 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:12 -0400 Subject: [PATCH v3 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: <20260907-remove-pg_private-v3-5-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: DS1P221CA0011.NAMP221.PROD.OUTLOOK.COM (2603:10b6:8:451::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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 47267f97-fe5a-4b74-94e7-08df0d54ca47 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: lJ3hkClREwk7uYPSAP59BXC81Sx03w9QMxfz0LwoQBrgKwmcepM5w5FrGXQMAUb88wuIkC2z5lT0w8wK+vOwyZ5F4WWazxQih4THGXjleLsEHsO2LhgjP1Tx4eKFMidGAeG8zTE2ZgnH6yVUAjoLsH60oVNAGtZXguUdvQ7qH6MasWvy5qCUL9Kr/VpgU7R0AbLWHvzDlaSGpEJTt0HEVxXBB7rii+8b70GGIbhlZfdjAaq1jtsHJPUfqNqBzj2h/cc/jj8btwd+iiOtgrEIpBZLsJ44BiOQoY4lKfC76voOC2z/tN4LxdsxkzvzKBezHz1VM3ML5M8OGHpkcTMzLJ3upNVwvqF2/UERQF8aGF2rnKbTcbuqNvtOtmlAZ79hJzlzMFZydaBRkoO5GWurLSAUWUssHrEG/btY6YrijCfrPSqMchECZTRFx4pzVFo/b33fjrpHOQwQu1uER7uta0ARSgoEVy5urWvHkExdl3FFzB8jkjyYPVCillFta8u7t2AcQ9B7d+tf8dtMV2qlhSiM6lAFHkq3mDjtbtjDz4B/cFq1r1t3DAsPXKK87hb4uzpbxi7EorcLJzT7eiTcwZoeXw6iOnxaCmF+wRt32Y/a10H0OaztVf5Hs7ANZ1RF2D660mfOMQu8gEwGj45RXh8H2ZgMosRqCLXPenUNhywvIjl924chsqwD5j5kYtwqx8Z742awim93ey7RH9+NWg== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?elEvZ1dSZnZvbUNwOWNCRHd0UFlJTGRyYjJLeGQ5eFd4a0k0QjFURnhicEs4?= =?utf-8?B?eFlBS3lKaXAzMzgvOEl0OW9yZ3dWazVpYllKRnArdnVCQUVMSjRoaXZzZUpG?= =?utf-8?B?TFJnWWdhMnc5cU5yakQxUGErdWNDMjRyT3VCTWhPVWdMWlM1NEEwWnA0ZFRB?= =?utf-8?B?MVgyK2tZTy9OM3VFK3MzQ1NpcDAwRXJyN1J1a0w3T2lLTkNIN3VXSWZUWDhZ?= =?utf-8?B?TVB3U1lCZGZBdmlreUhnMURFdlZpQ21Hc0JhUDF5MXpMU2pvaXBFSGJqYmpW?= =?utf-8?B?UEIxQ3NYMWtHdUkzYy9EOHkxZmVLbVBsSWpoZndTVmIvUlZScGtsclZyZ2ZD?= =?utf-8?B?TjhlMjhsYzJTdHZTaVdZb2d1NDlRK1ovTVdQVU9EQjN2Tk15SkQ3VEFlNHU2?= =?utf-8?B?YmRrcEI5QzkrNDVHY0gvNitHYjV6dEFPUTFpenRoY3c5OWZBdFMwYUVyK05m?= =?utf-8?B?MS9HbzhqSkJiYU5qbVppV0lNV3RiOWhsbk5SVm9vK2lHWjU5Zjh2eEdQaWNY?= =?utf-8?B?ZGVhcnA5ekVicXdQZGhycFlXM1hzWis2L2E2NVQ5RHI4d0p6WWFoZkcwZ0NP?= =?utf-8?B?b3owdE5sQVU0N1FiZUZsSXRzRnVETFk2Y3NwRHNnOUxvOUtwc3R4bk1CV1Zj?= =?utf-8?B?TnFTRE94YWREUjhrdzVUMjl4WU94a0gwak9iK0lkUkUzSlFGbGNFZGVSR1hp?= =?utf-8?B?eUFGMXB3ay9rK21LdDh2VWJ1SXkxYjFpMkEzZHRZRy90L2NaVVhQMElOa0RE?= =?utf-8?B?M1M4TjVOY2Jma3JzNWIxZEZ3UHBJK3FvM1FsS2MyUDZIYkQ1TzFOaDZURGQ3?= =?utf-8?B?SzRoQTJzM3A0eHRWUVMzTmJxTnI4TllwSzlsVkFTL1RXalJOc0pJeXpuRzJR?= =?utf-8?B?YUxNYmFzNGcxL042UjFRWFlCeCtCMzFqMW56bU0wVFo1NExOZ28rMVc5WHJ0?= =?utf-8?B?aFBYUXZzWTBMb1YyeUk1dWhRT2k4eVBBUEg3a2FjdmhiVjhUc0hJbDNScmNi?= =?utf-8?B?aUkwZGRkcFNwOW1CV2lUUzJZV0JTR0tST3MzRk1NbG5XdzB6NkNMc0tEYkFw?= =?utf-8?B?N1h2Q09tYnpVM2dXQVpPM2Z6NTg1TVZkZHJ1a1ZkUDNmcVRXNW95Z1U4bk1H?= =?utf-8?B?OE1sSzlET21VM290T01IMXpvOTNGL1Y0aHJDbEhrcW9sUklkYUdrZHRpaWZ1?= =?utf-8?B?SVhuOS9jd1Z1bHEwRkUwSGtjc1VkTm5rVVlxdlNlV1c1Y05OTDNYSGZZY2VF?= =?utf-8?B?Y1JHYjlST0hqajhPVFRqOVFwaFpTUjJERHE3TVkrNlJvSnFTWEw5cW1rU29o?= =?utf-8?B?SlhLZlI0SlVPWld3RHVvamIwZktIY01RdHJVeHFSekFEa25YSEpFdFJ0TUtz?= =?utf-8?B?RDFvMWNpWU10OG4zODJjL1B2ZXM1bHYwWWl0TVgxenlIYmovYXJ1Z0ZybENI?= =?utf-8?B?RkhscEptR0ZwdkRjT1hVZExxc3VadzdJb1hMTE11NWtVTUVtVXhvclZ5bEta?= =?utf-8?B?bkxnYldKdUJsN2c0dTBVOERaWUdJNUdZdlBtS1ZNVXh6eGk4UGJ2NnNoYWIw?= =?utf-8?B?bzBMK2J0OWZSNWpON01ROG5BMVFFd1ltWFEvNzZ0cVorbnlGQmI4dTArYmpZ?= =?utf-8?B?TEprYWdmaW8xS0N5dmRqQnZEaW1DK1ZGTEV6dE94aGViZlNSOEZjcFJDZ1h2?= =?utf-8?B?cDBYbk5IZE0zamhqZXZCNW0wWVNlOStVN0x6bXRSZjhtR1lWTnNkb1pDZyta?= =?utf-8?B?L2cxWStUN2czdnZzT2hDb29GVElEUWdvQW8yVHVuYzJXVk4zVU1TNGxuSEhp?= =?utf-8?B?K1RtTlZhVzl6UkgyQkR0VnZHcythQ1crbUdlVUNsL2JjbXc5ZHIvTThxZ2tP?= =?utf-8?B?NlZBZFlBQzMwMzYxWVVTL3d6TzNsb3pET0VsaHJISDZpRlZNSDgxQXdsR1Bt?= =?utf-8?B?WTFVMlZjd2RrRkJPYnFJcUxXN1NIaWFkS2V1bVNGa0dXc205NVZrZkxnQWQr?= =?utf-8?B?QnZNOEh6OXVET0JIMTFGUFh3OEg3RmUxUk42ZktlbFFWSGpWc2d2QmpGbzV5?= =?utf-8?B?Sk0zb2d0dHBXeHlPZXVIWjNUMHV1V05Ea3NnVS8xR2pGWmdRK2dDTzdWMHhI?= =?utf-8?B?aExzODk0TGRUc3BXakRrdktQUG0zN1FZNWUzd3drajdRNnQ2VnA3Zm1qaXQy?= =?utf-8?B?OU5CMmVzbjNzbVY5bjRFd2ljRjBJcDhhOS82dU1jQjhOMC92L1hVR29PR2hY?= =?utf-8?B?TWNla0s1U3FFbXQzUHpBQUd0MTVmUldMVXByQUZlS2pqZ2VmTFVtNGVjOXl0?= =?utf-8?Q?i8i3t6R3m31T/OTzj2?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47267f97-fe5a-4b74-94e7-08df0d54ca47 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:33.2863 (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: UAeZ19wRUdSzNzY7oGnASUIyFu3AhQ0355xC5gB3Myy3r+hjl6sGVJMNKdO+gRdj X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Reviewed-by: Gregory Price (Meta) Signed-off-by: Zi Yan Acked-by: David Hildenbrand (Arm) --- mm/hugetlb.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index a69bd463b1aef..08a538739d785 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1445,10 +1445,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 Fri Sep 25 22:19:30 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013007.outbound.protection.outlook.com [40.93.196.7]) (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 D52F727FB18 for ; Tue, 8 Sep 2026 02:56:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836219; cv=fail; b=dg5LYq0k70Ie3kx5lCKYY3zZ/qlR4B9aqVZKiMJG1okqZd78sbscskrNbFsSVb0h1X82tJu21YpZn+HBAySsSBNBLXdjYjJdBPj3kc7tp2bIQmWoTIYtU6iDh6M6F0keeZrDxL0/DJsdxVOwgTu3RKRCkuKjUrpDqdB9fWvary0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836219; c=relaxed/simple; bh=w9Ohb5mo1+AyflUcAN7LYLdvevdRNQaZsGebZJ5kAlk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=PZDkWpwKYVvVlWM1kZLKIAv4znAdPekNqYl7ZEI26CmPqXS/HIJ+CKhsDxZMOI1lpcZFqkrWqSJ1xU8lOAfyAJjgBlnF+yEVCbInk+RO+9zbkeHKF57xhTgXI2091UWEAdleFsBreIg3piej+T9D6Rvg+op19YzQnpIhNAhW2Vo= 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=EARkzWTx; arc=fail smtp.client-ip=40.93.196.7 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="EARkzWTx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qb5YnqaXickL/Z1I4J8SBo3ow7zXXdF21YXsTqNrtsBoWx7eQfkU7wgbixrmRQsfbtc/IlOqfm7802bMaxkB5oEJ5GZrB4qB2iE1LKTT8viwsA/cfmlgGBsln0RKIxyFOM9GVt2vaXGkt+otVqzPR3yMc9jXzeAAfrXqPrXwYYQz9AaiL5tksm0v9hojjiC+fGV/rPK9A1Zv/o7dJqA9H1KL0Gk7gjen5TQ+ZWB6ulrQj/cDOdLpyVo64rKrZJPez7iXMhTYlhh7+njOjU7dDLnrReQB28cpTlbnrHMPSE9AvjTj8bFdrpXjoupa7aoznXg2QmfcHbSKVpeZtD07XA== 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=EXmF0MBmnX6VwQ09TOC/Fszt1RVG+oW3l3/LIW/L3QNm8nqXIGX570d6AxAKxkoa96JQEi83DHp+Loskrg26Ev0fkYJ+kFwx1fav9hMna62MnXV6TEHsCqwwsvtlyMqQuu42oJ0S2f8xFJh4UU+meqyn9chbDj5QtuiNIyGqlmw2qK/y3wpoL4+EUErb120YuxKTN7dCXYgx8WKOQWIXS40zUeDjrFxgpDcpgl1pWseGPTduz0aMA2xuGNIO3LhQwFlz6BAivGOEriTuzJd2v97y5pHjVw63roevguJ2nSBWi8NAAVu83LXFbIwi1St37QaBB/tMQ/DJ3xGso/Sl4w== 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=EARkzWTxbjGbUg68P+hRHi3O1NbHrC2dhgZs+vOzQApEzmFnDF9mCDUZ7k3aFF7PRV96WZNzLeglEaoJy0tMFXeV0IKdt0s0fqiIvuvCYnsM35xCjjGhjrETmR1gJyrDk7UhEw3tTGxoVEk/IxJYYidgqusa12jdBn3v4KPIy+59OKljsYtfLe1jmI8FsmzyEjtL6QzJ1OGAzPQcpqjbYfWg9moErYLdR4eVcWwoFdazc1g2+BholwXA0wy0e5S72zfCwGDkkLpnaVh0aoh58Sc5EiT7wAu1Hwf5MqNQwvQTwFsoN8ILiYqX2fUOpsLjctdtHOcaNDF/jB0W4Sj85A== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:35 +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.0382.014; Tue, 8 Sep 2026 02:56:35 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:13 -0400 Subject: [PATCH v3 06/14] f2fs: stop using PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-6-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQBP288CA0035.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:9d::12) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 53a18082-af24-4e07-d94c-08df0d54cb45 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: WH+/tsI8ILKP3E30KxAtGmboAXDp84snsAsWiw7brcVsY2AX5KhUKpsH9yNckEgIHinVu5jThRUkVeSIG33H+gEBqLFZ2fs/TCA4TMVVUOCw2E/G3Re7nCp8ErFClFLsUme5AaSmR19qLV/3YCwfAvFW/HxsGATXrJC1x8DximiN9mY81AD68SGfUB48KSgO0VbUwVMLIv4GCN7i6u28iU4kM7u/N4iQxFzL2v3q3hVGzBfiPXV/Bg0q3OxtuImi0HTe8QpeopcgKfNDFv07AZGiFKI8HqITx7hDpMBrI9fjj/uoUSY+W7Vty8CloD5LSN+lYJBIhCW48HLTQaP/ebwodFAfEcD7IPyU9q2FGE1Qb3sB0WLtEvqgW4v7A2WkVxKk4JAuUz9N/0HO2r+4dwQ9a4C8BQth2/c+epceCUfJ65pV+PMovLfahmEFnbvse8XXH4jICAmYE6DEy7fm3uyyIg4TsLO2QmPNjuyO3goIGNKRtp7q+5lmaoCDpwZl1LnOk/z60mGMrNZrEEDmWbfxSBojsd515Balz1JhqgboB8iX+pXZVVXz9xX/79wUOOXhNtO8dWSTDfbboBTBjQZ5brpRJX4Gys5bBIfQpTCB2NaH0/CmbwKWJubdRxIm+wYpqlrtmM+c0+z1ZzYoCwfQDTXS1vzel6e3TJ/m7r6SgxR7FiWzvfvUgpf6rmK2TjN8aZ9phQiCi+t72kztxA== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TFVNZ1hpZGJRcTJkVWYxSk5UVkdaelk4L1RCV0FiSjUvTFI3RllYakNocThz?= =?utf-8?B?d0UxZjJVRm02cjIvaHUxUjJ3K3RnQlBqbFprNFl6VnVqQ0JBVWcrdXJTUklE?= =?utf-8?B?OHVtR3RhQmovaFg0dmFGalBXNklJcUhjVWtiTE5FMkppZSttUWppUjVTRDFU?= =?utf-8?B?WFVRUGViZWkzNFZKdzRwblVnaGVHQW94MVlZWDdhK3FjVUVXK3U0bFFXaXVF?= =?utf-8?B?ZTB1ZjNjczc1TTAxRGtldnpOTVQ3emRtbXhRYjR6ZnYzK0dJak5vRVZaK0ZQ?= =?utf-8?B?cDJVS3pkNi9UeFhGRkFVWWkzQjN0ckExYnkrOWxzNEF4WDBORDNBSjFzVFZG?= =?utf-8?B?dHJYVTZDNFI4V2NOVERib0NxYnIyQ0laMXlqcDdYRmpqY2JHMzgrOXFoZHVZ?= =?utf-8?B?ejBkRWhRUGkySVBQZWQ2RUUvd1NHQTIzUU9SZVRjQ2pSL0JNWHhUd3l2N0Y5?= =?utf-8?B?dWdSQXUxcmFsRTlTcnR4NHFzZzVxZVpHdlhaVnNRWS9vR25ObHY3Mms5TVBj?= =?utf-8?B?K21nZkw3R0x0Mkc5TVZtRmxuMU84dlFpY0xBN2xXeEt0S0ZBT1htaDlNaTFK?= =?utf-8?B?U25HUFYxNmRSQ0xmdW0yWGJsK2Q1WnZsaitPNHNjNzJKYUoxbldiRWRzeGVI?= =?utf-8?B?SkRQV1FLdXpXMEFock1sNEVJS3V5MjZBUGU3T0FKUEdNRVVDUHE2c3k2SHRx?= =?utf-8?B?REV5OFB2WXA3bm02TG9xWGxiSVIySjJsN21vNmdDYXorTm8wNXp0NlVudmFZ?= =?utf-8?B?QmV2RWpZTlVxWlVvaUQ2YjBhb0RZS21FaXpqdlR5SmNmVUV6dzlBOHRIRFJS?= =?utf-8?B?OUNyTTFsaS93Y1ZRWWd5b09RS1ArMG1hVzkzSUR0bU96VzBvVE9JWXpYdDls?= =?utf-8?B?eE1MV1Rzd21VVCtNYlJWVnJuVks3SXNWU1dpWUJIWGNJSmd4ZkFPTDhQN2Fu?= =?utf-8?B?V0NpZUpaemFRSTNXREg4b21vRzVvUWg1Z3UvaFZKZUp6aWFrQUxoWE9VWnRP?= =?utf-8?B?RjFLMXJ6Nk41cWdPcjFhempmRXp5Ynp6Nmg5UlBlVWRRWldFK3h4ejZkZUZr?= =?utf-8?B?SVpzRWpuYS9BWFkxUjEvM2NSbWhoMGluSTc4Sk1QeWZVb1VBRVZiZE1Lbkhx?= =?utf-8?B?WUtOUUQ1U0tRSWZiamU0eW5hcStOU1dMQko5d3BwTE9FTUVIM1N0OVNBVVFs?= =?utf-8?B?SSt6RW91RWg1Wm1jTnFmVndZRmtxN1ZxeWNhZnNUUDVVU3N4WTBPSkZUaTdv?= =?utf-8?B?Zlg4ampybms2ekhJZjN5U0ZJTGVxNFg3RHlTSmZVZHRNdnZkWUtPTTdoNTNX?= =?utf-8?B?TVBKKzFPZWsxVFh3VWg5MEgva2lIVFZ6UzFkLy96aDZ2SGd0Rm9zdlRSc0ov?= =?utf-8?B?SDZoeVRYRkVKWWZ6WWVyTEpEbm43MjJqSitsQmRHM2t5Rnd4L2ZiZ2FwTm5k?= =?utf-8?B?MkxyQjFkRFU0Q0xIR0p1cmpuUW00MEIrNjcyblQvYmFid0FJTUxaNUNSSmdW?= =?utf-8?B?QVJORVZtamhTUDhkdDRJN00zQ2pwZnZ0OUJZNjV2blFOVVR4M2RTU0dhTkty?= =?utf-8?B?VFNIZ1lTWit6Zmd6cHhSR25odEszU2VCemk1ZXl0ZVZ2bnJlQ1Fmam1kMFh1?= =?utf-8?B?aTM2QlFpNzV3RHBodUFJcTJCVmE3MEI1Y2dCb1NUM2F2MXl6b0lQdEpjWDFJ?= =?utf-8?B?Q2tMclFFRW5OYzdFc29mcXpTQVRTZHQrZ04yem5PeFQxbTkrL0FmZlZBZWNk?= =?utf-8?B?cllGZWZxRkxLUXFpVHBuRlJEZ2RiUDQ4WnNUWWN5QXRJSWlpYjRnYzExS0gx?= =?utf-8?B?Nm4rRjVKNFFzclNwcW1BeDk4N2xLSHNralV4K2t5QUQ2SnVDcytzMHBIa0Vz?= =?utf-8?B?OWVVRW9FczRyelkwOE1tYjQ3L251ZENLMFlENXVCUS9IRmdHRFhuU0NCZkVH?= =?utf-8?B?eTJUVURuMjV2YnVITGlGdE52SFdKZ3hwcjUraTkzbk9IYkFYOXB0SkJtTlp2?= =?utf-8?B?MCt4bVcxZkFYS2c4MVBhMVI2RWN5RWNQM0U5UTRyWFcvUEtybG52UmZJR0do?= =?utf-8?B?bE9BNXZQUDFrRTEwaUdTek5pRms0bzBtelliVzcwc1NuRWV5L3czdXhzUWIw?= =?utf-8?B?cW4zUFE5RktnMm00S0d0T1N4Mkwwa2lVZUFDZ0o3ZlpXRThZamIwVldaL0NJ?= =?utf-8?B?N203SWRIbncydnVmUVJxeVRGZlJvcXdoZm1wRzE2blBNOEo3NTVZdlRCVVgy?= =?utf-8?B?NjJsa2V5VkwzWlBLUWhlZEtXQ2ROOGNDMFo5eXg4RnArQzA3OFBMaVJPbFFq?= =?utf-8?Q?6a6oikmQZwlzpj26AU?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53a18082-af24-4e07-d94c-08df0d54cb45 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:34.9450 (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: r1/oAVdGIBZnEmvFucxy22m+HPnBjiPoDyjG9wZpwPel4Eu0JDQGcwNoMfUV0Z7w X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Reviewed-by: Tal Zussman Suggested-by: Tal Zussman --- 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 Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 4D3AE2E764D; Tue, 8 Sep 2026 02:56:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836218; cv=fail; b=C8b+8YFJwXGd+3W/gPytPRfFFnumK4GqmM4yDH8W675o+RIuUmS5SyAOmJI+pQdHGVmJZ0M4SWB1fKEZet8PWq4iqnvHtA3eyKC5XOEFonq5NyZ9tLCn7rs/B91M6HtN5162fgc1Kv5AxNzb0Wc2ziAtOrli4DxsPNv3uAVqOBQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836218; c=relaxed/simple; bh=JuGmCaKh9fU2CRfJbVZHM9nE07hXASZy/yu5B1FQe/k=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=P9r1S6LCjrnxE914pzJPrODhjvEDLd3sIYh8qvwBVEoOs46CQwuGKU5knPYLpJpOcwBTM8XWwldQondruQL70C+vTNsuw3ExERUrtTEPkQtMcT6DEqFQ/cf73VdsC7OYg8Hwxc+1X9p1UuiW720bLarveN6Gk4crltAT0zMywkE= 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=UTX5adrn; arc=fail smtp.client-ip=52.101.57.56 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="UTX5adrn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KL41QZJR11aFmKrH3jutgImdYlIfe3FhYo0d0uhwFTcZvoFK5omxZjoGez8xdyjf0T4IhBA5OMdptART/mexFaMg+IWjrtmMNlqo7jsuGCrokV4E6qqSRBM4LV8bgiEGIcCKRlyMtZ9cL/JAlaqE+uFsO9nrcQ3QKYsOw5MBd+MAzcbMOvyeHqezS1PcVkw+aeMk9DmAqL3BkbP2tklfIE0jKHiotlzRKjOA9c2VzlfNsV8xCw5jEP19MMNuBeX51cT9arOZ407UgP8ds2ELViJAb7BNVIK7UktvAznHK/oTb2uzpFDFkA5guD0teBJRvLyJET5vntKLX88mWJPSLw== 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=TdNRyqMDkb3BmGbYVJZS1+iB76Ykn6dxm/qTa4UIFcE=; b=wyAr7vGjuRISKu0s7lRXt0bUou+e8m61bnESSM/8eNTwYdLG1zAvzIQiXZoBBFO75m0Hf2yfsCFFkswZudxZapfhYfmQnsZHd7mG/zzhsboDFC9Nc7iOPnlklO3yftf9GkDvGdV1n4Y0sY77MWI8koVMbIUq1USZE2NXFpzixW3bqRI6CQWq5vIF63tiHNUVQPtasGzjwUs+NCGtJp5+ie2kLlkBzWyOP4RW/atXAJyHRVNqoByC5zecn/blfvp/9XVr6CQnbLeFX2Hh9I1nMwpD9fg2UBHGJnLqzn5hRZjLYJptIZ76fkmqXg+djoczjoeXPjp/60VCCnlHHnguCA== 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=TdNRyqMDkb3BmGbYVJZS1+iB76Ykn6dxm/qTa4UIFcE=; b=UTX5adrnk48FjVAqNjba7kXWn9QuYJDnfacrJfYEf/5HvcTR7qAJOv2C/XHRKo7u8VozMy15f3ymNBHaRrQ3i7D4L4HpnTLo0WqYjIcOfMfLAffcHlD7x32MGynDBiE9gbmNcNHnbl8ucUAXJY1WlEqIBfXqzlONs9SfwKTYmQ+Qb2H6SM+itfE5WtKmQ2o/r5M3U/AfH6ETJi0ACZXiXaaiN+dAzGUqO1god67kDeKRyGGoDJVofN2Yvm/9JV5LUJvhfbZkGgQnpjhORv+np5p8Ay3ognOv0wR/riQKzS7Ue8Ftm5RSUgshiRPaDQhE2eKoGUuwlJAQn8a+b2m4aA== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:37 +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.0382.014; Tue, 8 Sep 2026 02:56:36 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:14 -0400 Subject: [PATCH v3 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: <20260907-remove-pg_private-v3-7-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQZPR01CA0090.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:84::27) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: c69e0301-0161-410f-3540-08df0d54cc1c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: Aqe6NclWX0d6nOQVg5a0CrN6uKh+O1ETv6f2tnAmIwPylA6pDmJLiaicrqN80GRLJYo1Dc7+9E4xzWOoXWNtMofdFpeKT+BP3itg2svljYr9zwW6fnRco/3MB4rGw/KUc1q/TaMVN3/Mzz026mMRbhaWdWr5pG4Ar8utzZyJf7Qt0DEt/xWdS93qbXQpzxsXQpQNFYoZYG7c7AZLj0uiCbFkQ39XvDQ5z7jaQ44PMmKOQsqHrTD5CnZUsu69cqAg+oGXKO/DgC21uYSbqRay9hPsV2jXqRHn8q1IllGUpba85dV17CuOoNSr487J+74DSSu2P2auaRSq1luDvIbjfDcmygYEtDXFQQBUy39VMqcV+sCMZCkt6c/9rLSWqZ5jAtK6reyXCM3IAnIgdLVbVZmio1sm+48CQlU4bos+ynANxSVm/WD6Dso7pol2YBpTjBc5LMgCMvSADdWHii1VCE/QClc2xwd4GQ6kxGY6+tQ7rTnvrH2cASja5CMxCghkN72qPZQI0t9sC+J4rr4PyD0hO7eJhHTqOmvULPWKJv1/AK++v6w/qL7P9XKLoQTG0X3Aa/GSvarMtHGw3U6d6jxT3x7PU+4uyZRY8QlwjEEcvQEA0hkcDgXWH6pq2ovVQwYmATRNsPoxVQPFfaoe9XmRTWEx7+3WQi4lMPLsjbNafeEiCwcth4D9+/SLzYejAqQqh0eajeT3PFsMInbshA== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NWJ3OHkwb1pDQ2tHQkpiMTA3WXNla2FSbjBHSk53STBINk5UaDBOalEvSi9p?= =?utf-8?B?ZFpTRGZrcDhlMlJRbzAwZWVWc1ZVQUhJVWFmUFRQSXdaYnJpd2lKaWdKR01L?= =?utf-8?B?Yzh1RWV5NDlMaEgwYTh3WCtqeHQ0MS80YkJQMk9CK0pBZEZYRkJuakkzQ1Qv?= =?utf-8?B?Tm9kNlJxWUpXQ3hzUWdZNlJBWmZ1WENYSWFRTWptQ3Frek9vSmVJK1cyWno0?= =?utf-8?B?V0tSZ3p4T1JaMGZBUHI4eGcvOGg3SEhLMWxFeFB1SWxncTVSU3hCOUM4Yms2?= =?utf-8?B?ZG9kTE13WXZWbDFRUTRHRVhCcDgrNHpaMWQ2TXk5TW1GUHpNV1FqYkJya2hW?= =?utf-8?B?ZEVPdVNLSUx6eTM0REg2SExxUzdDOWZDdUhJNkd3R1ZyRTJvd2xkWE1OWXR1?= =?utf-8?B?VTl3N2F4MkFmV2FtVWhBbEpOOXBhWXRmQ2VzK2I1eVJmSWRCZUhpWS90NDlF?= =?utf-8?B?MWxiYnRIVWVJMndSckNPbkEyYVpNcythbmJmM1IwY0IyM0RGMGJNWXFFOGhp?= =?utf-8?B?TFFFNGJyV0dwY0dTL1c2bms1a1lxbHl6TWE1Y2wxR2lUV0hoT0NhWHg1RGYx?= =?utf-8?B?UnlPMGF3S1REZCs3eUZiV0g4UnhIOCt1ako2czhiWW9nakFkeFFoUG5WOTQx?= =?utf-8?B?aE5rdkIwZGE5aGFOdjVIbHpnM0hVYXZlZVVETXVzVk42enVWVmxsU3NVdnlv?= =?utf-8?B?K0xOUWR3emNWak5oNjR2Z25heXlmNUJkc09TS2g3Wi8ycW9xSlJlUWRMUE9V?= =?utf-8?B?bXlIMFBCSkQ0cWtUUlBpK2VGaWkxUzZSU2wxNmNnM3k1NWVFUUxkdFhVMmdo?= =?utf-8?B?aWZQYVhrZXlZR0UyakVTaklUWnhMM1V5NUZob3JTRW04WXdlRUJUU0lhR2Nm?= =?utf-8?B?Vk5SakJCZVdSTXNzZXVIVzhhbEhsQW1nbXBKSUJDR2tDZEs3TXZxN2tUa1pj?= =?utf-8?B?OTlJb2FVQ3oxRk1KdStOTnZxQUptV3BaeGRLQ082MVpaOEJaR1dMT2tOaFdL?= =?utf-8?B?TnFFcy9FZEJDVUZWZEhkR3lhcHpPdjNSNTZvVWhjcG1HRzRGaFRFQlRFQnM5?= =?utf-8?B?ZGFCSVRWWXFRU3VhTU1QbUIzOGMzWWtPaTdrRkk0Rm5uZUlBRWN2VDNpSjVG?= =?utf-8?B?dzZ6UXlCWW9Db0FlUUFCV2lEZEhvTUlNNE82V1doazdManVhcEdFUkxtOVNq?= =?utf-8?B?VUU5RzUvbGpnRUtCV2dTWmx4ZG0vSzBKYnRzQ3dTQmNaYXhldzZCcHZCbXlm?= =?utf-8?B?OG1jaGo3K2lGNmtyRjQ2KzNhdWhWbWk3bk5ockxmUERxUFcwZllRMWRTTCtn?= =?utf-8?B?UlVTaEpWNWZ6QUV2ME4yRnZFdmVOUG5NTkdLLzZhNEtST3NYZVg4YjA1a3l0?= =?utf-8?B?ZnBnbXZHZkd3U05GY0U3S2ZaQS9xTDFEalZIVi9DWnlmdEFQMXR4Ujh5UzJs?= =?utf-8?B?K3krc1RBZFIycERQdkk1dXk1K1pSZE80aDc1SXB5WkdkcTQvSnZxU2grQm9R?= =?utf-8?B?QkkwajRCd3Y0VWZuSEkreW9YNitxampaNStUTVdnUE1NYmh6NXFZTWpBbEtE?= =?utf-8?B?UmdCTW9obUNwdmJoUVlKNkc3SkxiT2NGMTJNYXdZY0RMWVlOdXBjNDNWajlk?= =?utf-8?B?VG5FdVhPZTRoOFdxd0Z5NDM4UmZGSEFkekFUcmltc2ZlVys1ZVI4VW9TVjZt?= =?utf-8?B?Mi9MeS9TMEdsYVphU1puSmR1ZStrNVNKZU94Wm5MRWdBYldJSGx3dkZoeDlG?= =?utf-8?B?YzB4RTVuNVpjZkJDenJWSTlNS2Z0aG5wRW0rZjV1c0VyNlZyQXFEeUV3VXZv?= =?utf-8?B?SFNIZk1wTHdSV1pZV3YzS3I5dGRuMzVoY2pCVDlhSEhpd3ZjeHExdHZ0UkJy?= =?utf-8?B?MUpUNXVBRDg0a3Q4R2pFcFBNMHE0MkRVeDdvdVdxV2x2RUhaSk9mUUpIZzVy?= =?utf-8?B?anFDdTVDaW1xZHBXdlRTcWdEcnUzOTZvVEt6YlZHYlVLWVh2Y0w0aFlma0lP?= =?utf-8?B?OE5ua21hNFJhQUV1NDk2N2hvUWFIYnZDL2U4dnBVS25GSURHdHU1YlEzdW16?= =?utf-8?B?dTUwVHpxak9hVXJlb251eCtnUG9WbWpBd3hubXJMa1ByTHBGRlNKcTZtcnFN?= =?utf-8?B?ZGE2cFRpd3BScHd0N1BaYWRGSW5EUzJiK0pKdWtkbXpOMDlCTlpUaEwyRzEz?= =?utf-8?B?QTRHdm1Kc2svaXBSMUl6WXh5SjZJakd5aUcxNi9qV0JKbGlLblVob3ZkNGtn?= =?utf-8?B?QnRveGtCN1kySGg4bU1HRndYb1AvNVdqbHlMTzVBN2FoTWFmcUk2QU54L1Vi?= =?utf-8?Q?3O3JRBoeklz/EhtTSJ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c69e0301-0161-410f-3540-08df0d54cc1c X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:36.3885 (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: Nl2CYef3LNoJ2tUh/5eCicjMKAaZRcVuLMSyMqBwnUQizYRTPO5brmfEQChiNMeT X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) --- 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 939f3a5e973f6..2257df004305e 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1415,6 +1415,7 @@ struct readahead_control { bool dropbehind; bool _workingset; unsigned long _pflags; + bool _forward; }; =20 #define DEFINE_READAHEAD(ractl, f, r, m, i) \ @@ -1479,18 +1480,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); @@ -1516,6 +1524,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) { @@ -1524,9 +1565,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 Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 9EB492BE03C for ; Tue, 8 Sep 2026 02:56:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836220; cv=fail; b=toKfPQjs8f4S4FzLJ4JKmwR50fL0l3xh8hH1TJ4ypBNwxFMYXDUErPq3FNwZxw80DRHXeijlQdfTC1ZUEPj2uO7mWL7t7OL7JER5USCF2mOkLH5ApibFmNmVwatB93bldv9Y2qp1myto+ArTmbxI/dK8+YPdK1kLagqFfLOo51A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836220; c=relaxed/simple; bh=dDH0ydIko7YGLIQq19bPUjM191rbOYlEMwT057KZ6V0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=e4hY4Dg598ar+7Gf877IEblUJeqOyD9YYW2p96299Hr7bc9cOroirQORdx83dTHKQA4mztHRFbQNU3XeoLtzfWkevzk/mV8xXueYAY2pme2uLhugh8F+3E8dMh+jOlbQ3mD/n0ydpkjkLMQP4e9cyebemQn4ndijYzzswH6iPg4= 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=uJeTMkrK; arc=fail smtp.client-ip=52.101.57.56 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="uJeTMkrK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p/XdrlSjylUB1y+ly+/8XYRi7kGbHa+FyioHnEn+y+DL2bt/3nqOG1ZASXGw2kAe8S2i0srBnZEX7l0jVFq71RI4i2IQBKbs/iYTr5RAJ/loNjwyNXZwNDelkq0o9zht9Y2Bvd0EEf270ygP2Em78yxRXeSK8NJDJi5m8KqUIelTqdpCGVrjbSwN4xtbR/n4T3a6JbNF1UpR3hP9Bk7uF9zHSNJ0KR1GSxZFTxLA7wFi3rlZKtPiKIHNp8jbB2KwcSJokOKQqaHtybXBoO00bqsEXDQUkVoyev/Zh+twzNzZ/mLW7I64hHuQY8CS3TZRKS5ZADFa+a6FD1cWrjNXGg== 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=Ty1ilNkAIujtZDN/QS1ALgD4itHzu530+ZIh0qaVF9vWb+zoZbMZvkh8kbyqtqmjtmyS0lF7Bo7ZDCfqpLILErR7wt6gKyVg3mcMUxLf32CisRLnSEiWxlvfOTN3/wp7KBtwGX7zpwohxX3IMkVtkCdIJ1RqrjAkJk7Z63OswZPv6C5so7LrNkHnlrlUfzq0V7rI8ZDjurufJ8HgUT0kUvdLk84jlF6RYIldTvurO3ez63K6OfuwOyl2fXiPaMVNS1Hh3pv4kMnBKFrLA0ZG45tuvbH661GdBqs3bQquwyC2OBocDEgPtGV+HimlMWzkfgTHieb2p/IZ4A0SjIYNbQ== 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=uJeTMkrKN4oOSfrgr/noxLTyP9/k/RiTUmhu+KOBMa8Vh2yOWTYs4zlfpEesZ5WZmnKEsUMLWSo9dm7XMQ5UIIk/3R/Ge8inwZa+yWIKelm716rsPbgPHyjbzEkOKNND29Gw7oKMVcT3ARQamp2BMIdrNiIYgWgGwl9fEYg6UTT/Vhd8RCOJ1qjkRi/x29pCIdbJVzZE8A+t4ZvkI2Cyar2ZdR98Nww912P6PpPBltxtm9S62Yk7HxSs+xPez4yPKVEB+I7SU0nhN1pBCvbbOwV3MZQcxhtGh7hsonJ70ejmX2WweTiTk5PxjoG2WahdPQ9SLYZdCnbA5pIl+5XLww== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:38 +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.0382.014; Tue, 8 Sep 2026 02:56:37 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:15 -0400 Subject: [PATCH v3 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: <20260907-remove-pg_private-v3-8-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQBPR0101CA0250.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:66::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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: f18255e5-a2cf-4b7d-33ec-08df0d54cd06 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: aLvUlpuBIIy13vG4Takn733L+Arzks9WGlLnQ1sjT1LC45xy4Kabs9QA5066gAReoxdpwX4YsJK3x6wFROBK3L5MBWS+DbC4dzHR032XF3MUGoNDsRm81CrNBnU9dqR2yjWVeIotTBL039SLNxoF1dZrl4Sq5xyFisGsxA6U7Q9mFoEN5sS7SExokce3mcBHGJa7YuYFWVqpsT9FW9hFEyDqoeC9DjQAsq6Xo8QNfhtY4VP69fioAlgJY1Y3p8RP2Vbc1KE2OkdyAeRa3LLZjfbYDIVooej6xp6lKqxFiMs1+o6I7KQWc2dRjFbWy1k7goj2p1MpqDicj0dX6XBJaVoaUGeE8Xbhb4dW1ykL4qgRPBVdbdS0+1mHe/wP6ZOHUegFshdGF3h+nfzgWIDBYfE9hjijjVuKSEY1rllczy9AdW/U/YHcgqKTOmnLia+Js1Xw7IRYK44P2e5WE234mg5Ojwzddhm8TVxDqm9V2FgyYcYnvVZZc+5H+djxqxvsCDvKxATq/W6zoWXCyy6iU4upfMGsM3gB+PKblhbzICwA05WwmLTSBY8NC01SXED5VfhBLRDFtfnJtYt67WcEJjBr+jyiVsqqYn91VN/rwlkOVX27p4dUqPcKN+rpATWANYSmNtD3H0PFU+OmpUAZROHpdw2Ao944ScPuFR/ZQDKMjT303T0w9aa/kDYal73ZAE25iSu5Now6bXcjXmEH3g== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?V3VnNU00TktJQk13cUI3SzVXZFFyWTJoVk5sdCsvdWZpOG1HVHFRS3NtUlZV?= =?utf-8?B?c3hRT2tGTkxEdVF0MjdLcktFeThEcnpHZE5TN3RpNDY5cm5xdEV1ampkWXI4?= =?utf-8?B?RW9lYTluMDU1UDhoNWsxUk5ndDFSWXFYU0lzemY0My9CYzlyd3c2dXYvSWxD?= =?utf-8?B?Kytpd0NOWDlnN28xRWxGS01Ybk9RTDBFajBlNnJ1NlYvRTRQV0RWSjQ3R1Fx?= =?utf-8?B?U3pLV2gxUzZXNk4rV2JhVVVDNDVoVHdiUTJGL0RRTlBnclNQZEVSZ0ppeEtK?= =?utf-8?B?NGJKK3JxT3JOZ3RMQmRIbEN5MGVuUXozQVRmVUNEUnN2SFNZK2tTZVorKzB1?= =?utf-8?B?VEtOa2c4SHB1VTJHaGxHR2NlUUx1bVExRmVCN2JLQ25ZQ2cyRFNIQ2dqTnhh?= =?utf-8?B?Q2UxOEk2eE11UHpmWWxldldPc2R4MS9tU1ZIUW5XM0l6dFdLa3NYTi80dk5l?= =?utf-8?B?TVJIL2EvdVA2bGMyNGR6eHBEblprcmwxY29MZS9xSnE2dUFiZjd4VXJlZStq?= =?utf-8?B?VkVIVVpqVVFXUXR1Y1RYaEJrS3JpY3dpTTh6elhjd1JEQWVNcG5pNW1YSUpL?= =?utf-8?B?ckIyNTlTa1VyN1JlU0xOd0V2anNQUGJkak0xSzVhRUVHZ1ZINm1RMkRUeHk0?= =?utf-8?B?QXU5U1lMVG5xWnFXaEUyNEpWYTQ4eWE4Q05PWmRtRTE4YS9rTG8ycEkwZ1Bq?= =?utf-8?B?YXVHNm9BcXdzVXBjeEljWkwwR3hFMWRBNmlUNHB0aFpQMzV6L3JYSDNHMFZE?= =?utf-8?B?Rm9CUms0NGUzSCtsdi81M0gvaGRFY1RnbCt6TXp4aHZnV1p2SytONnBkWXdk?= =?utf-8?B?WEUyYmpLZFdWSm55ekZ1bGR6ZDBKOHh2WG5ZbGhrSGxXbVVyZHBYMVc4Z3BY?= =?utf-8?B?cGZ2dXltVFJ6WGNPck9HQ2pya0hOclpadDRjMXQ5SEJvUVNNRFFrYnlXbGtL?= =?utf-8?B?M281OU8vUjEyVFRGMi9rMERjbytvUXpxbmxaMHdLby9abW5VVFlhMCtOaGQw?= =?utf-8?B?SWFENmpSWFhpN0tqbkxWRjJabmwrZVhuSTVsczdSUHlhUE1SL1IxcUVjY0sw?= =?utf-8?B?M1R6Z2RFeWNTQ0IzRTdHMzFodGxRQ2hScDdTVnJHRXpNNnpnMTNKVFR6blE2?= =?utf-8?B?WjJjZ0hNUVBuMEI3WjBlc2JmalczbmF2dkF6clJlc2VZZHZnNkpiMlkvVWZJ?= =?utf-8?B?QitpNU5YUnVOZTN1Mnc1WTFEM2FkMWNTWFJaVzJtVUJEQWtXa0pUOC9aYzha?= =?utf-8?B?Qi9KZ3RrZHdVdlVFM3RYV1JCd2dEdUVaWFBwdXdlQjZqaTdQZm9HcW5Ebkh1?= =?utf-8?B?T3VNRUFYWnV6aExHYkZaaFAxandLc28zQ1pFSEd5eG9ZenlLQ3FLV1pEZGpl?= =?utf-8?B?YUJxVEVmUmxpRUhUaTVxdTFwNFJyc3l2RUloK1pSR0dxYkdPdzUzaGFSZFRJ?= =?utf-8?B?eThQNzdXZTJwd0lqL25ONXZjTll0ajFpSU9lbXV0NUgwMkprUTgzNHFHK3Zr?= =?utf-8?B?YTh2OUp6T2E5OEtVMld6NUNDNXprSXlpM2t1SFZ0Q2t2NWd6eGx3QkhyK2FV?= =?utf-8?B?cEJRWEV6bEhneHdEYjFYSmFWRUpoWlJ5OGVlNWZYc0JEbnA2aVRYRzE2TEwy?= =?utf-8?B?RVkyN3N0NG41SFVxMXRvdlZIVDZrbGg0aFlGZDdGTi9BU2ZkNlVUeUExQjBy?= =?utf-8?B?bldRTmFoNDJyNHdLSHU0UGpjWFJHSkc5eXFmSHFDTHgxK3p6V2tqQjJ6QXNM?= =?utf-8?B?SkdER0RUTTBYZHFjYjRrR1NGVjd3RWdKTDVXK1BpVE9uWHFYNFRzc3hHeHlC?= =?utf-8?B?MFB5N25NNHV5S0RxSGo2R3EzbHNwZHErVmVUeC9ackR6b1ZpUTFMS2Z6MTdO?= =?utf-8?B?YW41RHRYZ1dtcHdSSnNWajhFbmVsVDdYMHl4M2JudnFGbFAzTEY5YkhKRzNV?= =?utf-8?B?MHdkckNRYkwzZ3Q2dTl4MTF1L3dmS2FIWTVZT1c3bFR4cExPVDdXeU1lNm9Z?= =?utf-8?B?QUhrdjZxT24zdHR2SXF4SEZQZFdwdTIva1hEWXNFNnRYU0lEZ3kxNXY2d2FN?= =?utf-8?B?NDdPVlR4a3JoYjBsQm5zV0xnNTFpNmZDOEsvZXNZaU1memRCZ3VhVDFMMzdq?= =?utf-8?B?aG1WZDVrMUlVTXpCZ0FWK2JCenNFSmVzYVFVQ1MxOHhla09lNzV5a1dHS3FR?= =?utf-8?B?amZsb0JzMU9FSVFlUDY0Y0p6UlJMVGNEUjc5Tks2cFN4S1Y2ejRPRFZFWFFF?= =?utf-8?B?NndVZHFCY2lySmU1cUJVa1JUSytsTzVtNHUwbFA4L2V4a1lkNW85S0kzYUhU?= =?utf-8?Q?4bY6iVe77Go4ZCVIlu?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f18255e5-a2cf-4b7d-33ec-08df0d54cd06 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:37.8895 (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: YP2p1cKXab8zxS47zwsYwrzYzUElbyCS25c3LL+Djk7I2ZRtHw3b1B5+fMd9BwTp X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Fri Sep 25 22:19:30 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013007.outbound.protection.outlook.com [40.93.196.7]) (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 D433F2FB97B; Tue, 8 Sep 2026 02:56:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836221; cv=fail; b=mWs2dmUUDZLzh33eriO7Ch64bfIazWxMh0kMLuQIdqRKSDW9iP4JqDLOeuqqJQCUJeOofruoK9qygziyf2au7Stn2Zb9lAkZotI/4LVrUpXAvWdV80+dOYwS9g3XIVvAV0lyohmlqxDG1stnoZiZzl7aXMVVl0uF9HF9lM3aP2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836221; c=relaxed/simple; bh=4q7Yn5+gEF04YMr3usW7Rtknb1hRyWgqHS/efmaqNBI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=oPbhs00F8HUYoPBDqLMIFwBGAhbFVLvOX8wLDoaOwDpClA00rVH8RFlA9w6/n1EFPeopQ6n+rZQGZ+vBQJcRhMc/1xgBKaWWxc33PQq9yocRHDOTtjl2tx2y47h57hk9lGWmwR887ws6ljxRXR5Tq1XYPNfj3zaUFOmAf5QjRWU= 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=STZNLkkP; arc=fail smtp.client-ip=40.93.196.7 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="STZNLkkP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VlF3BOEzRr/E6Q/mzXpd3HomY7QvU1GySAzsbn3Jx3cXQowaxfizug27FvLBIIPMUYfMFE68mIHUZ9DsyYn0fLv7DabK6WLRmSKG3PcVO70VqdWRNed3VnyGKKGna4J30GSIRzWyAPGuFfegz/Lwb9+BOXL/Q34rn9NbeZm2pcETbbKqdpqwriZR1nSl5FrvvyjTJXdPX5+ceLlG0gQ7989jMdA3cYybFmZxPHqCm2fG6acMzqU31QdugQkfnEktmsrUcCMeeKjZPAvfIoTuWhiELlgLlydK56J78nMO83oAg+RMrvWcglOJOLySG+qcNdUCSlMuj2qWsQNQIFnJzw== 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=R3OGvdpd4OiovkXh5tXxkNQnwhyLzYKAKygHFZGComE=; b=mOKJxScTu80rSlNf21gQo+C49MG+oX2jycQzIaLXDyGUIPFhu9q7QUSAk63flT1BWEvMfhOr/n/4HrvNasB2sZsavrJTdeKMadAgqMOfnjPOR+8Mp9Hr/8aF/xwxzeyf/QImQbsElkMlEmKYELXxRuafWqPR8RnhAr44DJsE63Y2XQtPEVHmht5AhCtsvqZvSVVRH2cqmk2iOH3oLYgT4CZpz1KkF6uoBXRn8ogGp16/FeunTG9kPiDGuhBjJ9nHyOkFVnqwTpyE7djs3171W/KQyGecZzGDZyDoh6JaawhKvPAsZQNzQnRc1uLLRKCxHvANfEeUcVJrdXUR0PuLrg== 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=R3OGvdpd4OiovkXh5tXxkNQnwhyLzYKAKygHFZGComE=; b=STZNLkkPDRmgZh0r8zMOtnIbVb5lUrmN5wzVXmP8NgoKGU+14ZjhX7DegFtgkK39HkLimShxFsvX5gqihtrOZGhIOL0CmqIa0BFVNnQsKcMoEr+qgBSkJnAu5Gu4QWyOijjEcpSWcgpYJ2gbDt1kzZyPdYVSnOpYpt7I9vTPlV77NmUnKIaGdq8+mBKCrteuUfJpBKbnhQz+xOtjRM0fJEVTqep8zCMASGuONxMhOrzSFddftEbpm5pSORdo0EBjqJoAZIn44/2EfJhsecEoL8Hx32EkvkjXzz6rANMyzs0bynjjxGQ13vmiOEm8WIhQTXDV21LbFpVrsdSyC+g3yA== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:39 +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.0382.014; Tue, 8 Sep 2026 02:56:39 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:16 -0400 Subject: [PATCH v3 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: <20260907-remove-pg_private-v3-9-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQBPR0101CA0228.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:66::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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: fa00bbda-88c9-4b53-6355-08df0d54cdee X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|6133799003|5023799004|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: u7y8AdCrDi2QW87M/rFGHCAZfPEr0z3oBDdfVeoGiZOeuZdlWD7BfmfPKseH4Rf0F9ltRgbCBbZ5uXya69NqTBoayQ3Ss+VzErO3pPNsF8ZX3kBBpEGqZfKnumwPwBnUQFiXzzj9HvFabMcnZ/cyaVcsIJRnwy8kEk9qeSsBbRBuTaeHOdqnoKtbawVQXcVgyCZq7ZajjebqY620K2C9ZCJ5rEBy5XIeX4LXmkBU2K4Navhmyt0exbX+T/P582NrcqxiGgVfbNsf5YFKVIX6H+5TfRrhDGtvc+UTdeLiuDUsBlvtb1MwPaTXIcbM/QoOXdccQf007MKuQUsbRzYHemsY0oypa9NQbeEtHAUD7qi/Cbv7b1+7QrX6Ul/T7oiRP4GBHiWgsHez+puIjE7fNDsJjrhr+vjNxUC4YUNWvipbta/2qGcAgvxoGdRmLBy/9Pag1utY7C0CZy8wbPXPJ9VBWvFn3nWculcaNVk2R6xspfLiGUWNow+5h+qwaRI9IAOGyBcuy5eIKeks5ndwvcZaLVBI5QFojS6Jn3BBbz+51UIv2wzb1ph8N0MSZ+v1ul15O+EPAh8iN/Z3VTMikO2jDQIkOwCC/nS2fIFevR8Mu+7qGhKD/Pp5y97aGa9RpUHNSLJHT74DVkEXEkCfxC9+r+jUfsM9y2FXIp0OormjoD/1wXOWWjhKYmuU9ge77So7HAPOT6fu7C50jJVBGQ== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(6133799003)(5023799004)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZDJBMEgzeWR2SUc3WktYVThsUWx2Zm1jWll4VGpDdkhWcFFHWW9lRGRSVDFM?= =?utf-8?B?V29ERU1BQ3hJRDl5MjRxa2pFREFaU2pjK3JOellFdldxcElTRjYzRC9jV21n?= =?utf-8?B?UUpxaE80OUozVHFyaDRPQnVlYzJWa1F6dHM4MkdoL0dqaXJtRkdGWCtLZEFa?= =?utf-8?B?Z29OT2RlU05TYTJpdXcxVCtUVE9BaHBhdHlZUm5kcU5jdnpaZ3MxU3Z1bHN0?= =?utf-8?B?NjVmMWtDNkVkMTJWWVArTE5tdVhNeXJ0aTh0ZWxmSWhXeWp5b2E4Wm9WRmZC?= =?utf-8?B?SnNBMHh5N0kzcDFmbVBoTUxYMnJvWi8rMTB4dStJRXRlclZGdTVuSnRQbitE?= =?utf-8?B?VVhZNFhqS0ZLcWlVbW9mKzFmemFuYldMdnJ4NzcwOVFtU1pjUEhSQlFHdEJn?= =?utf-8?B?WUU5Z3pjYzljWURuS2xYN0FzTGVXVXNOWGZ3RkZFejZLOWhnNHZpY1NLY2pH?= =?utf-8?B?UzdLRGkrTFhUUElOUkZZZnA5V2pCQWhReDJRUWxWNnJxbjBCYXJWMnFqM1FK?= =?utf-8?B?N2hhRGtCclBra0RiNWI3c3pNbmJsTE5PaGoyNTVuV3pKbFZDa1RkUnF0YlAw?= =?utf-8?B?YVhyd0oydmREY0s5d3R2NGo4cmVQbDB3RW9YN2F3UWFZcTI5RFVVMXAvOEs2?= =?utf-8?B?ZEtmNTZUVWVQU3RISENRakxDZWVLQ0N5eTVxcHYvcEFMK0RTQ3NQcThtSWtm?= =?utf-8?B?cW14V09XL2tQRnJTdXlNUzJHdFFkRC92d3dWS25KekQxdXVDVTl3QWNLZkFM?= =?utf-8?B?RWxOVDUzK0dtV2NJUms0U0p0MjJZREFLOUpXOXBkNi9NdU9GUG8rSjNRdjJz?= =?utf-8?B?NHlUdkQ5Z1hxNmx6NzRweVowdU1ndWhQNlpFMTVkbCtWRGthLys2ODM0ZXIw?= =?utf-8?B?MVZ0b1ZxWGRNdGI4SEo2d3VCMGhtam1YVzkyaHRHTzd5RWo1a21OdE1zdytY?= =?utf-8?B?Qm8rU1JwakEzeGlVRG9aOHJ6V2prSlZRS2RMR1haRTd2NEZsd1BkalZzbjVJ?= =?utf-8?B?YzFNaXZRSm5UNWcvcDRKNXpRUis0SXNlOHgzNDJVZVk4aW1CRjR2TUJqMzdz?= =?utf-8?B?UnBtdit3RFNaYUJ0blkrS0FHWWtBNzBmQTd5NGxxK1dwUmJrMlkrODBFNXBs?= =?utf-8?B?azJxUDYrWlE2b2p0ZjNKems2NVpQWDR6ekxoMzV4R3FWa2tDS05ORDRHZ3h3?= =?utf-8?B?VFRhanJvSWx2ZE9wdmV6OXZUd2RJb1RWT29XMHBianlldXBGQWtmZ1FkS1Fs?= =?utf-8?B?UDlhZUxtdUl2R1JITE9UZEJ6MnA2WWptTTdTTXFxdzlTSzF1NUlWc0FjZG5p?= =?utf-8?B?bG5nN3Y5SHd0UmZ5d3h3SU5CWS9rUEt5cDFMWXR1K1NwQjJsQzBIRWZaekYz?= =?utf-8?B?a1M0d2xqS3QzTTU2TFJyR2t2TlB4bFZxeU1xeHYrNUE3VVdPK3c5TkNNMllH?= =?utf-8?B?UzI3UzhXY1NSUFNFbGtYR0VWc1RiZklrK25xcVluM0NaL3k4T2ZKSmdsVlFC?= =?utf-8?B?N295UW1hWndsb2lBRGRmWGRzTERDejRXaHRDNjl4NFMrVHF3dXZudm1YSGQ1?= =?utf-8?B?enl0Lzh4VldvN2hpSllIK1VwRXZpM1ZxVUxmbzg5UDVBYUZBc3ZHQlF3V3Fw?= =?utf-8?B?elZVMEwrendVZmxZckN4TFJWZ2tJb1BOL1RUaVB6aSt2cTFLWWdYT1ZraW41?= =?utf-8?B?QVZMRGY1ckRhdDVuRnUwb3BIaHVkZjBCVTdHeld6OU44UVNVUExKYWZaL1B1?= =?utf-8?B?b2NIeVNpd1RyenNkQTJuT1BHQldINzVLQS84UDZZMiszT1diazVhNHdwU3VS?= =?utf-8?B?YW9nM0NGZ2ZlYjcyRkZlYXEyMXJ6L0Z0V1ZEUUgrT2Z5emVYalVucFFXODRW?= =?utf-8?B?cmhxeERZbFE2L1VtR3dsbXprQktSQW5KbTVUS0tVWU9pdXQyS0ozc1YzeTRz?= =?utf-8?B?N2xTRFgwbmpSMHh5aXJndFlPaVgzamZRaUtPSXhhOWt2NTJCb1hFa0hNMG5a?= =?utf-8?B?OERPT2Z5L1RkZkdiOHErZ0NuNDY4MzJscnVtSGN5TWsvVHIyT3JhVEJUNExi?= =?utf-8?B?YmtPS3Q0Qk5xM1R3c0JmSE15dEkxM0Z0Q1Q0WldyWUhOSWZZTmtWdS9SMDlk?= =?utf-8?B?UUUvNm5VNXp1VDg1Tm1BVE92ZEhJY3dCMUJESUZ6V0JsaVRZeGVFUUhkZDNQ?= =?utf-8?B?WkczaHpkcE4vY3FERmlZTEpRRm9GblZzRkwycytuVzhMbDJadkplTUpwcGt5?= =?utf-8?B?Z1dKcWhWQjVNUWErVnM4a3dVYjc3YWdKYkxCZTRKK3ltLzB2RlNrQWxQK1g4?= =?utf-8?Q?UoQmuLwgijFvk5p+/a?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa00bbda-88c9-4b53-6355-08df0d54cdee X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:39.5135 (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: FgiB4vBhYTOh6T0srLAkcDVFYNq4zSPHnzczV0qhe+GLqIP1mZVrl0f1boQQDx0K X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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. PG_swapcache and folio->swap.val cannot be set/clear as a whole, so excluding swapcache with folio_test_swapcache() is not reliable. Instead, use folio_test_swapbacked(), since PG_swapbacked is stable when a folio is added to/removed from swapcache. 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. Add data_race() annotation for other lockless callers 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 | 5 ++++- mm/huge_memory.c | 5 ++++- mm/migrate.c | 3 ++- mm/page-writeback.c | 6 +++++- mm/vmscan.c | 3 ++- tools/mm/page-types.c | 2 -- 10 files changed, 53 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 c49ef99b4413b..5eb8a62fafb56 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3004,9 +3004,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), @@ -3044,10 +3044,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_swapbacked(folio); } =20 /* One reference per page table mapping. */ diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 86dd0470da117..9cb4d64739798 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_swapbacked(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..8193f91216822 100644 --- a/include/trace/events/pagemap.h +++ b/include/trace/events/pagemap.h @@ -22,7 +22,10 @@ (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) \ + /* data_race() is used to read folio->private locklessly */ \ + (data_race(folio_test_private(folio)) && \ + !folio_test_swapbacked(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 d1ce061601bcd..9b2a9d0794a61 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4831,8 +4831,11 @@ static int split_huge_pages_pid(int pid, unsigned lo= ng vaddr_start, * For folios with private, split_huge_page_to_list_to_order() * will try to drop it before split and then check if the folio * can be split or not. So skip the check here. + * data_race() is used to read folio->private locklessly. */ - if (!folio_test_private(folio) && + if (!(data_race(folio_test_private(folio)) && + !folio_test_swapbacked(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 a369d0c95c386..f6befd3ff1c46 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_swapbacked(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..02ad49b10be07 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2705,7 +2705,11 @@ 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)); + /* data_race() is used to read folio->private locklessly */ + __folio_mark_dirty(folio, mapping, + !(data_race(folio_test_private(folio)) && + !folio_test_swapbacked(folio) && + !folio_test_hugetlb(folio))); =20 if (mapping->host) { /* !PageAnon && !swapper_space */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 40d3f1b48a74c..9348ebf9de882 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -978,7 +978,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_swapbacked(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 Fri Sep 25 22:19:30 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 78ACC306775; Tue, 8 Sep 2026 02:57:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836222; cv=fail; b=I3G9NGRAHYMK3GmEjHetfudgyfylfzslry2g1EVbLMWyFum0e/O0lK3Iqt50Dw5RA1KHMKBiFysLroBv3WtlbhhPPDWmBJrDIAZAXsfYzgsJrMrrgHe2u+EV8QScJqSTWGPCUWA9IqDleIZz22hak77w0JyKTVq+8c5mxojsu0Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836222; c=relaxed/simple; bh=VU1M+D+ESK9vAGdXMmmAp7SHtTvhBOL5k41EAtzzFQo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Dv0DBRBkhepjMlyT7SBQIaI1Cutt6ZOJjoQj49pB9rfib8cB8hxibqS+Bba73GWdW5j1RQ43ZqBpoEaX4hUIkfJSnIQXM8XZahKSR6ybk5+1Jeh4GgLkO8AKGQJA9ye94oXjdqxBpaMgBuesRmAEnHslzuGqidc6JZbQiU54axc= 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=ILAcdjd7; arc=fail smtp.client-ip=52.101.57.56 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="ILAcdjd7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LEPx4eMPjwyd3Xm7upj72cOYVrTkOJZGnn52KynADOz4nl2yTW/IpCwiiaOWxV67SjtGXna4nVf2CfF3RLyPxvLQ4PBZFBCgTd1Pf5dpV/neoHwtGKyXkbYHZctsjZmI9y7SIaIah4T4nniYJm1QIMpNLpqBNMC+zAj2X73M29Y9snLq2aA4aESvOPqtGtbaJMZXpTFdrYPYSX7Sg8sWYKxrizqqzXum4T9GXaEMI2vAoWVP7w85ABWE9Vi1fQ4WywJFBAxEqflUjY0iUvo49SZev/cbiULOyhpsUJpRc/MBFIl3v9NNuYls/vVXz2Cy0awsyZEO9TrtN0z5rhepNQ== 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=uQNatyVZsCkHUcZa/m9V4rw8GUXb5HTkV57Z5KyBqGM=; b=Y0dz5gxjZAloD6qPIUMXbHRGD4E5Hil60gI7Hh6ZQif+9KftQa//QzKv9UdtJAapktYYxMWf61BEByQmh9oFl9U+cTdauPD21PHHzfTlEgyV0Y7Z79M+9Q/1e7WkRbVKgw7wPDLKMGDuRfOku6kvqeTwLLJRfXeBqH5Et1zWA1oUbRiVRKXuYIpjocIvUlVrJ04kZ+8hVjP28EOK04iI4vSXOh1QZZ5/gYa3kn5f9wMByWOhyOqO5WvlqGMt2pB/8kveqxjLBUzWHBlaQPf5ncFdUd4dcvvC/Mkt8uZnMIwISrI/303f0KUBA/jQj8IWNRX3WcTEME3raZ1TOb/vwg== 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=uQNatyVZsCkHUcZa/m9V4rw8GUXb5HTkV57Z5KyBqGM=; b=ILAcdjd7aE9WoqXX069oLMUD7pFXefnqEC6SL3VXtZ7OIL7ZEb73LdmE0X4fZCIUSmvu2vply79MZbrk/9vaPViNzdOWx8ixPFxAebdDo2kHY3HdlEKd6L9AkMVdZ3AELEDb/UATp48XBirLPL7DWup2MwspZK74bgKnwqioHPKguAa21A5r8647PpR7bczZ5iqVKFcvqnn5PbgGRv44bgrymvw18wCVfwZtEmvUm6ZudtEJnPkwfTE0eKB/BZWu8XR/InwBfD1dOL4TnxDqzTVHKDVu2yfp7t4wkVvUiR0/ApD1yRA4BevTi6GA5OkCVserLhQKk5mc7WX8zv//Zw== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56: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.0382.014; Tue, 8 Sep 2026 02:56:41 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:17 -0400 Subject: [PATCH v3 10/14] mm/page-flags: introduce folio_test_fs_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-10-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: DS1PR04CA0013.namprd04.prod.outlook.com (2603:10b6:8:44f::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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: a26b3b2a-3cec-4082-f8f5-08df0d54cee2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: vRtGOHf5ClSxJNsSpG+CgbAZr3WoVqk/IPAhZ0Ev3vFc+1hWR4A2ZDQd4C8UU0+iJqoUXQZEi9/nKP5yy2MqcXnR7TxvOeKLjQCG3tmtiPOAR1tZdsAOqvYQOo+OU5RpMnOzzoGwGj9o3P2q/TqJNExowcupVoAMjbkJ0ac1IDzvIsUobzCCUx5rmrcz/wIi77d8/LXytVVZHI+DrXxNEAQDDWAKHRlYLE9yyOPlhG94fApf6WSAzk8HsxyslOwkSHhmr5wDKqioLC3TWg1c+2WMYtd2iBFWb0md5tz0HDQwhVodOWU16DWHki4hfjRe28knKijOmhJkdN+nq/yiQEjkhoMqNd/2pBiQfsFRSWdtg1j4aeUub3nQBZ9agTxcnLfZG5I5uLCIVptmh5JAgCh4B0eVN/ysLay8ypoTvLdPTfC4beLZ1XB9/PcJ0ax0/2fVLydERe9RB1hQpCfruX5iAxaE5FDhrsCD0YAuVuUYpKJ3xN7O5CFYchxnAkBatvFrIwyyyOUSd/W5aMA2z6H4b5nnzhuupgoEFLihaalwGQfIVyAa/2+wAH8Zsul/8Nm7GzaWIzRr7/7kmkAxu0gQmz49H2Tiv3EVvjSxGFh7/iuEcCl9+e6VaUUVFeyLxYQw+b1EW6folCehRhSUhXOUF/G6xnI8h34tpaENNn1S2qtyiXzgE9jjor+Kjb+6iBCzhJOfCcdi21u0sOjVFg== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bEN5TEZHQVBEZiszdE92dWtCN2JQaTF5TEV2WlNJK01wNDNBd0lZbGttVndy?= =?utf-8?B?QVgyMzlLQ3E1L0pPeENicFVKSjU2bXhBbE1tR3ovQzQ5Z1k0SzZwMXpYclNG?= =?utf-8?B?bkdJenhrMEcyNllTcjJFQUswc0ZFM2luMVJGNUozRERGRjF1OGM1WE1LbUlQ?= =?utf-8?B?QjRLTUpoQVpUczl6by9HZGJENTVTUEk1QzExYVd2dWNuUVFIQUlXRUlyZC8r?= =?utf-8?B?YzJuN2x2K3c5Rlhic1dUQjQvWWkxZXNFcmpiM1ZNSS8wL0pKV3kvWStSdTRJ?= =?utf-8?B?UG1sYSs3OWVxdkhMS3JUTkFMSTZLU010d21LS1l6SEZvWTkvanVSMDN4aTV6?= =?utf-8?B?cXJzNTRScjg1RkJaRG8vQ3ZuVjBNUFk5YWswNzh2cXQ1S3ZSeGZJY1E2K0py?= =?utf-8?B?S2VlOHFKTEtwekxaZ1VzbEdRLy82TFVkMWtJRWVYK01yZCtiQWFML28vZUov?= =?utf-8?B?VURrY1NMeG9BUFVtaEFwQzVET0RGYlBNS2NSRDUyMWxtcnlQWk9OdUZ3dk5z?= =?utf-8?B?MS9QY0s1dC8yN25VYjFtdTFiVkFZemE1RFVnN09VeGM4dzNRSU16QkFCQ0g1?= =?utf-8?B?TE9SdXd4RUhLZXlaM2JQbUpmVWlQSFFkbEh1WHlXcGFNenUyc3BUSWhTV0Za?= =?utf-8?B?YS9DYnpNamM1cmljQ2g4alRkRjFYZ245M0tWTS81V0hIQktWQUFwTWNXQ1pl?= =?utf-8?B?ZG9DWk5yTC9YOS8vZWRFUXVWSERXdldBRkl0K1BjeEJyRjZyV3hXaUlIcFhT?= =?utf-8?B?ZVdxcUxDMDA4OHVxamtsR3BFU1h0NzFoMVgvQUdFK3BoYWR3cEtJZTM5ZWhB?= =?utf-8?B?RjdKRlFOY1h3d0Z3WVROTzlGK3pMUGVsWXhXV3QrNGxwMlJFSHQ5b1JjZ0Yv?= =?utf-8?B?cTJDZWxRMlFKTWUrMm5tMjY3UHNrdWZlbzBGRGRQaEh1dG05Y2N5Z2VzK2Fi?= =?utf-8?B?WlZzb0FwQ2dOcTlScVNuam42ZU92aDFrUnhMUGV0bmFYaE9CaGFrUERkZ01v?= =?utf-8?B?L1JZOEk3Sld4NklmeW5GaExMcGVibWRwN2sxNFRZUEtOVGgrMEZIclY2bjgx?= =?utf-8?B?cGwvb3ZXamROQmlyY2t3ZE1rVC9MVVZ1YkdPT3V3UThkRjloRHROa0llSDQ2?= =?utf-8?B?cHlneGFRU0xWeTNZUytOa0VxMXROdFBXekRzV2dFZzRUbml5eTBWL1kyWlNk?= =?utf-8?B?YWRIOWFkK3Q2c0pvc0hCUVZ2ZHdGN3hscE9iNjd3aWNHdjJhczlXYThUdW1k?= =?utf-8?B?SVduNWNReHFsaFdDaWpxTkpsV29keXVCUE1MZmNzdCtING1zbFh2S1J1Z090?= =?utf-8?B?NE81ZmFGdjVGZjFWVnNtaVBrTEFZWnFqME5aQkRkZHFXNXdBeWNGOUVzYkt2?= =?utf-8?B?TW1YKyt1M1Bad21qVVhTK2s4MTNQc29XSmZYcFRpSzVkK3FJVTAzbTlRWm0r?= =?utf-8?B?dEZST1hqSHBMeklmdUhOSnk5Y05xUkx6YU4yY3hmR3hiZktxSWlxZ2NPa3hP?= =?utf-8?B?Q0Q2K3pXeDJ0d3RRMzB3bjdtTEpOa0M1VXpCWEdSUWZhTG9ZdGN3Y2k1dFlv?= =?utf-8?B?R0ZUNWhJc0phSmxZdjVwdzZxRGlEYnhVZWFDSU9IWnFlWnRBRmxLZTZLdkhQ?= =?utf-8?B?WUFtYmZlMnlsRXdkOEFxdS9aZU1zbjNNdkdvQzVKNEdBMmxyYm96anFIWXRL?= =?utf-8?B?QVJ6ZkNpenlGTy9zb2pyQ0E3bkFBYndRdi9JQ2wvajUxMkxnV2xxdStyZlRY?= =?utf-8?B?aUhQVDZ4UmQxTlJRTVRGRUk0Q1NSbWhMaVBOZzMxOHEvWFFxZzNJNFllazhw?= =?utf-8?B?Z1BJYjlNZXZpZk1aUU51ZDZmdWs5aU9WeElDN05zMHZJcXZBdXMzeGJOMHRO?= =?utf-8?B?VWZ3WDNwOS9reTZhaUhUelYra1pEdjBHMFFyRHNpOXdiQkFnQnNBZEZWTkNR?= =?utf-8?B?TFZNbnozRFdmbkRWcUhPSUFTOHNzYlpQdnhaZmxOQkJUaWNrVGNhU0FzVVFj?= =?utf-8?B?WVhobHhXeDdLcU16aE5vcGdxODEzOEdsL3hhV0FoTWJLK24yYzBjMllpQW4w?= =?utf-8?B?Z1A3aTdvc0Q4QTJXT3haY2dYbldIVWZpakFqR2h1NlJJdFdLaGo1ZHZydDFm?= =?utf-8?B?MHZya1RSeGVZYVNONFA0ejFiUTRrMjgzREZxYWFXN01teDVwUDhPY2NkZGJr?= =?utf-8?B?Z2pKeDl2b2RwZFl0ejlvSUhPcVMzL2FjWkFYWHZmZEJ1cllYK0hIQXBsUjI5?= =?utf-8?B?ZFExWXlrejRLbEYxTTVkVHlHN3ZWb3p3NjZ4WVFXWXNwSzZHMm9rOGZ5OVB5?= =?utf-8?Q?707/ZWhEjkcnkxbSZn?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a26b3b2a-3cec-4082-f8f5-08df0d54cee2 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:41.0450 (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: Dkh2oTEHwEYCz80hM/ixDR3ztBinEHHlW8Bhn8RJAVp1zvzH/n1WGhj5JhF6Xd2l X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 | 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 +-- 7 files changed, 29 insertions(+), 20 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 5eb8a62fafb56..c861525cda83f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3053,9 +3053,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_swapbacked(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 9cb4d64739798..ce7fccd90367b 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -1210,6 +1210,28 @@ 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. + * + * NOTE: For swapcache, folio->swap.val PG_swapcache are not set as a whol= e, + * so folio_test_swapcache() is not reliable to exclude swapcache. + * Use folio_test_swapbacked() instead, since it remains set when a folio = is + * added to/removed from swapcache. + * + * 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_swapbacked(folio) && + !folio_test_hugetlb(folio); +} /** * folio_has_private - Determine if folio has private stuff * @folio: The folio to be checked @@ -1219,9 +1241,7 @@ static __always_inline void __ClearPageAnonExclusive(= struct page *page) */ static inline int folio_has_private(const struct folio *folio) { - return (!!folio->private && !folio_test_swapbacked(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 8193f91216822..547a550b81ee1 100644 --- a/include/trace/events/pagemap.h +++ b/include/trace/events/pagemap.h @@ -23,9 +23,7 @@ (folio_test_swapbacked(folio) ? PAGEMAP_SWAPBACKED : 0) | \ (folio_test_mappedtodisk(folio) ? PAGEMAP_MAPPEDDISK : 0) | \ /* data_race() is used to read folio->private locklessly */ \ - (data_race(folio_test_private(folio)) && \ - !folio_test_swapbacked(folio) && \ - !folio_test_hugetlb(folio) ? PAGEMAP_BUFFERS : 0) \ + (data_race(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 9b2a9d0794a61..4cb7d9bc47544 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4833,9 +4833,7 @@ static int split_huge_pages_pid(int pid, unsigned lon= g vaddr_start, * can be split or not. So skip the check here. * data_race() is used to read folio->private locklessly. */ - if (!(data_race(folio_test_private(folio)) && - !folio_test_swapbacked(folio) && - !folio_test_hugetlb(folio)) && + if (!data_race(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 f6befd3ff1c46..2e133d533c8da 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_swapbacked(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 02ad49b10be07..e7389020d2a56 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2706,10 +2706,7 @@ bool filemap_dirty_folio(struct address_space *mappi= ng, struct folio *folio) return false; =20 /* data_race() is used to read folio->private locklessly */ - __folio_mark_dirty(folio, mapping, - !(data_race(folio_test_private(folio)) && - !folio_test_swapbacked(folio) && - !folio_test_hugetlb(folio))); + __folio_mark_dirty(folio, mapping, !data_race(folio_test_fs_private(folio= ))); =20 if (mapping->host) { /* !PageAnon && !swapper_space */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 9348ebf9de882..47352bafc5b6f 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -978,8 +978,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_swapbacked(folio) && - !folio_test_hugetlb(folio))) + if (!folio_test_fs_private(folio)) return; =20 mapping =3D folio_mapping(folio); --=20 2.53.0 From nobody Fri Sep 25 22:19:31 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013007.outbound.protection.outlook.com [40.93.196.7]) (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 F3EBE310784; Tue, 8 Sep 2026 02:57:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836223; cv=fail; b=qu9FCLlJAzft4fdU+auoA8zZnSAZNNwA2lAQYLB0rEdf4VKqqMj23PqYWhHYrEBayRGSRB/5fAFlyZwowErtXRaKiZszOnJoEik20wFtkae0mwFj5+AEUrIkHyf8D/6XM/DeHQywp0wnxxTFvjnjscObxor1xPS/vwPTfhHCtdo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836223; c=relaxed/simple; bh=6bVD/tWpMJr7AWa1GQ8VlnzLtkamUSNn7ZsbpO7IKDQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Pb1YZjyU/NgtS3uxvPPXSuLkrRuQTsAGqQaGJNzdmcM4LkELOhTwatAJzgPzdaiZQlq/+jAiI/wpYZf6kqv+/bBuTDRP13z0Qzio5a9TSMWPx/sKaXgRAZcz92NJ9Kx02I12E6MywEM1nFbGeIBAerTXtQXQqU2Dnv41kYpZMWc= 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=PcKUBEiD; arc=fail smtp.client-ip=40.93.196.7 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="PcKUBEiD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z4DCwRtdebX3tZzxjcC20KEcIxNjNMVezt08YCk1jEOgZVWrnZQXjgFvbgLBdvWH+tm7DXqOkR592Bt2D5fXEUbtBm2uLq0nNgTlbP/y9N5s77d4K1PubAXphQ54ODZsdvxbALQcUr1zo2Nwkaijx3GduQOyy8jKzNxj37UXCXP8oEDEtLBosBTwbGQxrOJvaT3qkV0PDYfo8lvNsZdEyQ/vomXuq6JqvIoTbgnYAUNrOGEoJ68l5IxE0WQx+1hSlGm17lxbSw58k0LQ6SUjUpSp4xbZ7rfgWJYVfMfJmBkp/WA/YxUbS0BWXRJJnQqfBfBbTgjJiYleo2w6ZXHrMw== 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=4BaZCdTyCzuu2wqDL8UKDP5UuKagpSTbQvdL4j66OCE=; b=tm5+nTOWCK0LbryGTNu+uk9AMLl8sc9E581lsRClw/8V8Dgt/xhd9W8tk1fIcyptchfua+yGjfZiP0IHWApldCovB6LldvhT538zTl+hUmjHZcGC6sad0foMcMGHudop5tWKHKANAJtgjNxQv+vkirBtTd7q9kRRIFnZloQKDB3dSMhZ+sv4MjndGbB3pAAKOc7+qNwGKjag1eUOluzhxtedNJM4I93zTMmnax59klcwsQQbOPZac/DCV/ygv+NpC9qOmxwjOwgVhu4ROKGvISQJVkdHLzwMYb6ex20CPXhKR0sle26d2kwe7Vg8z/3N9QJVOjoIxrlWDfgdOiU+YA== 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=4BaZCdTyCzuu2wqDL8UKDP5UuKagpSTbQvdL4j66OCE=; b=PcKUBEiD/U7puGOr4+rANXlri1PiiDMIKdizJbVz9ejCyWfcukAZctrXfozJyHWBTF4BxUK6LaZ2HJzrAtI2KajRNLySWLtTBJYGxRyzoRcGDC9Y80BHLHkGhTBuvuZAwhk6XLu8ZFIT9utWDyF+JwmSG5/vLyOV1gM3iFPERZI+RJDqDUE8ZgDQRG5yFwFPqT91NeX6R4yf6SU+XI/XS1NfcHYH/SQ+lQypePJOFU+x2wGqmSmlB8tUCFCRwegzboo5nTtuGVvcMbn6p8o2ZUveAqMKCgsqrik0fNGnNTAIc0ImLx9UFXHID8RbI0162xlEwSvpbST2IPljvRIL0Q== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56: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.0382.014; Tue, 8 Sep 2026 02:56:42 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:18 -0400 Subject: [PATCH v3 11/14] treewide: remove folio_set/clear_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-11-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: DS7P221CA0039.NAMP221.PROD.OUTLOOK.COM (2603:10b6:8:25e::7) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: f7ba3392-5856-426e-1fa2-08df0d54cff6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: UTwsJVOH9XV2eWuVNaYuVV5JnmqojkfhKtVkA/Yaj72+bjuriXgNDSbcq6TwRk3+6ph7VJxM8u4yhY371UiHn3XYA/i8/rjCQPZilDjMGNlU/XoIaBKwx2+FSI14WoxjkbSx6vl103azVjsjiBiiHmV4scHAuCHAb/Q0lQSrD9PLaO7LkwU62SkRLhRtySu0JK28C3JiQAGcgf4cliXhcO8DVa6j5k/V3+GxNHjzgC7brKwAY8HHRUtO5N8bsgOyAg7Wca9u2jQtgpSUGlicoXPD3duMOMzb8IhrF7XQ5zWkAKAkimveToRao0ti4jEIKABEtmF42HJu+Kh+7xQ4Qi/OObKKmUxF8gZk2X8a4bpzIbtUhgXjhzmBLvg8JV424AvfS/7PM1UiFb56zSxvW9Zd7PuJtSnrTPX7Sq27ZkJX818w118vtsaxaeNJuOK0cBV+4Px53c7powym7cPTefEh13TXvDvZMfkxP7gkpHq/aFjR6KFCvbMLlGvx/A6Mr2k7JXASAtYiY5adcCJvytjhDY/bjIPVHsZAxkz18XM5vhsEgYHBtUQQ5P2okClbNlAqUabnH2DAy5rYgbhwFAYPkiRyU7tPs/YktwYDa8h7O8HKk7v3qK1Lvio/QY86VxqKXxu1hXRAX2lV1HWWxqnLrG6s0NdIev5NaKU5BBFy4kAoLpc2h1RTXfdXtl33zk1gRqgMKDoy9113iiNtlQ== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?blc3YUl6K2NnamhvU2JHZGcyNnllbkJNdXRrOXpHNS9JeDJoZW4yeGJZNFRr?= =?utf-8?B?azZzT2NPLzNnb1BOTkNROFNvcVFxT1VRVE5CemNDZUhuUmR6TThFRXRsbXVO?= =?utf-8?B?d0thdUFneHQvc2lnV3FnVTJ0MkROQ25UVFd6eDlVaHVZVEJyTDl4OVBqWXhQ?= =?utf-8?B?ZWVrdVBEOGlvbExVSzFEbEkxN2VUWnJIK0g5MHdBUENRdUhHbFd3cEN3VUZL?= =?utf-8?B?S0tyZm5JOHZYV1N4TFRMeG5tbXkvcjhkM1h1QUNjbU5PdEdpY2dnQ0p2N3FG?= =?utf-8?B?ZThPT0VxM05xcFV2b0dhaCtkY2pnM24yUGx6M2tqbkpZOFBDMCtKc0R0UCtF?= =?utf-8?B?NHIxZSt3QzBGdW1kT0x2R2p3MnBKQVB5cnQ1bjNIL2s4dDFra3RsdUNibmdL?= =?utf-8?B?UVF1aXIyUE54cHBWeGZJRGFMQU1naXgzK3hxK3JaQmlkeHUxU2lrcFZEVFpK?= =?utf-8?B?eVlBODg3d0hGeE9CSXhJYkZKV3BOSDVTOWFXc0sxci81UVlXVzlCYjVHRlhN?= =?utf-8?B?eVVST0ZDL3AyU3l4Y2trYUNpU0o3dlhSWlorZ3ROckdUREZwRlErK2NXN1lO?= =?utf-8?B?WmNSWHdqclp6MHBDQjlDNTV5MDNWZGtXWVBTSFVzZFRGT0ZwT3Mwai9RMjlQ?= =?utf-8?B?aEExL1dYZTFYc1dRWTJtQ3BoSTZHaXY5TC80WVdKd3NreEFMbEhOZ3p2YW1E?= =?utf-8?B?N3Q0d2RyZUV4MlczQ0pwbWZ6UFdydlg5emV3OE1PZGE0Q01QWWVvUE1OMTd3?= =?utf-8?B?QkhEMHVCS1llZXBlRUhJcUY3S0FEakw1a2hwcmMwTjhpeU14eE1ZMmNiWXdq?= =?utf-8?B?M3d4U0M2Z3hYOXZXZGJ0eVEvTWJ3UEwwYk5zZzFPVFZ4SW9mOVdvcXhwalR4?= =?utf-8?B?TjZlMUpkVnFoSzF5RGxodXRDNXN6cHU0S1psWWxwSkxEaFk2TjgzTkNTZ0VN?= =?utf-8?B?UWtlWTlLNm1iclJnQ2FLcFYvTGRRV1BhZ2tUWDB6VERleFo4YVRJSTczRmVG?= =?utf-8?B?MVNiT0xYN293dG1tSi9qMUpLRDJmT1MwUXd2MUR5cUNXQUFUYldpVjFaSUpD?= =?utf-8?B?U3YwS0pDRTBWdnBkVnRQQzdoNEhwYUxZaVJYOVNic2Z5ZHdKTmhyNE5md3dw?= =?utf-8?B?TG8zYzZ5b2ZwUEdOcG5BN2owYzlRRTM5SkYxRnJLZEpxb0luQnNzb2lKTGox?= =?utf-8?B?Skl0UCtYUHphS2VIUkZaZ2VNWExzOGViRS9hNjU4YlhtaXdPUU42SjhOSngv?= =?utf-8?B?ZHZZOUt1MHhzczZvQTJ2L09uRWo3RCt6UmlabXVLNXdxTW1aaTZYeGFUL3Bt?= =?utf-8?B?NDliUllDNjA3eDY4REhoWERaeVA4RnJ5Ui9nY1dJSWh2U1V5amZOUDYyeTh1?= =?utf-8?B?Mi9raXJzSFl1Vlo2WVI1TWZmRlRZSHVHcEhtdG5RQlFMeXBDNFc1OVkrZWV2?= =?utf-8?B?dWJUTnd2TTNGemJNaFB3RHFxRWFIWmQySTZ3UENkNUFuUk5yWmxoRFZ6eTlj?= =?utf-8?B?VjZlMEt4NFc4QSs0bStkR3YvOW9WUWduVlVjRGU0VDIzU2lucGZjUUxTV2Ex?= =?utf-8?B?Q1BCRDdiNGJTK3ExS0srb2U0d2s5a1JFclpkRlFIb1JkWlVRSUdPMHhrenQ1?= =?utf-8?B?andURHVZQmcwUzB4S0R4VEJ4Q1NURGFIZCtLaGh2ZHUvaDNtSFI4b01kSzBB?= =?utf-8?B?N04zT0pBaUxKNDY5enhFZTJ0MmVtN2QrekZES0FCMSs1NWJHeGZLZXI2QXZP?= =?utf-8?B?Mk1aTm1RZ3laT3BPSXArbzU0UkczdHhHVmlDeTg5VTRiVldhNG5XdmVNNi9O?= =?utf-8?B?S0NxSkdjNG5QNVF3OW53dXBONlFoT1hlSkZ0RnFSMStWd2V2azJyUnB1dHRk?= =?utf-8?B?cjRxOG5uUTZGVnEvbVhkbzhnV24zMFpBUC9GWkpRVTViYjh2Kzh5cks4UTJU?= =?utf-8?B?TzV2bmRvamNpbnBiMlhRdW16VWRkNll0VmJ3VmwyVWJSYmhmTCtJVDk5cmI1?= =?utf-8?B?dC9kQjUwWE53L3ozM3ZxdnJrZmc0Y3d1N2g1blR5c2xzaTM1dllESllmRHp4?= =?utf-8?B?TGF2TGE0TXlxTGVVSTFVUXg0VU82cFdxcmpLRGVSZDNMZEN5MU1Rczhja2oy?= =?utf-8?B?bVVUdlFOZDhDUjRydWdWNDBQZmlaQlBORllocWcvTW9ia2dSb0k3bkY5cGo1?= =?utf-8?B?RmNxblorNHFIZ0h5QWltNm1oSTYyQzcyNUVuTVNhamhkbnI3QU4vODJjQ0RU?= =?utf-8?B?c0VWVDZGZjZ2NUFlMmVkOEorK2J5MHpvMXF6aE5Jb2M4Tk1qQlZETWo4aFJI?= =?utf-8?Q?CLU28p+tnzmFY57NaF?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7ba3392-5856-426e-1fa2-08df0d54cff6 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:42.8273 (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: AGXmY5Lxyni30sjpZNlc7hExINGeWP7KoJM/Hf95xa4cTSjzYF+TeGjV7qQH3tAZ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) --- 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 2257df004305e..cc5c2cca814bc 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 2e133d533c8da..77b89d0909f1f 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 Fri Sep 25 22:19:31 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 776533148DA; Tue, 8 Sep 2026 02:57:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836224; cv=fail; b=OgczohcM9GA9Fi+I0WciHsI7qbjCzBcfS0kovfzQPjtSEg9DwkLWfvF/OxRogCz2k9v5L7j6AYFb+b68Eq/8jLsCgjIrTA60HTkID/BDWbE5YmKWv81TdVDiqhKewnQVcLY3awsCWtMdnbmNCyjHMkTpgaMM8ag1kPyq23trk28= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836224; c=relaxed/simple; bh=aK9mOhpFt7XZggxW22GEovJdLOclN2q4+ttFGV73rxM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=olqIEpaY5MghoiRxvLRfSccUIt9pMoj7yyJvBYxMmVAnalwzKNqFatSxkSlthLTs/t4dOZQ41d3eQdI9E5o973qC4kBfolkytKyNJXqLoHsoCf3bdKvFUZgKdpLjHB6W5kecOdQzmIrFuUby9ahnA7Vabse7C4RlBQtbNBh+Dus= 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=p4k/9Bu8; arc=fail smtp.client-ip=52.101.57.56 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="p4k/9Bu8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YsbSLKAPYyRDirhE0YIhAq2Pt/nXG/I+Qkh17lplBhNRplVmVRZXWIgdToNLHO+yuVRTJy38Qv3Oed9JtI7rdD0J7bbl0wSwasJEVAMPuTNEtYweIylSRx4nhtfCaQFz1n5pAm8g/NB7LcVwfRSbKk3tQBOEbrlKRSb0fKdxW5cHB4/6s6vOHRLmrsJcHS6yCvt2Oy1YtZknOJDGpEVX9FDwc5/0mkveA/Z04643AY1gxBShr1r+J38N6uFpal9WZXHrcrPsT/Msj6G1ISmadouIEfrfECZEaOAL+No4PbpWLj/sQk638jr2V2cnZk5sWiqt1sbcMp1lXyMPu96bZA== 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=fe6/NEYnYmtVRzdmrwGmMsoylNd50uHufknesREGiRz59TQLpFlgioe2geBSPSZtVBOcPE1RxIlF1qwKJ2UgLKTWt5R839puwi4oOmjeMtHugl/LOZzmCSZ18T2yXrgUMdV5AXM78a/TBmMQO8uqegr7710xo95SKkh8pZMHzedcU2w1nGHm0w++29ucnMdSXhSQsZwAXwPGxX2ajrKgKvsvAZzzDKIUaNRHbxYfByphduJnEi3QsmbfM9tEwl9Fht2AIDOXEJwrzN1JwKAfrpFFChBgZSJPmcxjlxroexr+GfdcY5Q2xDeYnww0YjxPJgzPhJI8AA3SiMcDrzeOfw== 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=p4k/9Bu8BqPShWyYYC/efcA08jGG+GNpzHFd9/XeYPeim/iwfPuqCGcFSWzSuUdzeKrJ0iOHDa5UI/BZV/4cw+/ZQ/4jQUhXoFls7Rc+u8tUQOcAFBMsPSysnBAgkL5FCoB4HFt+lohKvCCrrBqH/dI9H5DOgOGvjq9OFLYiuZeq/1thSfPsfwdRf+6a+s/kTmXH6OyYlGarDvTorEkjl9IYfCQ7W0L5PxcNykREQ5f8NegxIN81ZV4/HVHAKL84weT8F9Qgox/id1CVLtyfdLk3Q0ssp2OOyX2PAxbBfMFFDI/oY0mVwc2SA/2VODAwBjOEgeNzRvFbqmZ+RgjeRQ== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:44 +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.0382.014; Tue, 8 Sep 2026 02:56:44 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:19 -0400 Subject: [PATCH v3 12/14] treewide: replace PagePrivate() with page_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-12-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQBPR0101CA0346.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6b::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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 631bfd65-f308-4edd-db12-08df0d54d0e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: sw1rZleqqP7c3P8hBKQNk5kE6H2eoK3BB9aWKxoYkMLoAH4d3Jq3WouKTANWncRwtCNZd3IUoCXtzhwg3+GhqxgBMb9k+LkIbeIUp/KpFSFy4YwYhhL0zxvZbnFm72gUEYUIIMVxdfoW1+EZDZePCH0jYJn60hpCvwZN+3h8Kvq3y4IC1m88T2S8VTFjXcKnKBw9NoNPmGbBCMMdR35icMwh1hdg/60xw4RzBi7MogmeG1BBOWOZTZReOZ0TYa6j0nm3laTrUnFUaIAGCOwbkT+3C9L1SWFEsOPHsXe7q+QEV/lYOPdwxgFbdvIJLo7zCNL8Jus0pmyCAcioyjTa0hkhmWqlSdi8TaX1+rEcO+v4KZWCHdNlTWHYDgpB0Zuy6Eg5Pk0TLJ6QmZ1iknfSUB7QbSVXBBlN2M80CjlgZwFGMnlZGdGoyTBM4Jz48X0xYvFgtNlEo+IW96nRaK7jnzYGiKfONr0Y3uLKz1ROp5ZOiISvGo4SCVWIPgsXfnComSfNMAfeg/EX8gC6pwE6jfCeahNE0iNuMJbixuUCm5OrF+QzxVVhfR2P5cy3U6c1hgiwmUJCejuci2QycZLqIbnLRV9+VBSlZfezbntgAdOOfCRMFOUPw+eovv7El1aZ9vgd0r2Mb2V0mE3ZMsPgcetw/Vdb1SOzBiV3HMTjhJMg99lfMH6aTuZ2Em8yoiCMjK8za3An6WdFABQvOI9JBw== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?LzBxRzg5SUZpWEM5akRyMDJzbWZWYzcyK0RTdTdCdWFxbzgxL3VLTDVPMGQx?= =?utf-8?B?K1h4WHUvRlNrcDcwUU13VHlhSHR1M1NnWnNkeEJnNlh0Y0gwYUs4UVlvK0VO?= =?utf-8?B?UUFaOWUxQjFNSEJYTUYycTNSVFFjZTh1WVoxK1JQYTJGQkpuY0ZjUkFacGZ4?= =?utf-8?B?NDNHTEhjWE5SVytoK21hYVMxV3A3VzloWXJaM3l0cTlkMC93a3NyNkFCeWNF?= =?utf-8?B?TXR1OTJWSFFDOHcwUGkrZ3lQYURVdzllV1lBcU13SnNRVHVUMUVIYm9EcDRl?= =?utf-8?B?MmJKWUZXRkdVRmhERnl4UWpYdzRFeFBka0R3RkJsQUpXSEx6aC8yRTVyRCsy?= =?utf-8?B?VjdvV1JoTDc2VU9XRUw1SmZFbVVsc3VqNSt0cSt5OWFNRkJsYlVramNndUF0?= =?utf-8?B?SDhRa3ZzcjZYandlYjRVMmRSQlZGc3RPbkQydkpwWnV3RWM0ekhUak9LMHUx?= =?utf-8?B?TlBiTVRlN084dGEzV2RKR3J1TWF2YTJHWlZPcWdxYk9WZXc4UE1FaFZLdEk3?= =?utf-8?B?bGlkSnNtY0tlVERlb3ZaelMvUnd6VElWRUx2VEpEblFJUWp1V0dhT2hSOTZP?= =?utf-8?B?TTVMbnpOSG8yN25pWWhNaFFWUWQwOHhKdXBKdG5lbU9GVnNGdW1VYVhrSmli?= =?utf-8?B?UGtJSFF1WnlBYWZSSjVrSmxQZkhxSUJ5bitub1pPMnJ4YmhkSi9VeHJJTnpR?= =?utf-8?B?Y0UrcnZFa0NyVzM4YmV5Q1BYSGdqOFRSS3d3dHFuak56OGNuUDk5ZnNNSnpZ?= =?utf-8?B?Sm1nOU0yWDk2eERNcTczU2hsMi90aGFYSnR2akIxNmJnK2JzU1J2WERBNng3?= =?utf-8?B?akhXbUs0SFZmbHB1Wm1JQWpXVVgySzBaRXVjbEgycDlvci9UMFdnRmZwekxs?= =?utf-8?B?ZGo4L2xwUHhzOG9XNXl2bjRQM0tEeHFKU0pWN1IzS0kzWktsR3BNVjFGYmtR?= =?utf-8?B?YTJvV3d1OFkwU2Y5RVJoOWRWZU4xSzd2cllIYVkzZWZkL25ob1lydStkL2k0?= =?utf-8?B?SlVmaHdOWWhaYm9XbUYxbEc4NGdNdjQvbHNnL2s3TW5QVHg1Ym9JaElLcjlK?= =?utf-8?B?TFRkSlgrcTExRkVxUm0rdnYrM2RLNFFOQjBLZ284V2UxQmo3RzRCNHBsNUxv?= =?utf-8?B?VnRTVFQ3OGxxVEJwMithOG91dkVWZHRSOUEyRi8wK1ZEN3R1SXppYWZ5akw1?= =?utf-8?B?cXh3ckxIZlhZUUZpNEhjZHF2Zyt6eitUS0RQQWUzenBvT0IxNlFwQUlEUEtx?= =?utf-8?B?WjRLcGhqcmp3RE1kbHE1ZHhrbGtDc0RCNEcwclBydnJ1OWwwREVSVi9UWXJC?= =?utf-8?B?YXFoRThjaDQ0VnFlZUJRQWtCQ3F1amlPUUlqd0tkTk84UkhUTmdTK1Q4ZHph?= =?utf-8?B?cmdzaTJwcmc0UjZSSjhodUdMTDJNZUU0WWwrS3o2ck5VYUJEZ0FOeG9MRDdr?= =?utf-8?B?Z2tXQnhsbkJIaGpOOHBZdDRzUW9SeFJXRWJKMkM3dVg2WFlKUTRtaEt2YnJ2?= =?utf-8?B?VjFZMHZCM2RKYnU2eCswVzVwNlNrTmhiMjZvZlkzM2V3RW4yS3RRbWo2bllw?= =?utf-8?B?cDdwQzJPdjV5TzZ4ajU0WStiNHlsNE5xaTBxYXVYWkFHcis0RW90bE9RTkZi?= =?utf-8?B?NTdiM3B4SWhPaCtsYU9uSVdiU1FxaDFzN2M1c3JCVnZWaVJSbHpHTFJ4WVE4?= =?utf-8?B?OFFuNEJvVHZSVnZOL3RQdG9mcitJNFJjRE5Qb3VrUXhJd3grV2dNbS81YXND?= =?utf-8?B?WjlUQUR5UXNWd2RCaWhvQVZqM0ZVM1l3QVFRTEMxNmNwMXA2a3VpdGZaLzJ3?= =?utf-8?B?VEh1ai9qR1pZYXpLUkk5ZjNxOU4rbCs1MXZaeHpvTWh6ODluYVZVMjB0R3ZQ?= =?utf-8?B?cU5FdEpjVVUvTDVLdXhtcXhLNElHckVZcWtmT2ZGcFpyTlVXNnVjRFNnOTcz?= =?utf-8?B?UTFkbzUxeHFqcSs4OW9GbEdlOFNFalRIZm9zWVYrbmFHY3BzUk1pSzlyUlF4?= =?utf-8?B?T2FXeHBTN2daQ09ZYTJhdkhKRDBCZzE4QUYrQWljSWZUL1ozQjg5bk04WGcv?= =?utf-8?B?L1BVeU9CeDNwcjFGQWZWU1dPd2FUc1FrVzY1K1pzd1BwVmdzay9TbDZzbVFy?= =?utf-8?B?QVU0dVhkc1FOdG1yWkMycWZwNWZMaUFOT2xxeWgvNXU2ZXNPRjE4T0x2RWNC?= =?utf-8?B?QXVMY2I0TGpwMGpRNmNkU2orZzg3NVB6bFhoZG1rVXBxRlh0dk1nenFudjc2?= =?utf-8?B?UWdFdEl5ODFCanlKZm9iRHc0V0c0dXQ5Z0dzMGlJY3ErVzF3U2hUN0t3cFBq?= =?utf-8?Q?13MuuGX0HBHcmMgpLy?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 631bfd65-f308-4edd-db12-08df0d54d0e4 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:44.4233 (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: oKjgBCGuEFkEfOc+C4SvHM3tzkrKZa5O3krHDUrn27qgkrfQkYhASkbhGHITtlST X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) --- 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 Fri Sep 25 22:19:31 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013007.outbound.protection.outlook.com [40.93.196.7]) (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 ECDC0324B32; Tue, 8 Sep 2026 02:57:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836226; cv=fail; b=ZodoIBuT2ibsFLqLMqc9SV/h/fStJaDcfmyS2UF0jJBI8WpkHdzRJK9V/PRkSYpBgG0XIqLePv8S39qx9DAg4fSbegujuBEeiLVsNVXViXtNaZnBR1ra7ap6pJvH8bDHpkZJ0WKtqysO9t0AMBVmP9TsvwsrQghlS/phA8QJKLc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836226; c=relaxed/simple; bh=G9oKb5mPbQTZWyi7K9myTbCw9Vaon2+lQEo/1IO5TBc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=BtP04FUish6ZscLzA0FU2ogXWutV9qlEAI/63kR4qxGI8Vr6yEsr1qdoFoIKXTgyhqV3OT9SDRaLpLvOQM0DKNNg2JTRD/MRRXoCZFrP9hht3HswCgBWZzBsq5VNopwrOoyN8NfGnOgmGlUq+StMc65017mksIsuHYA/Nq36W7I= 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=cAiFdvpW; arc=fail smtp.client-ip=40.93.196.7 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="cAiFdvpW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D89odFjd4J8fZYpZbtTTxSAQYM05otqtuD1VPTv27NrQ2HugI4DXv/f7GC7fms0U5Gs0t3R48/sYBfAEkjmALSkW5bXMXYaMn0VRpZtny7UF7v7ozPUK0vUJ/9cVbsjBA91FzpPbZVzMk7txjbJ9BiD1oqDF0P9b9096Ask5RoSanaUB3ZdQ7G/bGI2gCX0eTb1+gI2b92fWTil/TJd3NxLvEGm8spzVadtnD3eI5LwTR1jXeWA1o79rZLIKwG4WAMtLLvgFLhaW+SraYYn8UZ0r2b5Zr7IplCyIM/2z2+eapWidQz0D69g3yxdLOxYDFrsGyWR69vIK5vbHA3+Iog== 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=nrSqr57luulPh6wG91+g+Vft/27AmtHC/vIs3/cRylA=; b=BdIWVY/L7Gj1DfLWxe5luuUjZv9hTwyOkA/VjUD+DrquSN/OtdrXTdhsu5LBvbRQfzCAYUfPkcPiWROj/Ju/40G1O2kjZ5hK2rvZqkPSGB9Lfw3f4Ku0zdrQcYaJsBNQvQKK5NHP8oDK7Hn9b8J6yZ6i8wBN7OHtiDTeGedpe3hVVcyJmatYiRLx0Ef4F0oZRJuEv9YUIZjFLm/TxHg8SD8086+RvwnmZY9eFe946NimYq/BHXU8G/k9qarRiUTYz9m9N9uMs+chGWr1kMvAm+gipXD2APDZqsvvvjYW3nGRwiSBB9moKBwpinJHxOCoyegFFrNrEA+54MXjLwDiSw== 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=nrSqr57luulPh6wG91+g+Vft/27AmtHC/vIs3/cRylA=; b=cAiFdvpWKSRdW4w4EtAymInXpriM+MgZw3Z7ZnjBBXHrAF9NGoUeTt5gEMlDgz3e85kahrLY/VSQrUfT/uDXHXoSGf9BFF7Qto+3R9TGTVCYX7uyzyj6mOw/MYiEoN9mDriTLKex/azj7SPVCSZkCxcKeXPmPtxugYH1tOZXXXGvsTlWDYHZ7D6LXnCLxGg9tvzWqAfQUkG3nEJ0iDO3uamebJ6ixsl9RsxGaBe3Tj3yGM3Wq11YIJu1PmT0NwlBh+PMY5ec1Va3Vk58GyaHD+raee0DMLun2ui7zJmP3buGmvJPiZNwG0kC/trBBAo522V4PhDfoqh1b/fLPfr8JQ== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:46 +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.0382.014; Tue, 8 Sep 2026 02:56:45 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:20 -0400 Subject: [PATCH v3 13/14] treewide: adjust comments on PagePrivate and PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-13-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQ1P288CA0016.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:9e::21) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 1050ba67-4793-448c-cfaa-08df0d54d1cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: IoLTX8IdzLuQ+qwI7J3xzQ3FIh536GTL0RI4DvxcQ8JoH90kpyNRSUDmgowv4Q8WizXNjOmVTbSAy4kPZgc+lLnygMW54vYgNb9VHwRA8c/p4s20Hj/fzDVJ5i6ZkaUKhhhamXMNHp8lY6VP/e2X0BhilhxMr634ky/4syC6qdSYD1QZ2geE3wrMqWaJSa/r//ogcfLPrCNO5JHhxOQz2pwWpBQbz9RNQAWYhcWkrDibIulzv7FhIeC+zDxM7JomXYwLO74rAU5XxJNjuIFn0kkeZMTMeb88C5ef5QeGdlk7D3njaaokK/4xBYvc3Dm7kaaZRdNa+9qskZ86SYoG/san8hgCRI60KC/XmwWXDprJwHFdoJ6UOE+NsPAVVnn0BvHxSnWSJ3RbYi3QzS38QwR8aOsEs/RdaHA9tRRB51fMOdRr1UorE9kssOVCCEUN4hAlQUT1h6TzJBk/9AFbNYKdWwtIrCwFZIC7airXXmeMb1HjgrMF/8ne1P2kMbEn75cVlvv8DmZnKjHLdoO/LRtado462Uambv8ul9JtszuHhNkWPX7f6e8dOxz9HADzbJVp/3GL6z2YZmNppIG3ZlQ6wPiVDFopI1Vhwiv/kkXp9xNWuwbvxFqEUOOwUr+B+33Bl3rG8PD9tFCh5lQnrtRYhz8wrGQFh/ML/bM4KEDfr51oOkbWXUhRZrlcaUScE5mU79zyHj0Mxlt1fD+rzA== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aWFuaGpCZ29EQUVWS2xKYzNlenVUWHd1N0hBRjZXRUw5R2dKcWV6cEdXSGJG?= =?utf-8?B?bUVYZ3N5MTAxNFhkYTNQa2NrVXVTeSs3aDBNam9qU1ZkcVJLM2ZvMUhkVzEy?= =?utf-8?B?cUpSd2diekFrSkxEVlJNVGphZ3NaWHkyMDhKQWE3QTZrcVpZYnAvREUxeUFX?= =?utf-8?B?cTBic2JtN0JaR29IQm9lemx0M1RLMitoY1E1SnpMSGl2b293aTA3RjRVQ1VF?= =?utf-8?B?Q1lWaUhpRjhIVzMwb2lseEZndGprQS9FdW5ROEltUHpqaFBHcW02Tk5rZGs1?= =?utf-8?B?Ti9DKytnd2JQUXBkNVJCOGUvSUN1Sjk0RUlqUFp6V3EzQzc1eXl6SkxRd0JP?= =?utf-8?B?eUMxZllRWVJSY2RVWlkwZ29lUTAvR1R4VlE3NnFtTGxqR0FMMGhQTHZxbWhv?= =?utf-8?B?bHI2WEEzR3lyMzQ2eVE0MHBOeGNOMzk2V0hDU0wyVnRDam16TTJKSGg0K0FU?= =?utf-8?B?WjVPNHRjTDlRQmNBZHpadHFkaHNLUmpwditPRTUxNjZxQUdMOVNSK2xyQjNW?= =?utf-8?B?V2hISDl6d2hmOXVEUkl2d3BwM0hnRS9JMUUxb3VHa01xd0Rka1JIMC9VNFVQ?= =?utf-8?B?YWw3cU5DL2xsQ2h4YWtWV0lmUEczRVVVZmxtVVhWTUJUZXBiMjVUeHQyUXlz?= =?utf-8?B?UTdnQ05wenVKQWtHUlJMcnBtb1R6N0V5N3RvM1g0cWE1YmllT1Z0S1ZocDMw?= =?utf-8?B?Y2IvcHBrYmw4aXpBSE5tWGpwVVhTdWtkdmR2RVpNNFVVWDNXTHVITElFTVJv?= =?utf-8?B?NXRORlNHZkU4SEl4L2xQL3p3K28xUERORzNSbzUxTkdxSlBHKytYRlN6bk5C?= =?utf-8?B?d2lvTWVHWnBGMlVwOFk3UFZaMnRkclVSNk1hZzhyQlBuVlJCZkx5MElFWjlO?= =?utf-8?B?aitqTG9WNnhINjdZMDdxNkxWb21TMUhIYWdXc240cGNLSnI2L1FyVUt6czZE?= =?utf-8?B?OHltbjdyNWxzc2M0RWtDZTdGT2dEQ1FSV0lUY1dKR0JSbVhBTkdJVVBsWGFs?= =?utf-8?B?dGI2cXV6YUlKQ1RaSUxHSkE1c0JhZG55WGtvQlMyNm4yQXplMEIyRDlPVHM4?= =?utf-8?B?OC9JdDNiNmtOb3hmTWJCeEI4Q1gxUzFZdTZJdEd4WDMyZWhWMkp1QzdCalph?= =?utf-8?B?RGkzRFJGTGJwaVVKZmNoN1BWQ1pFczFOTDA4Rm1vK0N6TEZScXlPc3BuYzRo?= =?utf-8?B?NkowQk9aQTdpU2xzZjVCaEIzNG13K0hsZktiU1ZIOUhIeVpyeEV5Z2g3LzEv?= =?utf-8?B?MjZxdzlMdEJvWENnelFhTVlLWkJ6Uyt1SDlkT3FsQTlBYitCR2lwYWg5T0Fp?= =?utf-8?B?ZmlUa09SRGlZaFBYaUprdTc3bUpwUHJZUkp5OGJGNWw5TVBCUG1Nb1JscVEv?= =?utf-8?B?S1pHNXBHWExvdC80aVR2WEVPOVE5SkRHckdOS2g0R0RtbnFDZ2FpZk1YWDc4?= =?utf-8?B?MFpWbmxZbG1kdGFCZEJPQUl4aElDWVBLaXBTWEF6RUVxdk5xUmVwTHgwQjg4?= =?utf-8?B?NHh0VGtrblJKanZJd05oaktsR2tEYkljU1Y4S0tsUVBkaFNISWs3dUN1cHhJ?= =?utf-8?B?d1VrV0hWSFZTbmhuUWlWMUxnWS9jZHA0Um8wMUU3VCt3c2xIV2poVHJqUkxF?= =?utf-8?B?YnRzS2wzU205c2lEbmhtemRBZko5Tm0rL3FHZDROWTdWUFJsVE0xeDYwSHpp?= =?utf-8?B?Z0Z2OFNtcXd4d216LzhvZFZVbXNhYXVySXlwMEVZUWNSOFYrbzNFcWpIMjlq?= =?utf-8?B?b29aTmtqY1oySUNvdG1tcWZEQk51V3V1ZXFIQXdVY0NCWHFjcW0zZ3NnZXJ3?= =?utf-8?B?bmRaUjByUnZuZ3A0VEFZWXBlNVl5b29pWDhGcW0vL3NjZzB1THhJcllQYlI1?= =?utf-8?B?VVBwcEUxb1FXT0l4YWJVSStJbFh0N1Rjc0MyanJHM3hBSklJTUp2K3YrU203?= =?utf-8?B?dmpDaTY0Ri9PalNlRFlpUmN1SUlSUVoxNWQ1bHpKbnVza2ZQODUvYk9OaURy?= =?utf-8?B?UWdFZkQrRFJscGZNRlU5dTJPSXdScFhhRlRaVXZxY0lvVDVNUGFNNzJJWTNj?= =?utf-8?B?aHA5MlFSemxtTVd3bTlObG9iYU4ybEZZeTgyMEhrVENqbkpZVjY2V2lOVWVt?= =?utf-8?B?U2xwZzlZOXQrM0cwSzg1ZDRnbHEvVG5OeHhiNlNMRzZUVGxaQ2U0R1BPNVVK?= =?utf-8?B?VldOeVBuZWpXK3ZLRjNHTVEvTjVCNVJZOS8zT0lmVTNubWtUR2Q2SkFEMW1Y?= =?utf-8?B?Yk9lQXl5RDlXdjZLOTdHb0VyWUk3SitRVGNuVXlhQUdxR2FkOWFaNk41VktC?= =?utf-8?Q?mZdMIQwqpU84cDxF/2?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1050ba67-4793-448c-cfaa-08df0d54d1cb X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:45.8933 (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: Lb98meLRXOz3e82QtRLkkTWjxqnJdTLreyzHIPenqt2r/HtATMFMnE1WGn8Wi86w X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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 Acked-by: David Hildenbrand (Arm) --- 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 c861525cda83f..0ceffe4f9ca02 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2048,20 +2048,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 5413bd10fff2c..9d6c945ba4104 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 Fri Sep 25 22:19:31 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011056.outbound.protection.outlook.com [52.101.57.56]) (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 72B4C2F7EE6; Tue, 8 Sep 2026 02:57:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836226; cv=fail; b=UMBQZ1gl9L7D9r3HYttIMQMKOKb2E79qMpkLFmK3hWpjV6KU4ttEvSAYyvqjyZcqS2ixrNNCN0aKQ0KjRcaIxhjYm8FBFq5opQX0fm+gyzT+81n5lNRsxDLqeebgGjOCAeaUbVmDUYlAb9ZfuNpdX2gdqhBs5x4G7jmhrAMcXd4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788836226; c=relaxed/simple; bh=ugj8c6wGbD+zmC9bQCAMyJjM6OzsM/cePchgP8RpFUM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=MHvVqDvrZzeZiNiw+LJa9CDQT/b+2Uf1DNLnpd+3kAbBqQN+ljnxEKCLnwV3NAYApdOiZOCP6w9IXxn5Vai5lteL4RCdFPIPNkz5alk0A19/u8JkSCEsdxaZ1OqAm4XsHuuo0cMAeyGJAH80AslMSH78LPsX7x7QKoVsD8C6Ehc= 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=AfoIAkaR; arc=fail smtp.client-ip=52.101.57.56 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="AfoIAkaR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Mg6AdhQtKzb4KkBJbbZXUIViVZuSYg7pG1vGBehAaeCmyroT1u9O/5icrrmV96N1H/sE8DnheC+jL4Y+xEV2ibiLnpXxvld9gQTBWKjlaF7LmCqLci9r82LRsFc6KB91+TXeqqWwLWMzV5j730nZsVjHjq8pg8NiTQL7ZE53XnRoYVluojckNZVBJ/AaOWmqznyO00rwAE/s3SezoeneAAWqSzdYSNJi9YgG86++3aNmsHdprMArUhUMweIQJgPO+SyYyCDUeh7SAL+E67F8YeGF2Bhvy+epLSbvKh8+Xy8IS6+6Cn5gkTmTrc2pjxfrbz2pD9GupCrFSOItc1owPg== 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=/a8D+bFtx0HUA3t19qonoIIEgpEm7wqE1QXKariwwko=; b=BX7We2Sak9x7BlEV0H3oFavKEOzjfLg4Y685w3lfOKBkTjD2rYVUtOXFBsQO82S7/k5lFy5/u6adAtMXHvznW+QU6zFMnsm2X4iPq+rRLlrVWtq4OCxhhZZd0xpNSzELlrZDKIRsmx3Jy7vvImDbjl3PAcecZcqpuNCr1DPEoY19ro1gRNnQNP/U50n+sqHY8zWivVqxo+Xy5/RZroY3NmZjRE8+7u8eah8Ldmli7WO7FJM6bXjEIxdQgZqi2EnwCkFm+RjeOuXMjGdPZjRfEQvi5qW9+1Q7P0olAEzmoYm82n6E0631pzCPKLSpq8q0/8t3Ai36IMKHcHFrAW+n6w== 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=/a8D+bFtx0HUA3t19qonoIIEgpEm7wqE1QXKariwwko=; b=AfoIAkaRQa5v/I3+Myjzqk+AQb1YEdXyYGWW7Ipw4L/I4mM3X92ZpR66doj/sp09HH0uiOQyUyUCjCQ6dG3xJAcBzXvjTA0aw5OJL5zdLyWHhPSvKbDV2m6m5n4aZIKbGbvfAysHsrXYz6ylIlKaPNo66O6unwPLhP3afkmO/HVHG0o3JPrhssuUn/fMRIuxCHTiOuXFIS6QH3vRAJ/BIoJTDrNtNUqJYnDiZT37NoDDszHJs0oqrALihu1PWX/RGHUVaxdqyC0oNny7t3kC5tk8PyrlloMIlQh82oeYbjoumtLAngL6Ql1xqB0Y02khqXEO79lr6s0bkWHhvnnwOw== 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 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.15; Tue, 8 Sep 2026 02:56:47 +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.0382.014; Tue, 8 Sep 2026 02:56:47 +0000 From: Zi Yan Date: Mon, 07 Sep 2026 22:56:21 -0400 Subject: [PATCH v3 14/14] mm/page-flags: remove PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260907-remove-pg_private-v3-14-6ae22f9d9272@nvidia.com> References: <20260907-remove-pg_private-v3-0-6ae22f9d9272@nvidia.com> In-Reply-To: <20260907-remove-pg_private-v3-0-6ae22f9d9272@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: YQBPR0101CA0084.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:4::17) 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_|DM6PR12MB4435:EE_ X-MS-Office365-Filtering-Correlation-Id: 26bc9ed2-10aa-408d-c825-08df0d54d2bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|23010399003|1800799024|921020|6133799003|5023799004|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: r8ig8Z0s8zks6rz7cAkiPPXjse5Ms9hqAixaivp2StYdcD0W+y8E60G5huITjb5VV9aCvV9WoTHo8CN49Vn5B48f/JbaDaKS7hMh7+twb8GBckh6SGo7NFb6PMwjA1JmEKBH4K9+Ykae2cjYCHWX7BUpBD9Nzy99o8VHYiHC1f0+t6O1ZsuM0zXYUdMGYlN6GRbpuYJ9XtD85ZqGh5jkNd64n596LRkHqYhbDtYmZsmkSWTfRNXwYzHe5YptC30FxPPGOeFDmLcDfHT1cp4xXFOdcz57biqWWya8MzBOvlWU3iK9q1g+/2w/4rWthHNJgBzo/xVCkO3mjKst74NHJ4Ql3TqSU2AkjUFTYZBPWzHwSaqGp0BYV4hqRZoXRfd2aybnbKYjik5/uNvvx8HqIJcSfUQkMqKsadBqkQ4uuOttDw+Dw6brmFp9merfXHEJnHk5Mxq8us4VcxA19/tpu4q7oC0bOcbogTAU3PjBcCgITrrb1NOS+dNQBaFHejgueWblFnLwdMw/2OhxgkJ+vZNplks4THqCfFERknzkQCXid3MX2YOZmlXxeNCXsJOG8/Jl3Q66AG7/aE0XES4tdF1OQw19a/vnuDt2g8JyThJXc2Iz+xQaOE4Cg2KtoA/Be9VMV4JV4IvcEozjrK/3aeDY8VIvvAQqlW49lSdy9HXeshm/2OEJbESKhaSci8WynWEfRHsE6KVA6JVmyKNHTg== 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)(376014)(7416014)(366016)(23010399003)(1800799024)(921020)(6133799003)(5023799004)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QUpFME95eldhdmxrVGhlOFRjOGkxQ1BpbmpLMGlSNW81YklpTUxOZ3FNSjJi?= =?utf-8?B?aWQ4TzVlOEI3Vis4bEgyMjFGanJaLzZzSERScEY4UDdLajViQXNUZzFoczVC?= =?utf-8?B?ZGlqOUxJemhQcGV6ckFjSkpEaGxJNVlhemNRNTFjRFdmMjVVckZMTXlTemFM?= =?utf-8?B?S3JrZDg2WnR5Sk1rVE9wRDdwY0d5WHpyOXVNZzRJQkVoRXd3NUZmS1dCbXZm?= =?utf-8?B?TTIvSkhURERiN1dtVjRrb0FVQ1J4NVREdDdnOHM5dWNBQmJJUzdZU3BhYnRz?= =?utf-8?B?a0p3UmJEbVhvZU9aUk1hQ1hwUVJIbjV5TlIxVmt2WTk3M2Flbm9VZ1BHTG9K?= =?utf-8?B?bkRkaUtiR2t4QkE5MzFvL1JuTGgvV3Z6RVAyOFY4ZGRseDVwRGtGUnFUY0Zo?= =?utf-8?B?VHovM2RhTWplSlZVN1F2MFEyc1dDalVCNkFTTmRMaGZaZnJvUlMrT2ZUQWc4?= =?utf-8?B?SFVMZXV5WFFDMEpEM0pMZHNHL0thVVh4bDU2TEEvTXNlSHBQRlJ5ekorZnl1?= =?utf-8?B?UFFJbi9ORGtacG95N01pQU9ETFFURkhaT3lOeVc1UXN5Z2E3eUtrMVhPTm92?= =?utf-8?B?V1FTZWNlMm5aYXhtQk5XMHY4T3pzMlJ5aFl4T1RjRTlHamRYeDZ3OEdSbFdE?= =?utf-8?B?TTM1YzVYR3ArRFpYNVNXNGVoTmtxRlpoVDMwaWxQWERyeUJvbkFJVWF5SGk5?= =?utf-8?B?Lys0dEw1N0lPYk5NQW5YbEVnT2lTcGV1MGtvSm9qbWwrckUvNk9XUHBFdGdm?= =?utf-8?B?bHZuQmJBSXQvQ0lKNW5TcjN0d3l3RWFyaFlLVDY0ZThJa1NzazZVd1haUWNr?= =?utf-8?B?SW55TDRhQ1NteExNbFRTZjRRVTFTenlMczJOeVlFWWlIdVp4SjNHV2RNeDU1?= =?utf-8?B?OEFKMVVWN0dCMkVPcjQ3a1E3eEhNWHZKV2hhMmVBV2pVL0dGZDNpUUJsallL?= =?utf-8?B?SFZ2aUNyK1NOS3lSOGFYaFBNTmc1S2RLdDBSK3lvUXZSa1c2OFZkS3BWS3Q0?= =?utf-8?B?eEdaUTdrTUtIelowMUtKdFpmaGt0T3FJT3BlbzR2VnJHV0RkeUdoQmY3MGFQ?= =?utf-8?B?RnRDZkk0cnc5UCtITHQ2SitXNmhVSUN3UXZjcFA2RDNvKzA1ekpmdWFRQ1ow?= =?utf-8?B?cTVWSE5tVGUvaU9GUTlScXJkSTNXUUtnR0R3WEJiR2Q1TjJMRDMzVDlMZHhN?= =?utf-8?B?YS9nV0FCVndpbHdIVG04RDREK1BiaUVwNDlXc2hMdTllUFpBaC9tTTlkbVUr?= =?utf-8?B?OEExUUhhTGJ3UDIxVHJZUTd0R0RhZEhBbmNrYWJTdm1KK1Z6akcwNW5ZTWhG?= =?utf-8?B?R0hZSnFKdEFsOS9VNVhDNVkyc3MvSWs4TmdRRmljYjgydzAyallYRjdmVUdQ?= =?utf-8?B?VndsbW4xelVXcDhpZTBnc2plMytRQStRUk5abHFYWDExR2grOVIwUGtDU0Iz?= =?utf-8?B?Sk45cWpVaFR4b1M1dEZ1WWRvV0ZjY0dvZXlPVmJUNkZUVjExWk5vMEhVZmNm?= =?utf-8?B?dmhsazZoWmorcFdhS1VDa0NOYVZyVXdyY2hPR2dObDVZT1lEMUZVdHpveHRZ?= =?utf-8?B?bWxORWl0T0VLRTZGM1M0YUlGUEdyS213YW13ZnlSTXV3VDB6d0FsTU1pUVkr?= =?utf-8?B?WGJsMVorZndxaGVHUXNZeVFEbm9ZVVVxTGJDMG9pcW9KRHhGanlkR3h1aWdt?= =?utf-8?B?U3owcy9jNzlmekRDV1dWWFBZM09uM2dBUHE3bmZBWmVweklQaVorelFSbnZK?= =?utf-8?B?dmp1c3EwREE1SjhraEs4SUNhZmdHNHpGbVp3bmdQMmhIN0tTSVB3OXpjclRu?= =?utf-8?B?d0xmdjVzZ1VZUjEyUXcwRkJ3UzZBTlZRR1g0SVBtS3hRS2NMUDU3d2JnbTdh?= =?utf-8?B?ZVhnQjB5NzJ0M0p5UHBVMW4rN1hPbDJEb1lGUW44Qm1Pb2dzU1hrNDlsS3Ay?= =?utf-8?B?RVpEUzdiSkhlM3I2ZXZQU09JV2xFa1JONlZZdW9qRXBSK0hxYmtURC8vS01W?= =?utf-8?B?ZmJJVHJuNEF5Z0RjbUU2RmJtNHAxLy9DQmRBTGhuNk94TzVVRExwbHB3d2to?= =?utf-8?B?MUVVcEdRazFDd1BIMWNTL0xabmZWaUFLVkVNL3JXQkMzUUluSDNma1llck04?= =?utf-8?B?L3lRaUZJWGRkV3RPdW5JbWx3U0R5VTJzQk1IZEpRVE55UXM2bzRBb3RCQ05H?= =?utf-8?B?MWVqS2ZDN3dCUlQ3eEZTSFJiSENnOWRHY1UzcFJzUFJTdHdJL3Z2M1hHZlJH?= =?utf-8?B?K1VPRmEraWUvRXMza2h6Q3djVG5XaVpvUUV2TTV0MUtkR1pFS2p1bGV1SHMz?= =?utf-8?Q?5r0pXtOeReH6qVTa+B?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26bc9ed2-10aa-408d-c825-08df0d54d2bf X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 02:56:47.5186 (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: EHXnXbPsI3rSGoTfTxuNgXB7QGWuWPz6iEbP3NFCQ8TeNobD8Rpcy2C5VU5NPl69 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435 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. __DEF_PAGEFLAG_NAME() is added to show __PG_folio. 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 | 3 ++- kernel/vmcore_info.c | 1 - 5 files changed, 8 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 ce7fccd90367b..7b7783c0a5216 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 ef9aa388b84f7..38a2d30230443 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -130,6 +130,7 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); #endif =20 #define DEF_PAGEFLAG_NAME(_name) { 1UL << PG_##_name, __stringify(_name) } +#define __DEF_PAGEFLAG_NAME(_name) { 1UL << __PG_##_name, __stringify(_na= me) } =20 #define __def_pageflag_names \ DEF_PAGEFLAG_NAME(locked), \ @@ -144,7 +145,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), \ + __DEF_PAGEFLAG_NAME(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