From nobody Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 3CA24BA45 for ; Mon, 21 Sep 2026 02:28:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957708; cv=fail; b=rCO8dyACr7ZhM/Z7TlAapIhQ83fv2vEHK7H7jGUtN9basPJRb0bXS87f8VGFwTVDVlFcwLLMXvTQwVhSjPS5yEbPDObbg9nGWjzZ4KW+1GKUC8RYycEtJzi676K6ZJRx5cOZv5qnYdjIMDnoviq/xsl5onraeyhjQ3IjDRhLNYg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957708; c=relaxed/simple; bh=osTjKQ2gAP5I3gZyLW8ReHffHqpU1QaQloH2raq6hYM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dxN+gfEowLa2ep2kGK/HjJsKhw0OVpDAApr1g1p+pOptSi9Cy62ra8xcRZWevS8hJlamWEPZk7+8ieYBPnbvh5VmQJbXyxfdcWRUnsUUNkUV0EQHgT+Mxf6ux/5GMHKbuNvLjUlFYlBsM3G9Yk92SbJjGSTETHOsuT5JLgGBl1w= 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=CR7Or2zB; arc=fail smtp.client-ip=40.93.194.15 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="CR7Or2zB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ooao1XNUX/X7BQCL17PHG2+OTFEIAjsPzf8VTw/cmbe3wAeWmlQ/tDsLW1MKK5zYfeAIvuNOrcKcdixMyrKKfNaJv7C1OGs+f3QuvCsL+DaExzrHisL0f7zxz8WnGDGWpGZNTy2KQfj64lz3FLOLrELLgdyl30zgwxviPI+UkFULmfglihOMc5PMMTzywoJq1pSyXd93DEqHtr87tnaLSiFY7VJHgdylIb/7EjAxzdJc4zNEMxw9pvNmsdtJ4jbKkPrM4/SRZg5tvMqFwS3YEdfKCpaVBmsnTsJHzUpV93kp3vBFd53QGrbmz+FHYHrnizh6jj80TgG3tGnvA+GsLQ== 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=2exs/HrKls73cpHbMG/JtXwC2lJhkBDc5l1lfu+a19A=; b=xa7RgjkgAxgW/KZPea5Y+uyHnu2x94SnpWPtmxtzeo6vg9k7J0jJJ8JIT2DHKlWntgqlB1DshMfDlnlJLMDPOeK3GbRqdaihB4UYBIUi1ODuuUIaGhXKxqnS1jF/UiisuKirurPP30TNndoh8ULWLRqvAJ/NYGIz+caGYW8LOGQ7TO94oBWPx1wU+UuG2EQ2XERaeRyRUhmP8aIGTha0aADqwWIJtfDVEgUyQcURRF6lAbF60wktlxGy+LeY3AZZFV02ECbH5CSvLXnjI2/swA/zLLrTroFC9W/ER/7p/NLuicSI9H3tuzeYoq2v+OSgCBwvZWf9nIGn6sLZJoax3Q== 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=2exs/HrKls73cpHbMG/JtXwC2lJhkBDc5l1lfu+a19A=; b=CR7Or2zBviiJFyz67NaDg0JkL5AL9AZtEob9R5DSpscJKymMbJ7LQ4QP+PCjk4eL729UGWg+Csiu694c2lzRIdyD4SjlV3nIcXmERvPPB/Tlny2IrQw5KH0G4lUh6mkm9FStuYA9aOy+wbOwHBpq9eK4t3Z3HjnROqwGR0yYfAUsgdQYFXqkw1G/YDhUjW+PWmTvsWT0YZmYijpnfarHrftrcZ15AySEsqQ3F/eh+HjLE5A7tLLLzBJD8Mlz6RF2cewMmHkZEPXYEDzAvDFhu0LVfwANem4yCZJ4KXI3X/Rd7jKOYSqsHJR4t0jbPqEjrRVHdSl2FNDyskAOBFmgkw== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:21 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:21 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:27:57 -0400 Subject: [PATCH v5 01/17] mm/zsmalloc: replace PG_private with pointer comparison Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-1-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: BL1PR13CA0126.namprd13.prod.outlook.com (2603:10b6:208:2bb::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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 51394719-9726-4384-7bc5-08df17880101 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 8o6ozca3sc14Wyc5c4TKwCRVyrPqLuGAi4Vb6M9SDYCuQH+3ZKZ4iFe/uKZW8z0XcdzQzWO6l7OL9N+BFaN2NWnCStp97Gf9B55ojuX6/LUft/26pqGWPsLliRAWGaJe4/n/6r03kjymmP9h6JNjWiiGFpibc+cBbXDLMsno62/2DK/Qc5X0y67oj/Fsy6PP5DtghBJRwgj2/s5BTJwRNnljztIQSjGDq9+UCu1BRt2/0YFhMEKntWfylI6xERN7CnbFo/pISaF2mZra3jJrinXDkoKuS1ddcWVK1MwAobwkDva5FHeHEhffj7SVCCtgwGnyDEqpUqclUtl1zKsa/pxvexbuxJtHSI0SIVItnWnusegI+g3Rm7fmm7tCXJTSnVxrLlJwQFt5H95P3DtLbj7I0BuAXR4CxYJwM5DL3ToOQljgoRH8R3I7uPkDM5brQNuz0Y9/OKxrwIkF4M1SUXEU5t2g/AA+cfHS/A7N4B8WBUllHbEVzOaUrqMoznP0y1B4DeeUWOu+bqozWY4eu3p/qNvOrQZrBsXxpc78/DVDSL3R77ellbYVXcAQRPofFM7PTwZPcE4ycwQVQ3JzT1NyrLTHs0iuiUMNzTAX8V+F9XYae1C6awkEfIu8tUZDbmigGw9IucfmN69K77Ekmy3E1p5Gk2bzZ6mzHZW77kwtSb+SLrz9WFMDBSiQ0ddoqhI4LQ1eMloSicXRbulpQQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?cVRHMmo5a044eU5xVVZmVHRUZzh1bUg5ekxwRW5LeEpLRmdZNjJ4WFk1Q1Vj?= =?utf-8?B?VHI3N2Y0QWowcjBxakI4THhkWWJVSlFqWlU5ZnN4UUdsa1QrRnJvTW8rZTBl?= =?utf-8?B?OFB1Q1BFNG5MUWVtVjB4ZCt6Vm9CYXk4blBLa2VkK0FjdFhUOGx5MG5hb2Z2?= =?utf-8?B?eFpQSUwva1ZsMEtTNnZBNnh2K2o4MDlxRGpheUJUVlpWcG5zNkJrMmgrM3o3?= =?utf-8?B?Wm80Um5nWW5QNVo1UDdMUmNYSVdGNjZteS9PZUFpVm1WYjlRczRidnhEeDlo?= =?utf-8?B?eGt6Ni9WS2R2NU5RUzdST3ZOYnJlVWVDU1c4VmVWWi9wV1N5U0NXY1V4WUly?= =?utf-8?B?djRpeUt3UlZORWFrcFMyRGw2WEcvM2NWUVlTczlnMWNxdThMK1NQSTZQWHFZ?= =?utf-8?B?UW9rTkRieWQ2dXBlblZBbVV0TVZEQ2hwZ05INzRLWDRxUE8ydjBoSDVsbEVr?= =?utf-8?B?QkdJTDY4QUVnVjVtSFdML2h1WXVyYVJEQkttYkw3K2F6TzRBZ3RtblA5QlMv?= =?utf-8?B?RzluTkgxN3dxcU4yOENaQXBkTjBrQW5GaGZnaGtCcXNKQ2xHVFFiR2owTGxy?= =?utf-8?B?bGk1NzZxSlppenZySU5SaEY5eUhJVlQyUUhCZURWejdkKysvakZlVWVnL0VT?= =?utf-8?B?bWRrVW1UYjZBZjJxWTh6Um9kTUYzNVUwRkREcFA3OU9lM1lCS3cyUmtwL0xF?= =?utf-8?B?bGRNTGlDM0VOYlJmUmk2NklxN1hjMzFQRXJSSUdqK1JyR1J2NjQwWmRwaDR6?= =?utf-8?B?elFTMU5ac2U2UXNTN0l4eFAvZ2hKQTFLU2hreUdvMnNqaTRzOTlJaFQyaHRs?= =?utf-8?B?NGtDNEltakRnTDFYZEJHOUpOVHhhZFhVMGxYdStHbHV5NTYvckhzMW16aWlJ?= =?utf-8?B?bzluRndzNmdtMUZlN1R4Y3Y4QUNLOEh0WTFQd3hub1YzYmFlYkVxNEF1OTBD?= =?utf-8?B?VHdHVExWd0RZei9OYTN0c2k0NGcvak00WkJqamlGYmtBUld2cnRQa2tNVnZz?= =?utf-8?B?UllISWhDN1d5MHIwYUpMK1dLK2Q4WFhsckhCU0FiUTVvY2l2TnBHeTdtVkJJ?= =?utf-8?B?SzhVTVhVWlUyYmVicjBmalNBY0ZncjU5bllpT0dUeDVwbGtmU29ja09aNFNa?= =?utf-8?B?K1hoYmw1ZU1DbS9teG12VFg3MnVObmJDc1VqU2NWK056NzVmU2R0NW5OQ0R4?= =?utf-8?B?ajFjMmw3YmRKTXFrYlJNQzU4b2NSRHRyRTBmckFpckxQbWw2Z29jd2hkUXVh?= =?utf-8?B?QjZaTTJZOUNTMTVjY0YvUW0zME5QeFVTTmlWdlJWVFZFOXpxM0JUdkFYQU1u?= =?utf-8?B?OXV1SVh5dkl6UVpudXEveWwvZ3hVdUxTeVdxYjZ6VkNOdzBqT1hyQ0pQV3d1?= =?utf-8?B?b3pSVENiMUM0blBXWDY5ODJTT1NZNWg4dmVuVDdhZ0RROGlkOVZLekErVzIy?= =?utf-8?B?M2lZR052QkdseVVOWlpXaUxYSXRwZEdLY3dZeWE3VEJtZklVU1RNT3E5UlNp?= =?utf-8?B?ZWVrTnhXTVE0aTk0cHk1ckRSUmRNbGlKdngxYUE5d3pYMEVyanhESk54T2hp?= =?utf-8?B?eFFVUWYxM3BNbkgxdkw3ZTJNTFF3ZEFQbFQzc2J3aGlMdGNFMm1pd1lFM0Vr?= =?utf-8?B?TGEvM2VGSEdBQmdvNjh4ZlBQTFhhSUVrRWl6YjRKZWRoYjNjRkVSN1ZIUEpF?= =?utf-8?B?cUY1Yng5MXE1SEVMWCtIRzhjaWlDdDE4ZjB2NURrOU4vWlRRVTBBSGNFdC9E?= =?utf-8?B?VGhYQW1CV2ExRkpKNG1lZUtTSHdmU1RkWjR2dlJHUDl2eWxpSzhZdisrelJW?= =?utf-8?B?azVKcTIwUUR4WUkyamNleFZ4MG9lT1h4cXUyWjljNzN6dWg5WGE3blZYeVpY?= =?utf-8?B?em1Pai9JbktuNitONTd4L1VDem5iU1AwK2w1ZHQrQTVieXhOSjMwUC9jOTBQ?= =?utf-8?B?SXhmd2RYdjNVZTJISmRNZ2RpSytFTENQZ05RV0Q1dGlRWUdpNkIrbS9xUVcy?= =?utf-8?B?RlA2b2plSDZuVjkxNDcyVjZpbTh0L2pxdW01ZWtsN3l0NzNIdmhCMG9sZS95?= =?utf-8?B?VjBISlpGTy9BTG1ta1d5aGRqaHhONFlTTUltZk9leG9ZWXl3bmdCMUVFRERJ?= =?utf-8?B?OEdJdGZhVUdFb25oQjlNenV1Z2pPRUlXUnJjWERaZEdMc1hWcjZSTWI4UkEy?= =?utf-8?B?MXphT2J4Nzh2V1dic3BQUnZJb3NsOVVUTDFhZGU2SVFCUEl5N2ZJOVlvR2RE?= =?utf-8?B?bWFwNytpUWx5Y3Q2UmpaOFJNY3o4cnRBOHdIUE5HOFJWNHhJS2k4Z2NMSVNV?= =?utf-8?Q?kVBBHcTsjdnNCn/yJn?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51394719-9726-4384-7bc5-08df17880101 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:21.0817 (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: yHJ18d5xEOMyCONjhjnCYgHxnxce/Dt87QXpH6Gr/8KCUJ+RJhe0fIqk2VkB3eB2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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: LLM To: Minchan Kim To: Sergey Senozhatsky To: Andrew Morton Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Acked-by: Johannes Weiner Reviewed-by: Sergey Senozhatsky Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- 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 11be37c431718..7ef80e0da6267 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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 0AF6E3033DF; Mon, 21 Sep 2026 02:28:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957710; cv=fail; b=MxKfTHbIuOyWF/HlBKNIjgNZmjNRjKj1Wq8RyXOXjZmtO/1SRhQVJMdfeWMRKEfg5/zfckBgh09qz07kX+ZkUwS/iJEmP6ZEHNDPyGmEGjB7RwqQXkLsrvFnnxBqsNC/6lBUyZxStdB9QkhTb1vNytomm6PhrDFV1fBKfgZ0X9w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957710; c=relaxed/simple; bh=LA7ZnXqPsAszfR1Ql4sikyCXEX9QkFYqkT6HbKr3v84=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=FUgDj8r+6YHREnJXKbN9BgFZ1hfjZ/QD4wAyy4JhKbDfCv5cRzUcEzieJUM+cjXgP54Rl/Wtyf13pGRE4G5TFusMAC5qKTv1uO21RSp5McDQG8SwEFVNqLurx1hQmCmdTHbWtdqu0bsisCgDRlnpVd/P4K3hexFwC4fPB1RQFIQ= 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=GFrTE7qk; arc=fail smtp.client-ip=40.93.194.15 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="GFrTE7qk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ggs2EDfCGpVTrZsdLn6IJVsIs64rGg9TugBMz/gMx1ucU8ZC6QUYAhL0iJ7sRtlaUERIbyPEd6P0tl/739QONWJQbvisra+42J4mr5wq+TeVwL8zF8n6gld4u2DKEAO4+xuXt1oodci+fMhxjn8ef6KT9f9mrFeH3OU0/ujqTS3B4TqTrjj9sEM6IrxVCTuJnmX46cRWTTRymuBwl0KECR+QzN78BGLwIZfOeLec9KaVzTtDR2DTHHkEQZNGpylW0OjTCze60NTuZaOxK5/FsCHCrwKrtLvRTjn9ESi15JrjBQCLZuiDISiSPFWQwSd8hH3CzK06ooi8bYhWis0xhQ== 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=gpnw9Gpg4JeqTBKlcim2Ze+bj98VqYRU3sYXsAgbZDY=; b=vBIw5oGpHbF58ghKcykBM3/NH1T6rnXX8dEE6w9tvxdqrgEHCp6zI60Al000hszhS35BihqWxPlFzvhSttYp1jIT5aQg4v2RoMyf1OuUd2rR0EDlN7VMNmf9QTD2NXIA+5BzjYYx8ZomzMmrQXxi8qEB05CUvzSv9DCiDjbT5fUR70GpYNHxg++x5lkw0owhW+IPmHJGcAxbj/MRoM7tcBAvSDcECfvKf0LdFLaO5n5EHaQF7tTr/kPIrXEdyEIV8rt1O0B1SIhplDed4YjiK/+JcpP+0mQFXf3hDkZ38ABPWUZc9nNFibTV80hqD0hjFcX23jc8XbBfYncndEhP1g== 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=gpnw9Gpg4JeqTBKlcim2Ze+bj98VqYRU3sYXsAgbZDY=; b=GFrTE7qkTeg76thzaKrcjPgcwWdwX/besl7dVcHkKyqlcpbaK7kmo9ChyI1NqCs95sCJOkUUBehzWMa28sI//6jwPMlXTIwJvxur3GC+lvsZnSuFPwpJVDTCBAW+6jpf3KH6qQGXksKTVimbATuyLGUHK3Y/dAphhMH04Elwe8eR1kjYNSWmcc7OrcDmtvloDgm76l0eFXgq2D+ETukTZwJ2RgIha4zXTcE+SirTChMOC3mcmucnnVlBy2JwvvHnFvZFPp0p+zCeP5COJ+ZJSJvw05NLfUgq/FovESfbdXBsN9+0QZE3TTmDNoFQf4fn41V1dMHDpAcgI3Hm4grdOg== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:21 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:21 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:27:58 -0400 Subject: [PATCH v5 02/17] 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: <20260920-remove-pg_private-v5-2-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: MN0PR03CA0013.namprd03.prod.outlook.com (2603:10b6:208:52f::24) 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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ff938b0-761c-4f8a-10d8-08df17880173 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|3023799007|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: x7haXqulnn0NrzXWHeD894/aas2dxmbwspaDtEpZOSwnzj0omSZBKNLD2pLxhN0geqDumfs2A1Z+dRtqHerSene4txUwQbOrQXrNVklJrba740bAnolu5Yuo7RtdU4aiSouyawpGO4rZfcjwOGYeVK30jzLLODYhE7SAiQdmSItoxmPEQiHDjWuNPHd3UK7rgV1NpC8qkS86tHbW+qJvLmgVfFF2R2ogTVJ6nEntCI8KAs7eaeBOsS2dIoa8Thak2bfDY+wHBKBkSP976mOmj8CPP2c906GSpvr4YoBoddxQXKYgS3mKoBwJMTSVp2e4wwLzgpOVsuQW3RwE8ZjoCqbN56oy5BlZ69HcfXrDilvhAxrYKQZTw/aQ4t6BBMA2JzWcGLZKorG/oc+UX+Jg4AlaNKaWYbqtziymqiBoYDTnK0CIxo+0hsocDRcCx+oW6hBw7Rk39rhWVgVzOchu8dSZCFgpM9/ZBUw8dMLnlO1O0wMiOElQCcWnli+6ZhpAQIXCtz5E7YPPoFuS2Bfe4ixaZwnEy/Kkc8/MzCZdPx6WKVtcW0aheRZZf6cnH0lIe10ZCrWT8IaED7ka9Rdpi1LVsKbJZItLj4RCvmmq43ByJwRsjmT38K17oRocJRrrIyp5JU/MNFro3A5hjKLWIywSpR2iCJ/lqgN2dMgWYIwagJABlStSF9/TEdZQwmFjn0aMkpolFTdaQ1ZghNvDLw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(3023799007)(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?eWV5U0JySlp3THhaNHJBWDVNcnQ0WW84dFRWMlZVU1llZlJRU2tSbUdSK2RO?= =?utf-8?B?b2U2aFNSVlRNaG8rek5GQzBhV25hamREVzJxUlZOTVk0WGJoUUozbmg1eUNj?= =?utf-8?B?SVJTTnFHNDJINHNuWGNMUDRTOFAyZ2xCVFB3NU15OEVCSmIrVDBGam9kZlRK?= =?utf-8?B?aUFuZ0JlZHNRU1hTVUczYmRpL1crVGpXbnA4V01CWENqejB4R3ZBT05VN1hC?= =?utf-8?B?YUI5elNRODMrTGJmK0h4aEQrbmNhMmxCZm9Ma3NNZVJUR2JyOTdsbXJ3blZw?= =?utf-8?B?amFCTEd3cFBRa1IxcWw0ZGpwY2pOUjFoK0R3ZWxNdnNtSGJaa1ZxWTB3dFls?= =?utf-8?B?emFKWm9lMjZEeVdodHA0SnhIQ1YzMTFab1ArdXBUVlF4Wm5LMjBFL2cxYzMy?= =?utf-8?B?WEgySkFZV2ZDQ2x3TDVPVlR1TDZCbDhVekFnZVRsTWhSbFJnWGVFQkROcG4y?= =?utf-8?B?WUxtc2VBdDhtM1NVWEtGd1c1R1hVYkExTjdxem5LaCsvcUdwYVNYMG8yT3BC?= =?utf-8?B?VXJobXhzb09lT2NnQzRVODRVaFZLem9zNmJWRkpmL1BnRUdTMUpDa3ZreTRS?= =?utf-8?B?MlJYbmpuQlZHR3RscHo4VTVBRy80dVFRMDBmcVRxWWtIYU9tV1RnOWt1c0xU?= =?utf-8?B?czlkQzU3QnhvQm9IRHl0MGg3NStUMGc5bXJXSWcwV2VjTzB4ZTZCR3owOVpj?= =?utf-8?B?a1F4ZXppNjRVMEthM3B4VDRSYzhoL0tqNkJXOXBXYzJLbVgwUUVsaU8wcDE0?= =?utf-8?B?UTdYdTdiSkdZTFNQUTRPVFJ1WFhQN0xUQ3VnQXV2NXdrYS8ySlZzL2RNc1Rn?= =?utf-8?B?QnRPcTlQUUcwbEoveGtyTnIxbkZoV1JpUFNCN0dJQTdheE1hR1FvWjQwdkxj?= =?utf-8?B?ejM3bldJbG9QbzZBaG1wTWVZN0hTbFlhQXp5ZGliRTlueEFqS242SFZBcnh0?= =?utf-8?B?WTNsKzY2a3VlTjV6Z2JZSlpWL3VXb25NbmxKaUdwTS91bm10WG5NRHBPYWpL?= =?utf-8?B?Y0d2cEFsNjQrY01LOXV6QWhLanlhd09iQmYrUG9SZnNEUU5JMHh3NGVKQ2Fy?= =?utf-8?B?Tzk1QXZFaFpJbVR5VEdUd1E2KzlJTHBzQnNFdVRFWEljSVZ6VitIRTdENTRr?= =?utf-8?B?bEF0Q3lMTzVWRnpyUDRqU0ZjNlUzUVVrYkphclZLNjBqRzk2bW1WbFVwSXZx?= =?utf-8?B?RFJ2QkhxRDJlRGtuYTJ2WkxSQmlvcFNKY29TZ0dPMXBhTXh4U2xmbmJVRmJ0?= =?utf-8?B?MnZuaGE0WitQQ2hIZWdjajBhU1BoNC9icjZGcHM2bTI5WGNuUjRQa21pMGFz?= =?utf-8?B?V3VpTFV1K3U3bVdFL0F1S2hLN0hpZG13Um81RFYwUGt4Q0pDZFpQZGlFVjF5?= =?utf-8?B?U0VpNVA3SG1JcjFCUXBYM0Q5SFV5OUd2bWRpM1VsamxwZHQySFFiVFVZKzUy?= =?utf-8?B?bm1LMmVReXd4U3VoQjRaWnA1N3VMWW9SdTJPMnFua1JreTkzNjI5UU81NENV?= =?utf-8?B?T3MxOXBYeFdIMnZsOHBNQ0N3YXRNZnRmV01CNlByZkFOMUtaY1l1NmlzVmtC?= =?utf-8?B?SzAvVVI0emRCQ3hDUE1mL1l4RVZLRGFmYkhrKzdXVEl1OHlGRnhReEkxNDlV?= =?utf-8?B?c2lOOHlzWmVmWk1rdHdId1ArbUhsd1dzeW9MWElPT3hkdnM1QjBIZytxa0Ft?= =?utf-8?B?Ui9FdmUvRlZ5bmErYld5K3BZbHh5MThJeElKaktiZVg5d0VTbmlsMmVTK1lF?= =?utf-8?B?dUdIMlVsR1pxM1pLNGF6enhqSURsZkNkVW1NcUhrcGE3S0IyT1RvUXliRXFE?= =?utf-8?B?K2RTOERadldtdnF3bU1mOW13YXpxM2tROFFzcThYbXQ4Qjc3SDBuYkNQVnMv?= =?utf-8?B?KzM2NzdDSXY0NjJvTmVnc0dhMml6emtKcjVvandINHJ0N2hGQzVPRzRnYmVM?= =?utf-8?B?V0pyN0RFc3hRTzNDQVhVZ2szd2tsa2h2V0dqaXc3N1RwUkNMSCtKZ3M0dVZY?= =?utf-8?B?STl6R0xPR0kyb0gyWG5oVmpqNnRmS0NEU2RiOGtkOTZJTG5zeDRjNDlQWDZD?= =?utf-8?B?bTVmVXNXNXBtVjhqRkNEcXMyT2FjbGpvMDl0c3d5OFRBNjBNbjBvS0JTT0lz?= =?utf-8?B?a2QvWFMwdy95K3lLeGlmWmdzMXdtNTZXOCtNQ3VRdlV6UE82SVhJTGF3bU9z?= =?utf-8?B?bWNaQVJLUHNENjI1THVVeWpyRzRvdGVkTXdyZm52eHd5OHZ2ZTZ0Rlhsd1Rz?= =?utf-8?B?TXBkUVZJTHVWS21tb3lWaFVOcXBhaDBLT0h0UVM2bmE2T3BzbjNMV1N2T1RS?= =?utf-8?Q?WwPQIdP4wlBNC+Z0ZS?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ff938b0-761c-4f8a-10d8-08df17880173 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:21.7946 (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: RsMroYURnNclzEm3mUc0sBDZ5NZbOh0xs7kzioKBtIcFj7b+BStuV+h9uD1y4fRj X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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: LLM 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 Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- 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 Thu Sep 24 20:36:58 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=1789957755; cv=pass; d=zohomail.com; s=zohoarc; b=mxFt2+AjAELmU6w+M7gkm83VYfaRriyN6t1ofj82TaIWAj9XINQffOjn1dVIZq0jOWh5AwMZgzdVTt4BYVeyqpHyE1E5HemhnP5Cpf+a3HL0HnrNpXSA5Oad0zxjwnmEC6frC3IJAn9V6Uww9RFvCzkTFbJfjaUrlg3FUZOSIac= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789957755; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UpMC3DPaCgBSCOyBuao6sjqogivZ56QdijQSKHRf1os=; b=aseJM+N9Zb5roRpzs1jmCn9noza+r28ISvtkXBJNbFvQdegMgYMtiRbIdLmzEpcn452PqsBSQfnYoP2rqPp5dLqjKOPDmLR6VbUq+sZGJH1ADu0W4hzR3uiFkVJaMyy2mPJk0zgJ12hWoP4XuC9MJss+eg96GHNz1RNeRAqwHtQ= 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 1789957755178579.1246194728512; Sun, 20 Sep 2026 19:29:15 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1427028.1649672 (Exim 4.92) (envelope-from ) id 1x8Tlj-0007wH-Cb; Mon, 21 Sep 2026 02:28:35 +0000 Received: by outflank-mailman (output) from mailman id 1427028.1649672; Mon, 21 Sep 2026 02:28:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x8Tlj-0007w7-6r; Mon, 21 Sep 2026 02:28:35 +0000 Received: by outflank-mailman (input) for mailman id 1427028; Mon, 21 Sep 2026 02:28:33 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x8Tlg-0007vi-TH for xen-devel@lists.xenproject.org; Mon, 21 Sep 2026 02:28:33 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x8Tle-00H6CK-40 for xen-devel@lists.xenproject.org; Mon, 21 Sep 2026 04:28:30 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6ab09620-2eae-0a2a0a5409dd-0a2a4507b12a-12 for ; Mon, 21 Sep 2026 04:28:29 +0200 Received: from [52.101.57.35] (helo=BN8PR05CU002.outbound.protection.outlook.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6ab0964c-b4ea-0a2a45070019-346539233f7e-3 for ; Mon, 21 Sep 2026 04:28:29 +0200 Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:22 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:22 +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=mxfrvHFGH3yAq6mvYcNLbZ0IqZFUyPWdnkfA/522kXJR0gEeqNt/tqPpfHQS4mx000iSFdPIb44vlQh/XkiT6mdJWFd6rTwtX9PwNlsj4wk2B5QWYTRVGzpOyRXqpcfH3gb2Cgcrl2BS1GFabrbU+vgIIY64VjGT1I54kOiPijYo+nQnYbMHxEzx/ZzyPz901QrlDgsLbcwuuYGswFBMbkmV/575MCAVwLUdSHKsGvMqUSxT+NCjZR+EfMT2HuckozbttfAD5/D/boM627VlxldlHggzFbwA48BJl2SIdPHkcymTmWnPqVSaEVTHqVaVyEm1UxbjFNn/rB882YCAyw== 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=UpMC3DPaCgBSCOyBuao6sjqogivZ56QdijQSKHRf1os=; b=eu7FsLlPmwiAuNBwcBYej/R+MzZ6r9fWggo9aWrAMrVk+cltCA8IDWdtzksXWPqmlAdGTn4t68wdX362UEngkBR+82HRiMk/v9BQm+g2k/S+FNdyhJR4Za192W8fdA6iWeBnRqjusOwB3YFtc9cSOAwK8UDNODeExKpY5Z2+9FaoTZnXGmaD1k5rZFKYaLqRO23i4b/hEAOtVGNhJh3usmPQ0CUB0aZbB3JAcSJt1JHXshnfcIcSXAL0Xg05yc3BgsSSnEIAYChUYBlygLhj4wDLB9P4vJWva+Xu9N2ZQAYzAx2d52ioroE80okKmIJ51UxwLko6qwXt7kQPl+yCuA== 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=UpMC3DPaCgBSCOyBuao6sjqogivZ56QdijQSKHRf1os=; b=Z0N6nmJU0+AU3bupI5n4kRfItzpwj53epV4JQKpd5OfQF2AKZzNH5ZNE0yG+ShpAstFHZSbIzZkyiD59BcPwAObKyMGKo3YTKOrzU6aqy31V7Zxi8GBBVLX8K6YqNuMDYXzMYpgBt1JxEwAMDEWHjOtvTwj6CPJkAxXTyhtB6V4GQYdXmPwvZbOfH2k1O76jxxWqmuYWm31g390EQskXBiEaH55XTeC/TTnEG949NxFGG7e2qbGFl091RIDPSrcWz4T776y3sCU9E3/ZXmI6auFVqoBAl9TvATrB/wUc+vuOj+P9MR+nnbb1PuuF0+wPi2DzLHlIZLzxpPp1uYfbTg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; From: Zi Yan Date: Sun, 20 Sep 2026 22:27:59 -0400 Subject: [PATCH v5 03/17] 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: <20260920-remove-pg_private-v5-3-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: MN2PR07CA0006.namprd07.prod.outlook.com (2603:10b6:208:1a0::16) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: d3dac128-597d-4394-e183-08df178801eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 36kkqR4p5YHKuN1SERPlBIsWYUfE9RFpZ5J4etwUmJVpKUH3zsMuomA6AO3t6mKX7KbAV6Dv5xyYzTyKFgqolwMOMSU/mXU17776DcbsZ5EU++dcUjizE0KpjyORdod6p3BUPJ7Q25uheQ/XHNPxzSMg+BuI4ZgTk9TefDPFRneyBWMBfUWhwk4sygZIJhwLzHiZC1CV9s71N4KAvuiLUoz3sEg9OzTy4j36gegADSd6JhBGKCEvipvQAl/VyVymogchy7ZSaXQMth7f3ybi+L/Wv3zVuevdsdSjsLHo5C9kQugpsXystEKdMz/vaM9SQJQA485gN6CgHGBfKd/oW2r4rgMT49xN6TXtDM26TRgb1J0X+8TtfrU4R64RNCifVNREO1a4zNfv4mR7fZjPLOTvxmhwDQNxiKyg+drzMVb+H1ajTYavRyQLKJvvqjBuFpkQrSg2RrElUhIIPSIi3NdMOWxXqPt8lwFsQYn1cd6VDHeADOqGKiPdBx2//I+reHvDBOSKenoY3HMiYYY2XtFsIOzOTKoOZPMlm+FF2GVkaT6IOjKAg5bYpyzRM2z8dTy4inkt9CC/eanyRoZ5Zbw6yzHfQ/zZDsLrVgCtdNMwtvKj0pUXKOtw8fZSYscd8V19YOw1sZtilHyRMpwV0xaqzRDSoKNVeBeR3QuHJ/unHA0lLe+tarY0++miEnL7h3+sU903iB9L+yq24UhYgg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?a1lqYmhQVUl5ZTRqVW5FT0JmUDhjbXAyRXlUL2I2S3dBUXg0OHJjNUlmQy95?= =?utf-8?B?TUZzTmw0clBtbWVCVW40bTBnVkw0emFPWHgzUGN3WXc0b3p6ZWJoNDAyRFQy?= =?utf-8?B?V3EycTVFSXBKSWhmQ2piY1NaaHd0bERiNWJ1Y0NUSy80WnhWaWNLN3FXZ204?= =?utf-8?B?SENvcnE2T1NoL1AwUTBBRTVXekpPSnNXN2NSTDJRdWwxNjJFb0J1aXh2TFF3?= =?utf-8?B?OUlFeTYzdXIrb3BvbEN4ejJ0YnRhSThjMWlGaDVBamlGUTNqbVVHbmx1eEM3?= =?utf-8?B?bTQ0N3RkVFNpd3puT2ZCelVWN3o0S3hDSUQwRDUwWmtRcVYrbndFY1dKVGpG?= =?utf-8?B?cWtmUVhtOFhCVU1uRWVVbzh6dldMbjZ0cWlkdTFNdWNVTlAyRFltMTI2TXBD?= =?utf-8?B?RUp5Z0JhUHlzbVRnc3JVaXVUcU8xZmh1WmJ4VlFFMitlZGVCemdFb2FYRkRa?= =?utf-8?B?RGVWYWZ3aTh2c1N1b1k1YVJ5eFY0cUFFbmVvU2NKd1R5ZEZwWENmUThSaFFk?= =?utf-8?B?K1Z4bVJyOHNjR09ZN2tGRmhQcUd5Y0NMTnpzZkpKdkdFc3FjUzRYT2UweFhY?= =?utf-8?B?Tm9zMU9DZUxhRXlRYVl0UXlieVdla2tYSHhKbEdPd2xkRzJzMGhXVFpSRDFm?= =?utf-8?B?cUxPL1JDMmhMVUErSGkyWDVBQkphS3lWTzhJMUNlMWYwc1FLTEwraW9qSEF0?= =?utf-8?B?Nzl0NUx6U241VXhRcFY0YkZmWkVKcWMvTDhsVHZWRGxQOWFxS0U3K0FSVjgx?= =?utf-8?B?TzVNak5VRW1FUDVWUlRRV1d6bFZkVWJRMllqUzNVektocnNlcVhJM0dqMW95?= =?utf-8?B?SGlUQnpPRXZGbTRadTFEQWRidlkwMEpQQ25meWt5bVdtNzd4bnhzM1FKL1JF?= =?utf-8?B?SEIySjd0K3JWdE0wQXdQeGVVOExFTnd1cDVuQytmTEROa0ZNQ0s0VGpWYWZQ?= =?utf-8?B?Ry9TbzBlY0p1dlA2aXNOMDRYQUxvTGVGSm9Qc3NUZjJJUzJvRWVIQnB0TG8x?= =?utf-8?B?THdQNVNoZXkzQjRldGlJK3pKNHFoNllhRnhTcmt6WWNyMmpZR1ZBODd4WnBu?= =?utf-8?B?cklqRDBVZE4wZExFOENmZ1ZvNS85clI5QS9ETDM4RHBnd09HRklYTmVVenZa?= =?utf-8?B?WFBUMWprb3lobUkrZ0Z2c2g0Z2d2WGp0TWoxRE5WdjV3UE9rektyVFVWaDZG?= =?utf-8?B?cU9pUmsvZU5YaHUxQW5iUVZrdkg4dDN4ZWM1SzhpdWZwYUVUd1ByQXlEVHFF?= =?utf-8?B?cXViOXdvcFV6Rldnei9mVHdFaHE4QVRtZTdQS0VrZ0svV25nTVYyL2NKVFB5?= =?utf-8?B?NTNmOGkySFgybzZrcytLOUkrZFptUUxaY0dVQ0kycUh4cVpSeDJITXZJWGVM?= =?utf-8?B?dmJianlaNW92U3hqK2dKazZpRXNGOVMzaENXSkVoL3FiWWdqVWtHWnFGNis2?= =?utf-8?B?ZmZsQXRleXFuYWdqMTRCMElBN3BBd0wzVEtYeHBhYU9XKzVmU0VlVHVuVGVK?= =?utf-8?B?NUVDZUdlSE1iNmthaENqcVJTZXBPM0pKQ1pTdFR4akdSWDc3VTlpZTdidUhh?= =?utf-8?B?RVBzS0NGR29uY3pVNUQyM0ZFL1VybnQxdnR3Qlh6V3JqOTc1MGNIYytTK3hC?= =?utf-8?B?ZmxpZXlKSWhsbitLVW5yTHZ6Rkp4YTl3UmNXQmlMZGF2ajNOUGNOWENwQWZi?= =?utf-8?B?VmZiazBUV2RkSGQxQkF1RExRU3k5dS9HYnh2MUhRNUM1Q1pTaDdUcDZ5U09P?= =?utf-8?B?Ny9QanJzbUVEdjdINUFJbk85c25OS01CODAzakdickYyeGp5dmRMNWNZc2V2?= =?utf-8?B?RDhDcTBlNnBXaDhTdFllWE8xMUJqQnlNRHJDNVB4OERFSGdxVXQxcy9kY3hm?= =?utf-8?B?Qko4YmFWakJjcHNLRVprUzJGdnd3UDdUd0JlUjBGcm1nOHJtQWxyQ1FaWFB6?= =?utf-8?B?bGU2bDcxV0t6MHprdHJyczNnMzVFMGJZRnZRSnBjejNUOEVqb3Mvdnp5MTB4?= =?utf-8?B?aFN2TWRNMXgzRDl4eGkzNXBpSHJMSEdoWDZsbTcvTzMwTW1WYUNmRDFhNUdu?= =?utf-8?B?L3l6TU53c3FnS0hoNk85ZVczemtQakJlS25Ucy9oeGFLOGoybCtkUExrcEpI?= =?utf-8?B?V1h3aDNPcTdLMC9ldythSXZidGU3dW03a2xsQ0JuS1lza3EzbzRSZldBTHY1?= =?utf-8?B?SUpFeW8yU1o5dit6Wm9sMm1VRDhpcHRwU0poMlRkZjZ1UlA5cEFnMDUrcHN3?= =?utf-8?B?b1JvT3dsWWNmMDFzMWZ1VVJ1TWZydmoyYzRBVFdNZWNtcWxxMUw4Ykp1N1Ja?= =?utf-8?Q?oEYSwmZT8r+icpO+ej?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3dac128-597d-4394-e183-08df178801eb X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:22.6170 (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: RnizZyuJDDjv7oxstG8ppNpr2WexaCqnVhUrv82Iszs9S8SGxiz7xwhWCXJT2rEI X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 X-purgate-ID: tlsNG-ef75cf/1789957709-A60C5AE4-179AF199/0/0 X-purgate-type: clean X-purgate-size: 2085 X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1789957756193158500 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: LLM To: Juergen Gross To: Stefano Stabellini Cc: Oleksandr Tyshchenko Cc: xen-devel@lists.xenproject.org Cc: linux-kernel@vger.kernel.org Reviewed-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- drivers/xen/grant-table.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 7A48231F991; Mon, 21 Sep 2026 02:28:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957714; cv=fail; b=iClH9YHFnnBJK7nz8wCDjj5MnqAFDvDdv7Sh8UmaRpwS/Q/hedfi4zPH0oullFSYNCjrmi0pfUCFEJtATR4gZJVoz0N8nOMXeZsjtZ6zpD83wOFYnzSLiag0LCiPGPBwwp06dBoONYOJVMB3e9olawOjuvxdyasSL0gtXpWr3+o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957714; c=relaxed/simple; bh=mlGhRQsDFVR+ZtrbFnxBErjRr3tinO9GhaaHYovRs8c=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YdPmglcqjwr+YWN0bgfMZ8oTwsn1I8w/O+8BBKCz2KYo0SKRuQo1so18gyXGzoN+ye9l2PGNDrZEGV459AJDUQUMQ/nxDPJo63Ly7ihfl1Fa+jX/gqcFvD4rAKrApwbtw6zgsRSf+PsJfxSbH0W5zWA3T4WLwWKw0yuEYZx9zr0= 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=uKVASf74; arc=fail smtp.client-ip=40.93.194.15 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="uKVASf74" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q9ZNWrK81UBI27U9JxVfYGEX8o6eqUW5AwJt9Muef1Ii03LUZMi7sgMFl3HAqlapEb7+409I08HM/SnW+FPTjmF6Seyy2O29tiNQEVdkASLyMpwWyVNYJ6Nvww7HkhyfJuJTxMTsWgtQACOIRLF7uB+BE9ZdpZipy1xKnQaUymiVVL8L14a+CFAYMI4BIwo3lc79jkMizC55Hi6wPJ5mJA23ReH0npyUJazBcYMinq4G9r1GivAbAn/0J1iaxhwaxqGQUb1lPHbkaFFCHNFD1QxW7uMPYLv1943EnuvgwfraF1eZxs9WrO+pNMjYli2h5Dt5rYAZxLF2YxoutHp0bw== 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=b96eSbyk6ByBEFjiSyHVjmOBfJffseci+FgonfWLP2s=; b=seSyEqzhCgQCrv4SKMe7qLB76ZXGZUBnHspSeCPEPBtm1zgj95VFOXxMvKPMZSfENCDg+WkruhGiKY2jVrYIvR2MRll9cU3Fs2xLEAckts/k2xJSP5JlXMUf9hxkVS52w4NQttahBwHdxALXno3039evldIJ6avXsa/yeVAn60E3SOIP5zAZPYBCvVRl/WUxQaRNs57xj6+9tkVmp8PG5F4YCbpvXOmUwokUGxpHi9gJPKQxtvc7ZF64IYDrMhJYuZ+YuLDz8TfjCha83RAx66wdqdUVcaQx3gpIyWPCG9HtKpxhgrdP6njkG4aX/XSqzDW+cyxY/mQmKWitBKt5PA== 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=b96eSbyk6ByBEFjiSyHVjmOBfJffseci+FgonfWLP2s=; b=uKVASf745hdK1DNPBbT/FvDy1bWJ/BgpVIsT1EyPZdmfVUINyfZSFpe76vxjmKQCjjAEszLUHkoDBIzTD01/qxS/hsMfXLmtjUBGZcYPy6er8vGYNoC7PnTsQK2yzz3jax3mLpgsVDVOdSJ5628jKVpZ2lFW8Cc2BpC7N/J0znmSC2IWsl5S3QxgI30bgZmBNqGZuJ/ssb9f6QW7Cwsrrjcwgc21zKgFe54UTYdPDwhsjHHczfzXC3KwB/28j9si4EbaTalXtU6BLXKcd991JDsOF7h8Butwv48CnMKhNLoQ86vqmbTlJMRVAFZVFyjQcgdbn/D/QqT4iEDioF064w== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:23 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:23 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:00 -0400 Subject: [PATCH v5 04/17] fscrypt: stop setting PG_private on bounce page Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-4-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: BL1PR13CA0136.namprd13.prod.outlook.com (2603:10b6:208:2bb::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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 5048ef41-e55b-4897-98f7-08df1788029f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: +furh7sVT2GXsurDE5DCMXnBmxhOWh0ZegVKOcfVuGv6LKB3IVqP7BBUaeWvQunmbixt5nV0Xl/nGZGmKrDh5MoRBjK+TACgNEbLzmWfLdR4mysPaQsVZtK3AQJeDhzm7KcshU9wgIYYUHWbWqSUnm29+iQYcodc1opjlxLeuxVRyD18/f8k5Fu0j5lbGqKVVCYGN++8I5OcPzZJiPNWjRC4csPm1j9XcH2yVCwlKcTFKNwnHoaDRvg0CfheZgvpkow/rc0nYO3mAP7PnNkJNZjgMShXjxb4hGb+VTuA3SIgRbEducdSfQswyGWk8X2T7J4REOYNKba3z3GBruJWG8f1Ug1dpb9O93Ni1ECE8foOQyBvrzPu+wbOHD1hVUj0jkjuYBFeRNPEaHQ6VzDmYvCIGg3o9MVNXh5zlFB2bG8XoFXb4YGse5ftEBFZ5sVmpJiERMHSsaeywScLZBwIfKvhL82xdpZ8mKQLrVJH/RZG4nnIZA4Y641KKp1iaSiG06ASsbva/INgjjTdoxf/+huK6boCWLXiOLBj0PmxujILQs398dDKUxxClZaWqqvyERZ5Bu+otOEGn1d3xbEj9nhIoMiTr2PBkHCWAcipU+Ky2QtbaYDq9zIA3/4ARJCywQ5594xCNNZu8goOOq5SbzpJhUX7tVVpRt4XkyYFowVSu1tUKaBHfWvekcXJdB31A5PZovgFteaMmcmHV6UjMQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?ZEFYcVlkMHhEejZKOGt3YjJtK3JLb2VnckRreDhOa3pKTEMzY2Jjam10K0g4?= =?utf-8?B?ZUxpSE9ITGE3ZlY3RGk1TWVySkJoV0c5MzlBSVF0VmJFVU0xMXc0V3VyOHdr?= =?utf-8?B?bFdSeWxkMHNRR0ZUUXFNTDlScTNDYy94am11ajJMT2l2c1BUaWVzaHp1Sks4?= =?utf-8?B?WWJ4ZUZCQ0krZjdzOEZEVkJkVTZ4UHlCb1lXcU1nR1lRT0paK0dNQjZpcVF6?= =?utf-8?B?d0tFTzR6ZFdFd1RoeDZJSDUrajdhZitXSGhUTDFvQkpZdzI2MFhBWkdtZjJJ?= =?utf-8?B?L3RMZnF3SHB3WFJoM05DNmdIQXY2L1NOMnJvSytVWkFtK29oVkhlUnYwa0tL?= =?utf-8?B?QU9YTHlJZjB3N0p3akUzWGV0RjNCblZySnRMUjB1b2V6ejJrbURSbXZ3SUJ3?= =?utf-8?B?a3B2SnZJVEtRZDFwVEMrKzhEK1pLN0ZUMU51WmlQQjRiWk92cHRzaGdVNTZO?= =?utf-8?B?UWo2SmgzRDhwUVN6c29NallVcUZ1dC9GVDNuVnpiMXVYblZvSVdibk1KL2tH?= =?utf-8?B?YVVjRzNEdVdBc2JpajJYT0xPa2NYUEk1YWZiTEJZTSt3RFZvNXZZSHNXbnhx?= =?utf-8?B?OHlxdHVlc2FabHFSemNlWHVyOWxvSHJNbzg5UDdQZ3JVR1NpZDJTdG8wMGpE?= =?utf-8?B?ZERxeU5SbzhsbFlxdEhoZDVhcE5HY3QrK1dkMmxCOUJsZzY0algrbFNvN0hw?= =?utf-8?B?RXVJOHNsdVc1Slp3Zy9kR2hQNVJZd3FrcW1NWGg3TDkyb3lDMGxRaEhpS0g1?= =?utf-8?B?cDlseXpRemNaaUp0NUkxZ3Nza1F1Z2N1eWVZcVc3VFRBK1FMUGsvbUI1Yk4r?= =?utf-8?B?U3pCQ0ZIR01RQVZpL3NJR01iNFd1ZHo0MGFyU3VlZkJvNktwdmF4QmVHNkdo?= =?utf-8?B?L254OTY1RHhhN0NFaFJnZGk1Y25qR3U4azFYVVI2c01YNXJuRHpxdnV6OWN1?= =?utf-8?B?UE40ejQvaHd4enBzazMyNUE2c3ZKSnZiNmNYQmtEWGRVT01LYlV2bmo5UG1V?= =?utf-8?B?RmJoUDltamxTY2ZOSHNvaU9oNUhOaDB2ZGl5MG5DdnkySjg0cWVhbXdtSHNy?= =?utf-8?B?TnJtWTVmMTV4TEZkdldxY2E0TEFaU2tQMGdyQUdsaFZHcEdOZU96R1R3eGwy?= =?utf-8?B?bGJkYmU5U2lTNmVzeHBqeUcxNmFHclJjMDBrS2FSUlBxZkNvUDVxS1N0TGhm?= =?utf-8?B?ZWZyajBFMjRLazFqMFBFTk1nQkF6N21PUzJlVU5iSC9rNGc1cmNJcXR1Z1B2?= =?utf-8?B?cE53WUFFcjhCc2NFeC9ETTI5K1B3N2l6SnNBVjRCUktpdHNsbnYreFhEZW9n?= =?utf-8?B?NkZzVTcvUEVTSmthSmxhZE1WTnhVa0U2T0hKSGhuaFYvMFF5YXZJVjZDZUFY?= =?utf-8?B?UkxoUnNkdHF2RytRKzVlNmpQQXl1WGFJczFmVS9KbzYvK0x6VFc2ZlRHdDlQ?= =?utf-8?B?c2hFckdKQzByODBkQUxXOVZrOFArWjMwRlo4K3lHQzhIR2VINW5UTlRzVk5h?= =?utf-8?B?elp0TXpSWWtya2ZhcEMyaVVaUy9JcG1TR1ZoV3o5dkJGcHNVazNkYWZNV0s4?= =?utf-8?B?QzlTWmNwbGhNbEhvcGpCQ09yeDBIRXoySkNVTFlCUkxOV2d6VVlmdUQ5VUI4?= =?utf-8?B?aEFVQzFJTGE4UVE3dFl5aTBvMHJPc3RFVVZGd0JBS2l5Q3pkalN0d2pSbDdN?= =?utf-8?B?bGtDQWtrSHRHb3NMUEprRWxKRTJjYkorbS84OVcwaEVaelo4WHo4N2VqSUc5?= =?utf-8?B?UmpJcFhTc0hwdTBHZUxxbzMyNWNXaDFXcVZxSWJUVUZ0TFlrbi8vaFlMSUlo?= =?utf-8?B?VmF0UHJMZHh0UDhJYlIvaWlZVFlwMjVzQnFCVHpoQVJSOTFwQTAzaVNtRTBD?= =?utf-8?B?T3RyOUkrb3cwQzh1cXVteUJwOUVmdXZvbEJXbDBRZjJhZC9RT0ZncVNQUDAy?= =?utf-8?B?Z1k3b3hJaW5PL1Z3a2hvM3VQODdueFBGTWRBaEN6bHAzWXNHdU94WmFJU0F3?= =?utf-8?B?MlA5M0ovUlJZY0t6UHhlMHhkUFFXVU90YTBoT0dTU1QvZGZuUjZzVEdrZ0NZ?= =?utf-8?B?YWRGVEIvaHlpUDJkSC9yR1lvTHN1bjh1N0ord1lFcHVmdVJ2bHRXRDhlbWRz?= =?utf-8?B?L1YwUzZHTEdJS3QyczFFS1RPRzROcWR3amtrVFdWVlc5TjVqbkU2MVozTWh4?= =?utf-8?B?VS90WEUwTE5PQkF1UzhPcUdHb3pEQ2grRlVaT2Y4L2xjV0NYdDAzY0thWnQ1?= =?utf-8?B?OW00TTFadVQzOFRsZ2JNanh6OWwwamtWbFAwS05VbytVakNVZDF2dDNxTFlX?= =?utf-8?Q?BvHO/TX1/WDPuLDt6a?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5048ef41-e55b-4897-98f7-08df1788029f X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:23.8180 (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: PxfQCkDDjyr//nuSptKYoQhXpYeyunNpA2zqJoKn7Fh62sGC035lLsvKewNWCtsy X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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: LLM 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 Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- 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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 4CAEB318EEE for ; Mon, 21 Sep 2026 02:28:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957717; cv=fail; b=JXOBWq15n6vpA5J1J//VoTSobooBjksX7E+u7nTLqmi2mNOAytCPBwLuHXiM9rBh8VC9CUoFCAuc0+4cizdpGCCMS8umD6MJGpQD8sSbMfXaeiyqB0FaseqMVW5c9lusIYpwfi43EAiGX6xIgyChSQTAgTJgGOCwNBbu2z3y06g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957717; c=relaxed/simple; bh=uSEaIrTziSkLh5lFpWUjcvjwYLMPTgaowU0RnVrAcwg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ECXCdm0eVd+o7hSsMbkxJt6PPd1ErSbXPGwlqT07lRaOkPil8wU5QtpKlIM6fGWmIuOiS3ZXBZoX8x+bejbbwLCjrjt+UpFBN6KN4WORiySUgOelHwOymkmzLR/S/AngzaYCPhMrcp5skM0a5ZFzjr1V7fqyOqYivl+wHm5C2EI= 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=nMS3g1zQ; arc=fail smtp.client-ip=40.93.194.15 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="nMS3g1zQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fxM5anxAK2KhXA7EARoBUwSkzgPh8hyWPN5Eh18kAnBfAtkLQTdjtzAqVurTSnTw5LgtikD2uiy8NHQDjM8H9lzDnxnHDcTStcK9gzlHMAu0+tEp5qaqZNKIXiyWgii6Wmz+Mt92r5ZO0uitG+Olmz6LHNIHaQNULrJyBdVbrHUePrMxdLWhk/jET9TEIjohmZTzF4WAkvl1vRXZSVFYCpuBFEb9LrXcgJZlFDqnEhC206Dwl4B6Hdk6nIRh8XMcStaq3cHMWb1piJvV0ery2VgSXMWikzrCGBl37SWJ6CJJ+4yvRZW9rujWLjQlPFc2wTF5y2rEJCSLZvjaa+GzkA== 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=97eh6l6ca/PexFZAn/b073tcJjBasi3c+cVODHPaN4U=; b=qgMOYFuxm7mOC5mjo8A34RHapWLJlkMv/PWg9dApYNzEdIXAsR9E0wnU13RapKJUhGaja+kAyq2G0pEBaqDZYBLfbb72Zn68vgE16XkJH0s1CAJdT2Eybx8tiZ0Qn+tmfFjoDIYxHRxaZQof54ih3RceCINViWKAyewjM5fyYuG8OcRNh5rDrj2ysgRjgAmPORCqn0FzWbbEd58BiXgmlMrbGTfs8ZCKBxHDxz80jMgq04/5KnJIg+P5EJ5Sy5hpCdlknm0C0BqKuA3ISiuCmff9pIE83dpLn6XIz6alinM+oEJSyJw3Bz8/CfSEt/IPtD/92dLDNU+Hw3BkkO36rA== 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=97eh6l6ca/PexFZAn/b073tcJjBasi3c+cVODHPaN4U=; b=nMS3g1zQ6bJ3BzcLLgFxXfU1EnR7Zrfwc+g2jhCKou+PDNltufVDhtvR0ImuzLAhPwp8a7YHv5fv+KAEALah8Nkx4snS5QA5yCk/3QMTdbKemPq14GWpvIMNSowSnSfXgT42veb+WvDXdpUMY9kKUlxUyGBD0Y7/PJWv7aEpkEWt8hc8Crimry/qNWuMkJYM0C6qOf2WS0i9FqRHP3NF2RRnK1spJ6bZt36XHqjiihl4C0OhYMDZ/gAmGnf7aByeBJKfOxNP7Y56qYwy9ZnIAZa4fclX/HlBjDqEQ9BWPlBQRBmh/3fKgb/MQ4V505zP5ivpuc9KORaa+iVTQch6fA== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:25 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:25 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:01 -0400 Subject: [PATCH v5 05/17] mm/hugetlb: use direct assignment instead of folio_change_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-5-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: BLAP220CA0020.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:32c::25) 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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b42c40c-a04e-4220-6a05-08df178803bb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: Vxez3A1L6u3eP075yRyU4lHAIdv7D23z8uVwqUcbdw9Mlk3j/oviLss7UOrms0EKv7ZnT5iACjU2yOj2keGwKjAX6znG7IcAaNGiG3uxvloEfKiz80zr4JvL6BgDHeYvZRJbQi2YWrI8ddMGGKvZCyHxZfxDcqRvP4XIVAVSWw2n8X+3LG/P1GflRRNWIk4LCZmvO/SxWk09UaMp7St7RXGcNwRE+pAZP+5YDxQSVzf+eAyTvRfAcIjpnpODARG9LABQDyMxbTfr2PTzLZmQWslAcLoOHp6o1DmPI26lpvlBK1wlSPQOhz0cz3q+NEAFaJ4XeEeVwduQZ5DJhxO5EBwt8fQlJJCp5sMPps5S5LokfDTl2XqJyIrHHoXJjRyZt4wAZdg1LXOJEfgxZGsqh84zg0BKLQaLywOX6qIUJ9pBoJ2lSIvTwc1AqRQZbAwMHTPzPvxDHk/3kzyPxQnvxahB0K1OXjTHX4H+f7r0ZMFD8P5SAxczjalyhbDAnGibcxZhronu0FByiBECnoPkeTyYCUZSB3TC8e+/bD96YdwXWnV7PpzbD6JdanhsKgOBtw5TYrVk3woJHyqTvXB8iC1cldwHWAmZTNDFItYBEdlHq0rt/C1xavWFOUpeEDEGA3gSKu0JPrLLGCD+SZx6sPNcCJCGQFQCglPEY2XqSVWhtUM/z3WBSmRS6dL7Gk3q85f1vsv8IqMTBaUxgMkzuQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?dmFWbHV3bGNlV0JndXpURDFmY0ZzY1VBdmNWRmdmenk5cEU3T05uczJvcWtu?= =?utf-8?B?bEJkbS9oc0w4Ulh2WnRwbXZaS0RjVXRnUDlDUGtvaFhZUWczM2FaeXBiMkhN?= =?utf-8?B?SWQwSW9PMjh5Z08zeHhZeFR2d2lCdllXQTVndmFqNURsdzBrYmZ4QTNuZ3BL?= =?utf-8?B?ME5vKy9qakFSSGVReC83RlFuRVhJc3FFUmMrdEdGamVTbWJqMG9HUzN6NUk1?= =?utf-8?B?R09SR0Q0bXF0TkVnWlZ3dytkSGptVTc2L1ZFUUJDVVoxaGdodnN3OEt0VEVC?= =?utf-8?B?bTdjc015Sy9BWWpsL1doTU4yUERBbUJVWEVYR0RNOHBPSFFLNXFRMTZLaUZn?= =?utf-8?B?OFdwcUFhS01Pdnc5b3J0STNuWTlxOVk0VGlQY2VQaUNvU3hzK3FmZWs3R0Q2?= =?utf-8?B?L2ZoTi9uWWRYZU5nMkNNTDFmMU9JdlBOL1BPM3FScEo3dnMxZnNKRVI0Kzdh?= =?utf-8?B?dVJmd1BuTTNZbTZJSzJkRUJtaDhEQVN6QkNjS1N6MThvbnJpVTY4MDUzckFQ?= =?utf-8?B?bGpyKzNWakhFczNZSnYzQjNEcVJuc0VvcWNVdFJWZkJCTmRhMW9wYTZMcFg4?= =?utf-8?B?dkNrZ05Uay9YbnhINDRNaWtIclpiTmpOZVY3UVVvOHNYeE9XWThZT0VKTWor?= =?utf-8?B?ckZjYkZRY0E3M0RvREdSaThlVGprMHQ2TlZqWCtFcGtlVi94aTBVbTNoUDlV?= =?utf-8?B?ZzBlUkQwMlA4anhoSWRLYTZPcGY4aFhBa2t1QmsvS3h4T1pNc1Q2bWpzZTFR?= =?utf-8?B?dTJVZEYrT21vb2lpUy9VNERodjFudlVUS3FaNWxIcURBcGFXSVlJdExGMkRu?= =?utf-8?B?NXB4Uy9TZDlLS1YrcWxaZDBYclBMV3NHVTFzaXRrKzB6bHFrWnpXS2x3eWFE?= =?utf-8?B?RWpGRXRPL284bklCQ2pQWWNua3h1a2VDU1Zaa3FrK1MyQ3ZXSHNmamphUjY3?= =?utf-8?B?eE1ZdEpHb0tOc0sycjhJbFdpakVZc081TmFJa3pEVVRKL1I2UE5ySlZCZE9z?= =?utf-8?B?UFQ3RmFpRFdUdlo5ZEhFSzR5VDROWlRaVkUxaWxtZmpRbUFxMU9oZzY2N1lE?= =?utf-8?B?R1BIK0lGSTZGYnVwUGxzVWt2YzluSmdMWlU2ejJ1YXVVR0hTK1BlNkdYTUpy?= =?utf-8?B?RFlKaFU2VnNMM0ZJU2FadFlMYzZvTnBZOTh3eGs3K0g3K3VVcEFJVXE5MHJk?= =?utf-8?B?RDUveFduQzBUc1UvTTdMdTJ0UUFaVXE2alFaMVJDTkhrSGtRbU5rV21mSTdo?= =?utf-8?B?cWhvOENZZVRRb0pqY051SXhiZENPUWg3NXVsQ0Q0UXJSR3c3R2xiczhVSHJk?= =?utf-8?B?ZENoWENKZ29zTzlyUWxjaElyVktTelZpZGU5WTFFd3R4aUsrS1RuRXVaWDRD?= =?utf-8?B?UmlDQ0hoRENwRFZFZVl6M1k3Zk02c0RYTW10STR3RjZ3WStxTU5Gc1dBL3Vq?= =?utf-8?B?ZGVuTGIrSjBXUmZaNmp5UkNvNk9ITUVaQUtRTi9TVTdlVmUzWDdzUjJIcXJG?= =?utf-8?B?Q1RCdXRFMFlmd2xXRG5KdG4raytsR3dpSG5heXBUdENrazJLc3FUTzUzeXVD?= =?utf-8?B?WGs2ZnludEdrd1g2am1NdHplT3pCdjZYRE4wclNEbnFHWlRvekwvZ2R1cmRs?= =?utf-8?B?Tm5DV2VzOXpSb1I1NjZWR2RTVnYxNTNha3Bub29BZ0s4Tm9zbDhFRGsyZmNP?= =?utf-8?B?cS95VzEyMnNNT0NucmNpaUw0M1U1ZG9UN0JxdFVhSFllNzJQendBbVBLT0w3?= =?utf-8?B?cEFLYXh4dmdjS3h3bndlajk0c2xaWVV6NXFFSDJPb0JXQWMxbm9Uc2FxRVZL?= =?utf-8?B?emVTWlBHSzA0cm1PWmFQSjdPQ3ZFa2NFSEpvOUV2SDNvTU10MTR1ZGtlajIv?= =?utf-8?B?ZHBhRUx1ZTRPYkN6dTQyMDAwZnh1NjhMOUlSSnhmU0tNNWcvZmtmMlI4ajJ0?= =?utf-8?B?SDJxSHFTaUM4d1lid3ptRTdqMjhuRERNY0NzQnlYYlVWM0RUQnIwTXF3M29S?= =?utf-8?B?ajYrQUlOcEVOOVlqUzVQSmM2M2V1SzZzUWFUdEhkcCtYRnNoQXBuY1lVVzVZ?= =?utf-8?B?NXdrVGJZOHQ3K0EzVGtaWSs4RFhGaVBqQkVCaFhsY1ZZelBpUDNGbWZsV0NP?= =?utf-8?B?VHV4QnQwcXg5dUgxZFFzMzdkRHdYaFU4eTZUdjJyOHNtTGdiYWZaU3ZUZThu?= =?utf-8?B?RnIwaXhIeit1UDRvYXY5M1E0c213SnBFbTM4SHcrVnh4c2lKeXpsUTgyOVVB?= =?utf-8?B?TFc1ZVB6ZmFxcVpqa3VtOCtEUWtWd0d4cTl0OWN5M2l2eEtIejR5c1F0WEhL?= =?utf-8?Q?XlTvHV93WoTfPhaZRF?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b42c40c-a04e-4220-6a05-08df178803bb X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:25.7081 (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: Aoyc3uThrgPBHCmaZSWhS1Oa7lpHpL/qk50BqEa5v2wuvXyJAwswaHmj9FVHVNjm X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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: LLM 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) Reviewed-by: Muchun Song Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- mm/hugetlb.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 2003439ea13c6..7b27c3c5c3e58 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1446,11 +1446,8 @@ void add_hugetlb_folio(struct hstate *h, struct foli= o *folio, } =20 __folio_set_hugetlb(folio); - folio_change_private(folio, NULL); - /* - * We have to set hugetlb_vmemmap_optimized again as above - * folio_change_private(folio, NULL) cleared it. - */ + /* Clear all folio->private flags except hugetlb_vmemmap_optimized. */ + folio->private =3D NULL; folio_set_hugetlb_vmemmap_optimized(folio); =20 arch_clear_hugetlb_flags(folio); --=20 2.53.0 From nobody Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 1287231F991 for ; Mon, 21 Sep 2026 02:28:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957719; cv=fail; b=GJ42RyV8iZEuBsDjBF66pfcGge17KzIjKimHeFhfkWA4Q656ZkIJmDPYWG9Btj7n0lmzUJfdftPr/BMg7iGNzW3GlfN1qiAf9DT1X6wBJ/g+6OESK9F6/sksfrtzOXgP4Pfb6NaXSZmKCkW9NMTC6wnFHgzG7OhF8dJlayKPZ0g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957719; c=relaxed/simple; bh=+rT7/KtC3fAnUvvVUrlRiWkAk2T+Z9Vx+4Kk/n7oazI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rUndM1Uh+W6MDqH6CqWIUWgO/QEHsPsr4gAT4m7EaakZBTwyz0jYbxbJWrDbZ0SGL217kudbps8BDPrVqYIVe7ZxOZsJpbWQfOnmHwpvVUFEpM+v2ee3F6ye3CEVG7oApWy7p+1qnSWQUtyCgKIjIfUXc/IfzG4758LPMgRk7u0= 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=g+d7GYk8; arc=fail smtp.client-ip=40.93.194.15 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="g+d7GYk8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K2a/E8/aT78Hd831bXVCei9ORV14o9PHuxHxGYVzC/c/R1Nj/rh3YSjl2613AgC6FvgUUUvfrXoUiFmNlnQrlI6vnJcye+7XVFRV80iK9eY1nPy3V095wjP+oJzqsjuoKDgvYfDUdnjnhaXetmTnv4vrZoc1Kbq3Ow7joRP33XE7eYbJrMqUzUvecikhl5iZXIKJnhBobioaXjJnmiwSs3ztrwNcc1XJc/qPwmcn1c25VQ6OQOMh3bisu9PPXKq/F3dPP5JRUSQfOsMURPKfso9SYhROcBM0bAO87TiKBFZGg7ZImCHTtMZiBSxCihwvMYlhLvjHMVOtrAXXcr0PrA== 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=jFPdvSUP7nFS+Sg4e7iNiBmqdaTXK/HCklUfC4M3bUU=; b=FcePS0wvEp1bPZFHvymvjcXMCKxi3AJrT2DDKnlegQ3ZhkGpNLxOYCSwscrYNoo6BFW6/B8t7uj7JMFPukSUqsNEEol4f6wDdhLuucPEStHabk782knyO6A7y5aZt3+JA+MB81w2xs8D/N5wRLtNrU4pJwKlENPO1mRHvyg9p/4oJ/VkGF7v3nOjTpv3O9A3Uo5gmLoRgzicJFtSKWL6JYq6N5Yg4DK1n+JcvRTwDZloZw2+wcSjCoA/1KEBSbrTJVI2fpXC3KlEO6fV/mui7btm1RhbVSdqbRE2/awT5xZqi5+zxEY0l09EvJ0l6LvEVDlnfX7PqehhT4T6i/FkJA== 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=jFPdvSUP7nFS+Sg4e7iNiBmqdaTXK/HCklUfC4M3bUU=; b=g+d7GYk84BgXRKvp6uuzWjSdGSHOyh8/JZw5LfywNU3z9tgMlAGsgppyNSo+Rq3SsHUocKufu0H14FRk49Mg1SZr46ZPaepR01iELV/EbIGnE1CO95nXQkDC+q0YlHZtJ4s1Zh2Ci2nkQcD3SquCnn5vyHw1JKphzhidA3j4PpT8MeHfcR+oLlhQg7HXR+kser7msTO15obEX3nLb2g5GKVMMBd30uhT4J7lgDz/N4wtJyIwT38y41+nSj5OZeLNEJKkpmcOOb6rQFigoVpv6Z8OTsuyB6lmVtJXPZZx9kM6piBSLqCLZpsWN5PnQjenH0CRVUoimvOWzNMyevlCjg== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:27 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:27 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:02 -0400 Subject: [PATCH v5 06/17] f2fs: stop using PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-6-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQZPR01CA0143.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:87::29) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: cd715e63-6b5e-4cd3-761d-08df178804b2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: rJAWPKE4kF+t5waFgrgvxEyDpeaATlwwFdQCm2pcY68pQrSw9yJMJFPPMHTlYWoVH8i2GKG9lbCuTS/sSG6Vaw38Ppr22wBudOGwHyhWBxdz58ZVBf63tQNEeNzNzjSMXOmodLyv4Wq3xOq2JHNG4hbGJmzh9Om3U5eSYTGjM4293/iQgItDCBHbo0jcgkRhx/kEa7ZwmzM8N1QtXfamSCiO4+EVSka1DrH7J54r/v8wTgClLo//Hs2fbK8xKldSimmGMcTYDAEMzCmeOLE8fpvu80jbI0Z0HvfdusM3jw7WXn6D4CIfKdw6/uJBs6MxYjtyT0etrIlLyTxpU1m+JVXee6NCeyHDoqhetOYRcCPqhH1zNgNa52nuvs7Rr923XHTEjBb3disLKRWstvKRjvcaFSnFmeS4ZE44PSeBy182/pM+Yo6zsdYqZWjhh002ob4dpIf/4I1CenrPZega6TKrFR5yZpkDI/jX2XbafFaYD1Lq/4Vzxa4kEyjEI/UxYnBdKeAeG4TUB+ZKbXGSB1ZoA+vWk24ypLfCN7PTB6GhFWPNsaAe40k29Ahj8fcvR79nkvGjoUDVkQUIL9l+jd7HHsHtpC42NjgDSoFD2nOzaNzHiozar9patYGxmHPR1iuTBb+CdahjxrEifLwo79vjjx1wgbICAfXW2VXk90WVZnKSGSpHqDO902pTh8e//hgemlMF+uxDYTFhTMS48A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?Y0gzMTUyZDNlVEUrQXRyT1Qxby9hSzRsZlIvYXMzby9DS1RUVTNtSStXSUVx?= =?utf-8?B?UWszNHBlanRjNGZweFNRcHJ3QnN4TThpNHVDdUFOa3R6VzdsU3ZGZ2JWK0dH?= =?utf-8?B?Y2lJK1ZOdXQzRkRaRHhLTDUvQnFaNDd5MjhXbDRESjBWeWpEK0FXd3ZWdGRo?= =?utf-8?B?OUsrNXFNak9hV1k4Sk1CeUhCNW5oVFVBWEVaK1M0azhna2ZsQzFmUDhIblEx?= =?utf-8?B?bDZqYmFTRktCZ1piemd4b0pYRU5KeHIvZU5RWk5aRlhxQ3ZnYTVvcjM3R0dV?= =?utf-8?B?N2U1aE1qWFo5RlJNNzNHRFM2ZDJzZ2s0VkpvQkx5NkFDdzR0U1pPQW5teTBR?= =?utf-8?B?M1FNbE1DZXp4dGRpQmllZmtZRllwckFoMCsrRDJjSUFqM2FvMGJQeFFLSGJi?= =?utf-8?B?cU5pTTRzQU5sYk9TM0JKd041UEVoK0ZVcE5NQk95NGhwUmJjMkFGRkpSd2Fm?= =?utf-8?B?blBBTUlCRWVhb3VXanJaczdzWGx6MTV2SC9QZk5xSXNFLzIrd3A0ZzViY3kw?= =?utf-8?B?NEtiYkFUY1RRMnFDRFdxMHJrcWlNeFAwNVpBdzQ3VEdhZ3ppRjJJQTZMY3Ju?= =?utf-8?B?OGJhQVNuNVRSRWtWNUVSckJnRVpaLytGWWppMnVvTDNsWWNmektCWCtRc3hu?= =?utf-8?B?L21qNUZrdjhZQUpxMnBLZklPUVJnSnd6Z3VZY1dHVjBHWUZBa3RqTlFUNVBH?= =?utf-8?B?dHJxNDNlYkVtOW9oRnllUmtGbnJQbFVjL0pSZTVCcS9aUFBia0FMMTI3eTRD?= =?utf-8?B?ZXBSZnJubldsc0xTZHM3OHVYN1ZIOGFBSHhwWjhmUHRwbjRxNW5IMy9aOWJP?= =?utf-8?B?VFdYMVQ5S0t3bEJPcjZ2dFhacWVUUmpJdEdBRVlGNG11R3ZIWlg1VEZWalJK?= =?utf-8?B?VUxZN2ZnL0E5VGFPNjh6bjQyMm5CN2hLNE5RNFZRaDcrVEtIMWJmdld0dVRy?= =?utf-8?B?L0NDaGhtRXVKMHplbHl0d0hITWRNdWo1QzhtdUdiY2N4ZkxRaUxSNnZ5Zmdh?= =?utf-8?B?d3djS0t4RFdJTmxHK0gzTC9DWjF5cFkyVUhjdFFhM3JCU0VQdVNHNGVjRVpr?= =?utf-8?B?VGNKZ1M1SFlneFhRZWVybFNhSVVtc2k5SGw5VTRnYzRLQ1UvK0dtSHNxZGtW?= =?utf-8?B?cmFNSHdMN3dZeDQ5bzNSbUNRTU9XMkNCVTdOcU1xdEk1d1hYUTNySzU1NDk5?= =?utf-8?B?WXlkRkVSVFcxa1hPaUJvaGdJQnkwK0lvYW1seS9Mb2hmaVVtOTNYdDVvMjFt?= =?utf-8?B?aE5oYjg5dzNnTmp6emtBV2R6WC9ZRDhHaVVrbWRVRjZOeFN4bUlPR0xnbUVC?= =?utf-8?B?NWNJdUsxQTN1ek1peHZ4VFNxTm5SZGgwdWd3M2IxTVBjdnpuMzNnWkQwNXNo?= =?utf-8?B?YWh6UDVSMjZDOE9ra3BzUDFibTBONS9aT0FPblZWZXpQMHdzT2RuQ05CZTdk?= =?utf-8?B?U3FxcGswRUJNejhFR1IzWnVRZFIrMWI5TjZZdlN4VUdaOSs4SzZINHB4clFQ?= =?utf-8?B?MXREb0pEcHMvZnhsT3czMHhFbGYyMUkrV3E0SkVOM0hDYWNndExlZnJiemdy?= =?utf-8?B?ZEwwZ29GVHZjRHFrOWRGZHY3bjN3ZzcyMy9ZZk81Z0hWbGhRT2M0QzlJbUhZ?= =?utf-8?B?Zlh1WU5kTUZybzltZTROU3hobEQrZUEvTm1pT0d6c2lQUHl5UXZVMWh6bzFt?= =?utf-8?B?Zno4ZStRNnhtaksySWlpRksvNGlhdzJsS01jeXk1WDBkN2pMb01YTEVEZEQ3?= =?utf-8?B?NkorQm53N1FIdFl2ZTAveGRnNkpiTHdML0NoK1BrRWMrK204YjBpUDlFWEg3?= =?utf-8?B?ZkhHenk4TXRxNmhGL1UvUTdldGNuNUVLcU0wU3E5emVON0tCNFJEME1HZDE3?= =?utf-8?B?RDBCTmQ4enYzaE1rZTg5LzVLWDM0a3V4VFZJeFIwaExyakFGazJKcFNoTEFL?= =?utf-8?B?d3lmdzdWNWhJb3g5TGszM21rUDVuWHpTMFJtS0NEL09pRzY5dVJUWmIvbkw3?= =?utf-8?B?dlZHSWZOeVVhcDJPaHdCZUxUNUhCWE5xcE9LMkNDZDBuK2JnMGlFZFR5RU5B?= =?utf-8?B?QmQxbHBFZE9zeGdNcEVSY0NNT2VPR1pjOUhVZHp1dUNlMWx4VGhNNlJEMk9m?= =?utf-8?B?d2ZidzRaa3NiOGlwRkdJaFdrLysrWG10Zkl6TEdTUzVHbXBMQ05LcnA4Q0cr?= =?utf-8?B?U3dwOGFaU1BKMGozVlU1eWFvRmkyQ3RWQzJ3QzZnUnpBWW1lYzYyNERiRnMy?= =?utf-8?B?WjlnVk85VllmeFlOTHYrL3NtOGtNVXFRWGFKQUZySThUdzNzbDREbGJSbHNt?= =?utf-8?Q?DOGEd2TkU9hwn8Dk5Y?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd715e63-6b5e-4cd3-761d-08df178804b2 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:27.2918 (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: WD/9sMQINiceqU6AGxsN/CVwvD8RC/8liVN0eEb13GQM3G3CBh9MuAf7rEcrA89S X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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: LLM 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 Reviewed-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- 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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 958DC337699 for ; Mon, 21 Sep 2026 02:28:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957721; cv=fail; b=F49Lef9tBCIjWmH7NTmVt4VSp3MH9zMQlPUyPWKb1PZpnqfdJ7wgIF+2q7D+MO3tg8oyMtyMwGcetyb1CdOuiYp9PJtw79CGwsBndqryuLieYdu+vLBjo5/QqrAInA80mgQj7VzdK2vTmElU9Dct8QiU1JIB7ACJmBfA5nSjaNA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957721; c=relaxed/simple; bh=tcubcgE9SIPpXF+UI3w6egkHYa+A5zPe+n5JMu0rUJQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=LsN+wRE0/9AOgptP3GasQMLGKn4BPE29JudjxVm4xWd0AVap+ocu72dItOevArHYdtlxvpPzdZHT5Sr/85dUSNKhya7iD0X/4DIJ8y7ulK09EEdvYq5/ekLwbOF60Kx9jn+HfT/S/yi9sbxVQeyZPdOArS8c45IwthC99jonhuM= 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=uEUoc5GX; arc=fail smtp.client-ip=40.93.194.15 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="uEUoc5GX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ew0tjMGi96qITxQaP3AzmRtWMu3QYEHiRLVv6Zxc8Z3CpHgTo5JvR6vAPLrJlZrV0HvM1Uscr+idYj5EN4GWLsVWD4gZuCsZN7T98q0V/KGxAF2M5qapTEYquJpCOZB1EdwS3OnuYJgI8Tk6gGXDekMIgDg/PJzqQadMM3Kfo7TBBbEkZNJMrw/emiL1GDkVM1SlUZkz1XZwWObK2nXYb7x4mNwgjfkWDRKdNRatelYAD7oH3jbr8E20cELTQFjAOXHYD5dIVA7KhMbN0HGZZW5t24aMzkPrAJECKOdvubDohQdwF4D6qGifPIWv3rV/zssZBtTrAoFYHXYZNE25Ww== 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=KmJueOys4162YTP727zQmwKPUht4GWCKnV6YwC01lf4=; b=MjTldpxNWmVle2w7B3YvD4Wv088J8GnXZe/jRicMiO16ZhuPWXDwghpJ2yUg/pogXNrbXyZl9472PWijxY3fLBaxoQ9oqFJyrPZVFzRW+xWCIBJPlm9h3uI0wc573UgYzj2FVaHAtCAo3kK2hFvKZZwNZHHb2qH4P8msJXQzQ+RN5c0ARXvtC8q8yui4V2DecsuZ28PqouYGA51IEoTmSkXxt5vl6FrAisgw5wDstngxqMi5yZGKgulY9wnvYpZJQkxZgZ/bLw+ZByEZRXN8ypElpKxjXURj3tcEW/D8WFRlJw3AGrrf2CxdGT2cavt+fk7peiyAal8vdnDgUp7FAw== 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=KmJueOys4162YTP727zQmwKPUht4GWCKnV6YwC01lf4=; b=uEUoc5GXfnS9DGhSfA11C+/JqAhms9JOydqPKqDokaZcCmrHyh9Nw4npTklBb+fnIYr9Ultbwd/Fw1aFR2ZMJRcxoZUP/9BOFyrXgH5FdmMCTxIx4jC0K5hsOW3Oh6k382aHGQw2Y/NO1Im4Pdb9ieN2k7fEIJB1x0K02sbiwCtWd2ksbzLf3ru8Ki4sHAChtq4kUOEnBjiKEEt/Ue1Rm0WSyDqwmqvVF5EjdKPjFVL+nNjtrBwHTCLYSzDQwLhlQYqjZHJH7HnFfcYBiGBMcZEadq8so2qcClffTOblqJGBcjCb+bevHqspIajISGrh4755MIpzwkh6f75/k5QNlQ== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28: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%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:29 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:03 -0400 Subject: [PATCH v5 07/17] f2fs: convert the ->private flag helpers to folio-only Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-7-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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 , Tal Zussman , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQBPR0101CA0224.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:66::23) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a94a36b-f020-4927-9e1e-08df178805a6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: AydPEs/Aix3I96J/WvvOafHxezp1m/v09/tY8Y/X0HVjiB3HovzjW74YVh1cWMgo1fIyMT21g9RqVh7+43V/5EbvCF/vWqid9h9/idqiRxiEJg6w5ue9x7ZdQ2RzBOZMjaalz7RbTv3Cox+UoXX0JdbWmVQuyPgtUNt6xZJWGIt221t+IM0YQQogZq8AfcmhSgxn4ugKSg1EkIEmw3XR4pdP8kJm3Fu9c2p+f1xrT7kqj0pFO0EbEZQl7xMyBfVLVqPC71QaXtrgSJKZqFVgGQmk9FPjEOLj+n6n1R1kKyL/ceDLE0Ig296jW1kpPI3yfiVzAvJCPAIUhFVnLzJfIS/2A6HTbUnSsJptQ2dQVOsyCzPQspyRPlYkU2rceqzZY6ufzvlhVz+GRZwDqnJxeF/0KFeH9B/ONk0TMfjYiHq/hL0oLi25PjASI/lQOZvXtCboCHKusuyl3Sujiy/YlQSBocaRNknpziIA0Ldk4K56YTejmiWGXYn3EaEc43Rm+UMkBRIYZiQCJLiVnLyIrEX1vlUKKUCO+K3ZVADD+mRbL5wi5RfZ8nVBoaJnJ+TJwz76J187wH0YtNaDMEASIrdgtWszmAiRMeGaNZd7scamtITuQrCobu1l7BR3xpD14MZQ2+h1xJ5CU7/ZuQ4Z5tXwC59mykyHY3wHz4LRILfDz9gY1d1BF9v2gEvM93QT8h65GdCbDNqJ1+hp3Ooz7w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?bjhVTkpUcmxRNWFWK295NFM3Nklib2UwSS9VemVIdGhaMGhoejdOK2J5cm9a?= =?utf-8?B?NkMrcXVDYUkrSmRkZjdoRWtGSjdRZjQ0UHl4SHV2c0Z2cFM1UmJWSnhuTU9N?= =?utf-8?B?ckNCREg5RCthV1d3ck4vL0JBSEh0YVRJcjc1Q2IyMTdxOVNuQTM5Y2JXSjV1?= =?utf-8?B?OUc0YzVPMFNaTDJmYXhZYmEyWUhIMTR5RkZzK3JNTGNscCtReEVJRll1RHND?= =?utf-8?B?ZTkzME0vTWtiYnArZ09VL0R6STdFT1JaRnJyY01GcTRIWnkyYjVaYlRCS2x3?= =?utf-8?B?bGdXMGpTWkxxcFBXRkdFNUFXOGhVejBnM3psNWwxWWtOQ0RIeE01YmJaUFpi?= =?utf-8?B?MUVJM1JxYmMvU094ZXBYSWZLYStlUzk4TWl0S25IRkgwNWU0YXRrZTJSb3lD?= =?utf-8?B?NFhDTm80M1VzNU0wOEk5ZUZWS3NQYzFVNmVjcVByc3oxSVdPWXJwOE5hakVQ?= =?utf-8?B?ZzdUbi9ZQTVZUGFjbmUrek1OTkZjNmo1T1d2TkVsMVF6K0gxbThzR3pWbjlG?= =?utf-8?B?NWR0dklocFMvRkU2YmZzU1Q2eDByZFpMbXc0TUhCd0dQNWpkckd3VmVDYy9z?= =?utf-8?B?eUJ3YldyMzFJNVp0ZDI5RVU1V3pVOExjOHFrK25TSzJMZUQyTG5zVHcyQWxG?= =?utf-8?B?SWlNKytUQkplU2t4MDR0c29DanNPOFNwT3R5S3RraGFiME8xOGRjcWsya0Nu?= =?utf-8?B?dHAvUGhQZ25FcERpc1VQU1lGd1BDUHlaUkdIbFNaOWdvTDAwTENOZXhIcko0?= =?utf-8?B?MjUzZVRXOGNaM0NremlON0NCU3krcnB6ODZtekFjaS9kajNQRGdsN2F2WWU0?= =?utf-8?B?UkR2NHQ5a2tGYTdSajRkZVh0d01SaEVjVzhsZ0l4UDB3Mi9lT1htTkRkbURn?= =?utf-8?B?b0NaOEF5SzZMaDhxY0ZsK2FjTzB3MTVGTGNybzdTME9sNDNCUGgzakZmWVRo?= =?utf-8?B?S2ZTTVhLRjVMVGkwakV4SmxVNFgrUlU5cXc2Zm5SUHNCUXZRSUJsSUVBcWtz?= =?utf-8?B?SXBDNGN2SnR3MGFqSnBTY1llM05XMFBTSzNJSlg0am5RcURKNVREZjdFWS9E?= =?utf-8?B?V2p2dGpjeHgzTUU2UDdSdmpZYmpuSWRKVDFXcnkwRTdnYVBnWWNCRjJwK1RR?= =?utf-8?B?YktiSGNHMTVFN1BiZGdOa01oVUl6NnVNOWJNeXFSN3hqOVVHcjBKQXZWaEdO?= =?utf-8?B?MFNGQ1l6Y3hFeUpiMk0wMzhMT295TWxBNGRMVzFXQnU0TVY2ZnUrY2VOSktZ?= =?utf-8?B?aDlFemtsY3M2RTF4RlRycTBFTmxRNzR5cXB2RDl4SEIySjJ0Wm9xZEpXSEVI?= =?utf-8?B?UzdzY1Fia3FZOHRDQ25aVGZoYzdQVEtBR3ZnaEFkMHFheEhFa29OeDdqSGto?= =?utf-8?B?RzV2WmZtdk9kbWlMMFJ6TmRxVTRpb1g3K2YwVFUySUNqWURvRlRPZnZzMEha?= =?utf-8?B?UUNYUzNpTzlhRTB5OGlEUXdSa0toWklCUGllMmZDeXpjUVU4VDVXVEdvc08z?= =?utf-8?B?WENvS2tYaXg0NHljSGszYndEalFHVHpsY1hHWHhUWjhhRUtJKzFkeHc3VDda?= =?utf-8?B?bDNEY2NqSVBOSjBqWFdaZUdySzQ3WDJIcnlZM3c2QUVlRFhDY0NQZERuS2pC?= =?utf-8?B?QUN4TGhSZkhIMDZwK3dvVjlTemovcFh1Nll3dzdBVkFVL0RZKzV4dElrOCtI?= =?utf-8?B?djEyejNuWjlFRkh2TldyTDZJVVhyK3YzVEk1eWFWcDh2T3RCOGVjdDNpaDJI?= =?utf-8?B?UGxDYUxzWFZSaTkyQ2ptTGh0Z2NXT1ljWi9ua3pzd2EydGpvVVpwbTgxbnAx?= =?utf-8?B?NkpiVGkvRE80T1VQdm94MnVRaHdyUXV6NXlVd2pFZVhyMkxaWkxkQjMrQ2pK?= =?utf-8?B?Mko0Ujg0Q2t1bzduaDRMNFNuZStBV21rTnpybjRSUFY5cHVyTy9rdWdsbmw0?= =?utf-8?B?V0FUeUhhcm1XblNrTGc0bVFzTDhiYzJQSlhYRThzdm51V1NRS2tmcHIwVlFL?= =?utf-8?B?ZWUrRXpSQmRoeHorOFVrdzhUUG9mQ3ExZGpuOVpyYThkR2p1QVR1ejVKb1Bl?= =?utf-8?B?bDFaSzNuOGxPS2U4VDFRcFJlZFZETU1FNGJicDEwZ09zNkJVS2I2TE1YV0NS?= =?utf-8?B?Qmk5RmRudmN5QUJndGlscU5ENHpkNkltOGxjQzhWUGVmUk0xbXFIeEM0Z1h4?= =?utf-8?B?bDQvblp4SDJHVzhJNncwYjNwK2N6TDhJY3JYM0MwclNoWDNzUUpWUGdtVTd0?= =?utf-8?B?cm91S1VuWUlZN3JMYWhvRk9mWXlxbi84UnNUZjNscnhKaDFJODA4Q1AxMGlX?= =?utf-8?Q?8qUs/NZgMVC0wdAp6C?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a94a36b-f020-4927-9e1e-08df178805a6 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:29.4912 (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: 261BU3h3CZctg/tt17CC9EEj19Jh4X9xsOuPBy2S//54Tb64udFeTRoAsAiT/i77 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 page-based ->private flag helpers are used in the compression path, where large folios are not enabled. They can use folio versions with page_folio(). The two remaining users in data.c and segment.c can use fio->folio instead of fio->page (two are in a union). Drop page-based helpers after the conversion and rename PAGE_PRIVATE_{GET,SET,CLEAR}_FUNC() and the PAGE_PRIVATE_* flags to F2FS_FOLIO_PRIVATE_* to match. Convert the folio/page union from f2fs_io_info union to folio only, since no page user is left. The folio helpers do a plain read-modify-write where the page ones used set_bit()/clear_bit(). It is fine because the converted code either holds folio lock or, in f2fs_compress_write_end_io(), matches what the non-compressed code does in f2fs_write_end_bio(). Assisted-by: LLM Suggested-by: Tal Zussman Co-developed-by: David Hildenbrand (Arm) Signed-off-by: David Hildenbrand (Arm) To: Jaegeuk Kim To: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-kernel@vger.kernel.org Reviewed-by: Tal Zussman Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- fs/f2fs/compress.c | 35 ++++++++++++------- fs/f2fs/data.c | 2 +- fs/f2fs/f2fs.h | 99 +++++++++++++++++++++-----------------------------= ---- fs/f2fs/segment.c | 2 +- 4 files changed, 63 insertions(+), 75 deletions(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index ce88092d9ce26..09d9b8d0fdcce 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1064,13 +1064,15 @@ static void cancel_cluster_writeback(struct compres= s_ctx *cc, =20 /* Cancel writeback and stay locked. */ for (i =3D 0; i < cc->cluster_size; i++) { + struct folio *folio =3D page_folio(cc->rpages[i]); + if (i < submitted) { inode_inc_dirty_pages(cc->inode); - lock_page(cc->rpages[i]); + folio_lock(folio); } - clear_page_private_gcing(cc->rpages[i]); - if (folio_test_writeback(page_folio(cc->rpages[i]))) - end_page_writeback(cc->rpages[i]); + folio_clear_f2fs_gcing(folio); + if (folio_test_writeback(folio)) + folio_end_writeback(folio); } } =20 @@ -1078,11 +1080,15 @@ static void set_cluster_dirty(struct compress_ctx *= cc) { int i; =20 - for (i =3D 0; i < cc->cluster_size; i++) - if (cc->rpages[i]) { - set_page_dirty(cc->rpages[i]); - set_page_private_gcing(cc->rpages[i]); - } + for (i =3D 0; i < cc->cluster_size; i++) { + struct folio *folio; + + if (!cc->rpages[i]) + continue; + folio =3D page_folio(cc->rpages[i]); + folio_mark_dirty(folio); + folio_set_f2fs_gcing(folio); + } } =20 static int prepare_compress_overwrite(struct compress_ctx *cc, @@ -1281,7 +1287,7 @@ static int f2fs_write_compressed_pages(struct compres= s_ctx *cc, .op =3D REQ_OP_WRITE, .op_flags =3D wbc_to_write_flags(wbc), .old_blkaddr =3D NEW_ADDR, - .page =3D NULL, + .folio =3D NULL, .encrypted_page =3D NULL, .compressed_page =3D NULL, .io_type =3D io_type, @@ -1370,7 +1376,7 @@ static int f2fs_write_compressed_pages(struct compres= s_ctx *cc, block_t blkaddr; =20 blkaddr =3D f2fs_data_blkaddr(&dn); - fio.page =3D cc->rpages[i]; + fio.folio =3D page_folio(cc->rpages[i]); fio.old_blkaddr =3D blkaddr; =20 /* cluster header */ @@ -1476,9 +1482,12 @@ void f2fs_compress_write_end_io(struct bio *bio, str= uct folio *folio) } =20 for (i =3D 0; i < cic->nr_rpages; i++) { + struct folio *rfolio; + WARN_ON(!cic->rpages[i]); - clear_page_private_gcing(cic->rpages[i]); - end_page_writeback(cic->rpages[i]); + rfolio =3D page_folio(cic->rpages[i]); + folio_clear_f2fs_gcing(rfolio); + folio_end_writeback(rfolio); } =20 page_array_free(sbi, cic->rpages, cic->nr_rpages); diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 21f396ebe22ca..ca8232a9095f8 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -2923,7 +2923,7 @@ bool f2fs_should_update_outplace(struct inode *inode,= struct f2fs_io_info *fio) return true; =20 if (fio) { - if (page_private_gcing(fio->page)) + if (folio_test_f2fs_gcing(fio->folio)) return true; if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED) && f2fs_is_checkpointed_data(sbi, fio->old_blkaddr))) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 2f7ab5888b078..85937de3d7016 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1357,10 +1357,7 @@ struct f2fs_io_info { blk_opf_t op_flags; /* req_flag_bits */ block_t new_blkaddr; /* new block address to be written */ block_t old_blkaddr; /* old block address before Cow */ - union { - struct page *page; /* page to be written */ - struct folio *folio; - }; + struct folio *folio; /* folio to be written */ struct page *encrypted_page; /* encrypted page */ struct page *compressed_page; /* compressed page */ struct list_head list; /* serialize IOs */ @@ -1613,27 +1610,27 @@ static inline void f2fs_set_bit(unsigned int nr, ch= ar *addr); static inline void f2fs_clear_bit(unsigned int nr, char *addr); =20 /* - * Layout of f2fs page.private: + * Layout of f2fs folio->private: * * Layout A: lowest bit should be 1 * | bit0 =3D 1 | bit1 | bit2 | ... | bit MAX | private data .... | - * bit 0 PAGE_PRIVATE_NOT_POINTER - * bit 1 PAGE_PRIVATE_ONGOING_MIGRATION - * bit 2 PAGE_PRIVATE_INLINE_INODE - * bit 3 PAGE_PRIVATE_REF_RESOURCE - * bit 4 PAGE_PRIVATE_ATOMIC_WRITE + * bit 0 F2FS_FOLIO_PRIVATE_NOT_POINTER + * bit 1 F2FS_FOLIO_PRIVATE_ONGOING_MIGRATION + * bit 2 F2FS_FOLIO_PRIVATE_INLINE_INODE + * bit 3 F2FS_FOLIO_PRIVATE_REF_RESOURCE + * bit 4 F2FS_FOLIO_PRIVATE_ATOMIC_WRITE * bit 5- f2fs private data * * Layout B: lowest bit should be 0 - * page.private is a wrapped pointer. + * folio->private is a wrapped pointer. */ enum { - PAGE_PRIVATE_NOT_POINTER, /* private contains non-pointer data */ - PAGE_PRIVATE_ONGOING_MIGRATION, /* data page which is on-going migrating= */ - PAGE_PRIVATE_INLINE_INODE, /* inode page contains inline data */ - PAGE_PRIVATE_REF_RESOURCE, /* dirty page has referenced resources */ - PAGE_PRIVATE_ATOMIC_WRITE, /* data page from atomic write path */ - PAGE_PRIVATE_MAX + F2FS_FOLIO_PRIVATE_NOT_POINTER, /* private contains non-pointer data */ + F2FS_FOLIO_PRIVATE_ONGOING_MIGRATION, /* data page which is on-going mig= rating */ + F2FS_FOLIO_PRIVATE_INLINE_INODE, /* inode page contains inline data */ + F2FS_FOLIO_PRIVATE_REF_RESOURCE, /* dirty page has referenced resources = */ + F2FS_FOLIO_PRIVATE_ATOMIC_WRITE, /* data page from atomic write path */ + F2FS_FOLIO_PRIVATE_MAX }; =20 /* For compression */ @@ -2681,86 +2678,68 @@ static inline int inc_valid_block_count(struct f2fs= _sb_info *sbi, return -ENOSPC; } =20 -#define PAGE_PRIVATE_GET_FUNC(name, flagname) \ +#define F2FS_FOLIO_PRIVATE_GET_FUNC(name, flagname) \ static inline bool folio_test_f2fs_##name(const struct folio *folio) \ { \ unsigned long priv =3D (unsigned long)folio->private; \ - unsigned long v =3D (1UL << PAGE_PRIVATE_NOT_POINTER) | \ - (1UL << PAGE_PRIVATE_##flagname); \ + unsigned long v =3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER) | \ + (1UL << F2FS_FOLIO_PRIVATE_##flagname); \ return (priv & v) =3D=3D v; \ -} \ -static inline bool page_private_##name(struct page *page) \ -{ \ - return page_private(page) && \ - test_bit(PAGE_PRIVATE_NOT_POINTER, &page_private(page)) && \ - test_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } =20 -#define PAGE_PRIVATE_SET_FUNC(name, flagname) \ +#define F2FS_FOLIO_PRIVATE_SET_FUNC(name, flagname) \ static inline void folio_set_f2fs_##name(struct folio *folio) \ { \ - unsigned long v =3D (1UL << PAGE_PRIVATE_NOT_POINTER) | \ - (1UL << PAGE_PRIVATE_##flagname); \ + unsigned long v =3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER) | \ + (1UL << F2FS_FOLIO_PRIVATE_##flagname); \ if (!folio->private) \ folio_attach_private(folio, (void *)v); \ else { \ v |=3D (unsigned long)folio->private; \ folio->private =3D (void *)v; \ } \ -} \ -static inline void set_page_private_##name(struct page *page) \ -{ \ - if (!page_private(page)) \ - attach_page_private(page, \ - (void *)BIT(PAGE_PRIVATE_NOT_POINTER)); \ - set_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ } =20 -#define PAGE_PRIVATE_CLEAR_FUNC(name, flagname) \ +#define F2FS_FOLIO_PRIVATE_CLEAR_FUNC(name, flagname) \ static inline void folio_clear_f2fs_##name(struct folio *folio) \ { \ unsigned long v =3D (unsigned long)folio->private; \ \ - v &=3D ~(1UL << PAGE_PRIVATE_##flagname); \ - if (v =3D=3D (1UL << PAGE_PRIVATE_NOT_POINTER)) \ + v &=3D ~(1UL << F2FS_FOLIO_PRIVATE_##flagname); \ + if (v =3D=3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER)) \ folio_detach_private(folio); \ else \ folio->private =3D (void *)v; \ -} \ -static inline void clear_page_private_##name(struct page *page) \ -{ \ - clear_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ - if (page_private(page) =3D=3D BIT(PAGE_PRIVATE_NOT_POINTER)) \ - detach_page_private(page); \ } =20 -PAGE_PRIVATE_GET_FUNC(nonpointer, NOT_POINTER); -PAGE_PRIVATE_GET_FUNC(inline, INLINE_INODE); -PAGE_PRIVATE_GET_FUNC(gcing, ONGOING_MIGRATION); -PAGE_PRIVATE_GET_FUNC(atomic, ATOMIC_WRITE); +F2FS_FOLIO_PRIVATE_GET_FUNC(nonpointer, NOT_POINTER); +F2FS_FOLIO_PRIVATE_GET_FUNC(inline, INLINE_INODE); +F2FS_FOLIO_PRIVATE_GET_FUNC(gcing, ONGOING_MIGRATION); +F2FS_FOLIO_PRIVATE_GET_FUNC(atomic, ATOMIC_WRITE); =20 -PAGE_PRIVATE_SET_FUNC(reference, REF_RESOURCE); -PAGE_PRIVATE_SET_FUNC(inline, INLINE_INODE); -PAGE_PRIVATE_SET_FUNC(gcing, ONGOING_MIGRATION); -PAGE_PRIVATE_SET_FUNC(atomic, ATOMIC_WRITE); +F2FS_FOLIO_PRIVATE_SET_FUNC(reference, REF_RESOURCE); +F2FS_FOLIO_PRIVATE_SET_FUNC(inline, INLINE_INODE); +F2FS_FOLIO_PRIVATE_SET_FUNC(gcing, ONGOING_MIGRATION); +F2FS_FOLIO_PRIVATE_SET_FUNC(atomic, ATOMIC_WRITE); =20 -PAGE_PRIVATE_CLEAR_FUNC(reference, REF_RESOURCE); -PAGE_PRIVATE_CLEAR_FUNC(inline, INLINE_INODE); -PAGE_PRIVATE_CLEAR_FUNC(gcing, ONGOING_MIGRATION); -PAGE_PRIVATE_CLEAR_FUNC(atomic, ATOMIC_WRITE); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(reference, REF_RESOURCE); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(inline, INLINE_INODE); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(gcing, ONGOING_MIGRATION); +F2FS_FOLIO_PRIVATE_CLEAR_FUNC(atomic, ATOMIC_WRITE); =20 static inline unsigned long folio_get_f2fs_data(struct folio *folio) { unsigned long data =3D (unsigned long)folio->private; =20 - if (!test_bit(PAGE_PRIVATE_NOT_POINTER, &data)) + if (!test_bit(F2FS_FOLIO_PRIVATE_NOT_POINTER, &data)) return 0; - return data >> PAGE_PRIVATE_MAX; + return data >> F2FS_FOLIO_PRIVATE_MAX; } =20 static inline void folio_set_f2fs_data(struct folio *folio, unsigned long = data) { - data =3D (1UL << PAGE_PRIVATE_NOT_POINTER) | (data << PAGE_PRIVATE_MAX); + data =3D (1UL << F2FS_FOLIO_PRIVATE_NOT_POINTER) | + (data << F2FS_FOLIO_PRIVATE_MAX); =20 if (!folio_test_private(folio)) folio_attach_private(folio, (void *)data); diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 63b712d3d599e..8c156e1fd37d0 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3803,7 +3803,7 @@ static int __get_segment_type_6(struct f2fs_io_info *= fio) if (is_inode_flag_set(inode, FI_ALIGNED_WRITE)) return CURSEG_COLD_DATA_PINNED; =20 - if (page_private_gcing(fio->page)) { + if (folio_test_f2fs_gcing(fio->folio)) { if (fio->sbi->am.atgc_enabled && (fio->io_type =3D=3D FS_DATA_IO) && (fio->sbi->gc_mode !=3D GC_URGENT_HIGH) && --=20 2.53.0 From nobody Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 8BF2C325726; Mon, 21 Sep 2026 02:28:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957723; cv=fail; b=CabhunVsrAFVjtCOQrZuXKyfMCDvN3nM9A0R7fsehu3zvzd0SFviHg9wDFnOKTe6vrgzmzt+377F8NYwzEpIVLUPah2/QonZxGgxFVBV1XU62nnBOQvNWciC0IwoD3VT+abezWXR/G9g0ELR5ZEHTUq0FKzCwf6/8DvqQ/pZ1d8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957723; c=relaxed/simple; bh=kD3cEqxI/VPgz7aIqtpKmXEcSDY1J8m5719wxmgu7jM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=WcNO6VRDCHuzCiJmClPsTk9NkXymK+WhgbgHn6fW3ZQCfglIhqGc+q04c5NYNL25DG6P6gid/LwJHl9ucFSvS5q4i29LwSIrU0auNBbmLBX0SgErAErzhZnWbw55zX2Zn2YL84+VVX36cJs6DssIxbzkvUWn6WChy3A/JpkoS7s= 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=rolUObs7; arc=fail smtp.client-ip=40.93.194.15 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="rolUObs7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BpLdJcLoC4Zppl9uWy9emcejdW+j+IWWgwYq9TWOEdtJW4ODFjfH6KXTqW97C1iUe92eTjXHdCxURBXriTa4ZraJGDO/btiJmGpiOLjZgzYtJIdfimDbQjZtmfOvu/dIVU7cGY4pHQZOIiZqa6sCa3YOcsk2LmblEU63NvLVUmzCHY1pugiurIjoRb8IJ8SaoUmhwgJsjqkMBzCPUWyTBn152526tTEFHldRAPUtR16EREqicVUknPed9LnI+8u4sN07rsR/n5nnN2gqpDeuiUY/YvUf9bmrxSks+JFnHSzMIVglzP95hLHB5r515lPZhvHcm8D1RK+mapwC5j4s/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xVv9wxA/M8gednBaRD1HGziV0QOHZmyR40hMEBPFV00=; b=vwWEvyV3zlNdQim7tiCr0tfacAdgETEQcq+ftRF9TrCi6ff4uCh8KoOegkvqJu/z7pqEiq3a8c2waFmsdaqwzJqpOS0TsonwNgihpWZZ1bXbqhJzMqYBxl/E4gWgUsSwUpt35KCBfMwjiPmoAZtmx+pACPeSQG11oSl0bxH0ckKGbsiWwFxTaGhT6gl5zJY+pcXFxoISjT75z/ioWHt+nMcRbRbuARYXCEAXLDXHvG6pHnn9BeoN65miZoxmevYMbw6/Ib0+dhUbl6C+QRZ3xciG3GxKCZTOH3SPw/AcddSJCQowMlLGt8toEgXiy6uUop5iSNZamIR1RffdGsdsvA== 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=xVv9wxA/M8gednBaRD1HGziV0QOHZmyR40hMEBPFV00=; b=rolUObs7RU6Sr12aiqbsac0EkRWQZf6QK2lOrQIqci0hFZZV54hOWxuCraIY1FB6qMi4RiwK1CHf/3mWYesukxalpdTfxMNsKhIy/iYbxjAQN/XoN6z4gSRyVXzHgILZeqPmoEWu1wOO2bNKZUMjWoO7uFBoqSQROhtTDnSdFyUX81e64LiG9FbJ6RFF37mTxLjSYhf0kyFrR764PBXlZy4LM669ouKzrr4uZa7k5L5oxbXXe3FBAVf+JgZqv6uE5mJ7a+NZ0IDPD1RV9aUWv4Vs5Ks0wL2wFzGXJD2QA+TRbacdiwzGmE+cJlZm7feBQeETjxilFoou+Whxb2fBmQ== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28: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%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:30 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:04 -0400 Subject: [PATCH v5 08/17] 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: <20260920-remove-pg_private-v5-8-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQBPR0101CA0219.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:67::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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: e99f5c06-2ac3-4c66-9ba2-08df178806df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 18X6OyMVINr05w3eObAUs44oO2p4k+d/Svvxpw2NNfSwiuRWWHCYwLsj/v/9FJnsoSAd+hswvDkLYxzAbnIuY4RGDnCYtOUODFa/4Up2I+3waZP+aJ7AXPOKQ5V+mLMSAOzDJVPx5qpJGAgNruKT7Ur2Ay6n22z5d5+rWRsQ/MjexD2azXxdqF9C2JnFb9rPRAthXFFhqUJ/Xcs+3MQGtxfeJuPEpk4Y+EUGgPgPT1C1DpmkQwsdXjFtruwRfrA6M3cPIFbtSKnQ9JaSdSA86BMYRJxxCyiT9C3ksGGvYUyFN4b/ZP4xUP+SF3IHYRyauh2jpkxSU1oJp7qhx94dQkYnrpgp3awgYSmAshIMvrPI3itfLnRdfdWK9k6F2x34QBXphZeltjgcKIzbd8U+7tml9gAMKS2jmOKnE7HzLfjd11plO1Qru0ytmt852H6f5UFNyvYXdYXEmrKZisAlt7p5S22eGd+a4Zn/xEKxQN4FlVub2RAEElUIrTDhtYJCnVC40auhcX2BQoj+p7VkFloygrghb6wmj9JsaxijR8J4mYYYXAo+OnKQmOMkTrz9nvHAIl3nYSjvxCRewWyrXy/n+MlcokQ5fzLDmWo4ElpdrGUg/y5KUYR4BJM6Mm8EqD4u/2y0h0G0RCETOPtslydo7ceYu38fCeFJsu7ujOOLs8B4sX+tadfEn0JiyZKk3l6TwKmvol6+DV1krLTPVw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?UVIzcGRER00xUUlHVUUxRXZQc3NhWTVLYWpqbll4eC84TGhPSm95WkJpbWQ4?= =?utf-8?B?RU9IZnhyQy8rM0hhZis0M2NHSittdSswL0VHWk8zTmZVWEc5azA5SDU4RDJ1?= =?utf-8?B?aWxKazBCbjRNZElSQ3RIdThDSTRaSVErOXlxeFVpNUxTQ0I3UDg0Kzh1blVX?= =?utf-8?B?SC9wM2gyNk0wdUo0S2YrNnVxeFFraHFwOGxWNnR0UFE5NkVLS3hzdWZnRGk1?= =?utf-8?B?MG1FOCtPbGFWUVNTMG9wdXhCWGFCU3NvZ0hIWDJabjZLUVM0UDJYTFNMUFB0?= =?utf-8?B?bTV3c0xmU01aQktFc2JrNkxJS3ZyZThqK3FPMVBoWXdaaUxraVM1SDdvbXFK?= =?utf-8?B?aUlWZ2paS3BOeE5LWmdqcTdLenNCVEttNzErR0U4VGw3eW5Vd1pRYWNGdnFV?= =?utf-8?B?N3VhTFRHQlNTRDhNdmZQbEJPTndKS3ZhU1REaFp2NkNUbVBsa2l1M0hSOUV3?= =?utf-8?B?THNDQzJRTDVacE4xR1hEZ05mVGdWYWhXMy9yeXlvUlByTUkvakNvTXZKTGht?= =?utf-8?B?S0RNNThKRmRNdDZxVXdJZ0RDTXJsYXM2bmVXdmZYd1NzdWNXQVd2L3NaQzJK?= =?utf-8?B?L3VncXhYbk1US0F2ODB1cE0xd3g1Nk1yMk5jTkNva1ZCTkJ1UnNBZWR4bHk3?= =?utf-8?B?eVFHOHBuVk9jRDJGS2Z6VVArbmRlNWdMTkpwZHI2TDBrZDMvRi93aW9iQytF?= =?utf-8?B?bHQ3NENJa1dOWXhsQWJxLy9IODB2UWR3cm9hV2g1MmxxWEdlcExSdTVzeGZn?= =?utf-8?B?YnNkS2ErTkFhSW5nTExUYTJCMm10c2FPQ0N2dlE0Ull2cXI5SGtVd3FBQ2Q2?= =?utf-8?B?Ri9lelkwdXFWbXRnQks3MjZUc0xxbkxGbUE5QStuVG9VUzRoaGN2VU16ZG1V?= =?utf-8?B?K2VCZHhsODdqN1RLZ1RjTzJUd1F5RlNTZzVDa3FIeXc2OEtOTktiWk5ibTMy?= =?utf-8?B?ejhrOFFWZWVJeEhkTEt4K0tTdXNFa09nSGhNZ1FjNGd2OU1sVlZnWldOck5h?= =?utf-8?B?MlBhSmdNMWpFYmp4TW9mdHRHU3EzVnprOElMRVNEMk40YmNrZEU5YlF2VkNq?= =?utf-8?B?cUMrdEhXS1FOTFRKU1lkNEpCNVZLbzRKa2FxekpMQzRIRGIwaFpYbjQzcTQ5?= =?utf-8?B?SHR3VlRranRJRVU3SU9sRHlHODFQd0pJNWRacFY4S3NTMnlTMTNzby9pblRm?= =?utf-8?B?QTNHSkFEOHpGczR5YzlBNlphdEhDZGE3bmpwdkZPNmEwNUxrb2xCc3VSNWxS?= =?utf-8?B?dWlyaHNlZFhBT0xFVWpyblpONUpLR0doV3JMbDd0bnhjVVlBOXlTc1JGNkVT?= =?utf-8?B?MHc4WnhSditwWDBSUC83QkZqWUZOUlRaNHdqUGhWQkl2WExSdmpvb0V1eDF3?= =?utf-8?B?c1pNejVYSXZZQkhKRGozaFA2WEVhN01NM0hGNTAzWkdJY21QRlF4T09MazVT?= =?utf-8?B?Q0wrbGRoaWZsbzd1cllmblpxQ0ZzUm5LSDlRekRVeXY0bE5RZUdGQmc1azJU?= =?utf-8?B?WGZVcHcvS00xcDR6emF6c2xqaFNLUU91NGpWN1RFQ2R4TG95U2xGMWxRQnJQ?= =?utf-8?B?OFNJOTNScVBUaHEzL1F3bWtiY2R0cElPU0p0RWx5OWV2NGV0Y25xc1hHWjF4?= =?utf-8?B?REVDR3FtV29LU0JBenVhc1JqcG1QNlhjN1o2bjdhakRDN1drWEdFUit4Qk43?= =?utf-8?B?eFpsYmJSajQyblBWblhkRWVrWnh0SmlhNnhJOXVwaVJqdjE2QUw4RXhwNFh3?= =?utf-8?B?TGxZeHhkK3EraDJERTIxNURYeTVuYXJ0NElkU0t2VUU2VXpGdWxmSXh2cGs4?= =?utf-8?B?M0lTWER2aWNGK1J4cjdEdmh1UllkZmxJUitxZ3VvTklGOEhqRW53dGw3a1Q2?= =?utf-8?B?OWY5NTExVkdPL0JRdWp5Z0JuMTFDOU5aY1JoTmV2MVRkS1JFK0c3KzM1TVRT?= =?utf-8?B?dGhNOXZZb2xORm9zU0VrY0pOOWFvSitOaFpIR2V6Wm80Z3NUckJ0V215a1hh?= =?utf-8?B?R1RaOE5ZRlE3N2ZOU0F6WTUybWRlZ3BLU2ZBbytJS2dLTTM0d0tEMU4yVXdp?= =?utf-8?B?L2pzQ0hReml2MmkrcVlSeW9OUEk5djBkVVk4L2JCREtTV2RsekNtTm8xb3Uv?= =?utf-8?B?a3VLR3JROWxMT1VnU05Dd0FrK1dEcFdZMmRxeVd0ZTBUR1dwa0JlbitIb3JX?= =?utf-8?B?MVpGYWN3OHI5ajhYcm9rM3RUZVVTZTFIeTVRVnFBclN2SDhNb2FaT3dPNzM1?= =?utf-8?B?Yjdza29aUDY5NUgxK0wyU0xCMEFkYm9ZVWVWQ3JqQ3hLcWFQa1U4dE1RZTBn?= =?utf-8?Q?3d6mCfED0+onaWM5Xp?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e99f5c06-2ac3-4c66-9ba2-08df178806df X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:30.9482 (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: Gm10alTkvIExPZTPwvbPY8qFX9TY0PyNbzxWaueCPAZWB2MBp5aP/SSuBDnveG/R X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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: LLM 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) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- fs/erofs/zdata.c | 13 +++-------- include/linux/pagemap.h | 60 ++++++++++++++++++++++++++++++++++++++++++---= ---- 2 files changed, 55 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..1e3462357aaa4 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,29 @@ void page_cache_async_readahead(struct address_spac= e *mapping, page_cache_async_ra(&ractl, folio, req_count); } =20 +/* + * Adjust readahead_control to ensure next folio comes from + * [_index, _index + _nr_pages) afterwards and reset _batch_count. + */ +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 +1528,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 +1569,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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 9133E3101B2 for ; Mon, 21 Sep 2026 02:28:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957725; cv=fail; b=fhQpL1djSymJ5RE6d2T7FWHAcfGt3ECCUG8OkJXcu+1cwN55z3Vg8d3U+jUO8EaZxYPOKcp0FYtvx9Z/R5AaKE3AovIGgYiS68cZ24IJHaujRg/hROloXQEEAnOYty4DgDB6hZKhB4XUmbDxBn0UVkSR+DujX8x6KZjdUYWwb68= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957725; c=relaxed/simple; bh=J0dDAOcf+4lJVU3oIwUu4G42tDyEBYh45HW7J4zF2dA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=SlyPRMQluPVEtVn2F+Gsi8FqUCzUK/KA4pXFVbhGZ9n41Awgd1tBGndu4WwjfrpBGA4fbFv+2/HG3JrQps5P/pccMtza7o6TYe/sKEjyMaqUs4gLmeRnQaJFj/3COheZpPD7y9ZFfmm9kOr09TLR0ePNO9XRKyW4y+EEBJSlNhc= 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=oGl2a5j4; arc=fail smtp.client-ip=40.93.194.15 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="oGl2a5j4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=twtCxW0KDC2SVbQpp5tCPNvO/RoV2jUi7rLHRMSOy08dPgwQEctg3DrgMmupjTzIMCIlV64WXYh75aSmgmcTlKrYEvbcK3dWOewcWXpY2hJjVPDboyjtrOYIHhPGF0Wn8mEcesxkNfiVhTgCfLeV/pfvpr9AhJ52aD5Tg+Pb/bcowxcwtT8IOZ8GkoTh6dbxRrCU7GoLgK3JyWZqweSyVVdam+C5UHQAtisVGY4b/xWiJ9ZKH5Jsw7WuOmMCbTVR7o7fTaz8oJwhcK/TCX3UM2qTJyyk3xKmdF5agrAeH+w9JF9oBQHG/HyanHRIH3qqk0jVXgx7UXCdayI3rBM84w== 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=nPTaaAaUzrdA2lTjP7M/nU3VQaZ7JIh6OoJnL2DeSEw=; b=VAhohNB0Tu3lKAOMszzjSDXOkUb1b2pdttHReXUa/MxIzPfMtBsYgKU61y2Y5F5PIxfJED6P++Y2DtIF8WVigz8m1Q6HQRBaTaikht0fDK9uXBgzPQXOXSF7MH+g1ZO+2J11KoPDjQDYwF46dMwdlAUGVFXSNTx+GE5gbS2tAVebLO6/hzorg/dPtAN1KZJ5HZOBDqwJn7Uui5/dvMvC+87dQwhC2KdxRCpe2Wh9K7m0ME9I3W+8Zp4mmIuuVW4D2C4EUi0LacB+OGg0/ZX5jXxQyzRyb/1X+YRhKnZtwQdT48D+JHQVnoQrw3VF2RXZv6fWVAnSGeoCUJeBaGjvUw== 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=nPTaaAaUzrdA2lTjP7M/nU3VQaZ7JIh6OoJnL2DeSEw=; b=oGl2a5j4gSKBysQ3nCTzeNsnwJeDz5lsmbvmP7hAM9Pzs6ULv3vIVF19C4w7UFrvdbqZ8v2PF9g+ciNHrDEalF0+X0jD7EaBvuGL8PCcg9JAgFImiNuMGwHH+hGKm9pnBO4D131gNNzr/75JhER/j3cHqDWNJWf9nAt5Z5nG9UeMGeRYDYJl1lhkhApRPDn9qGpx587hYeh7PWGctWtSyfaGAmP12mPP1xnNHVDyeXUoANpkTWqNyIUIRM9Vp2ZcRqgHaGrgIA2k9Af00CWx5kHb1y4qqsq4JTHeOPTrZHOUynSu5jZMSCJa7JioZ3pKyyLxGzidmpmBt8cqoPHPDQ== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:32 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:32 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:05 -0400 Subject: [PATCH v5 09/17] erofs: use folio_attach/detach_private() instead of direct assignment Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-9-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQBPR0101CA0198.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:67::35) 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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 723911d4-99b5-401c-a992-08df178807f3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: PNuyHesrmuj1E9mLlA8pqpzhvhNQQFWZ3LoRMsfWCDx4SPrn74WRL2d2p3WlVvKdJTWu+q4bePe5cUau/oZ3nXMWl1PevQox6Me6ZjGOC6B2nQu6Hfn83S2otmW+J8+POAiQrosGaZ3911rGfW7pC9NjyqOTgDzSTY5ISA/zIk3wxXqGw1yxXNgsbY3n+vxJ7pEMMl/QtTmyhG6CkuEs1ky9oqVlEgiopaKmRCR/KqK/5P9X8+k9RkJy+/BbhhFgoMFsQW/EDbzayVErBNovkhi46EoACM6as7H+ixFStHKqrstX1jws5uW4yjsIDNQmfrGFRvsF67pyu/xtQXJQs1y5YcYWCDHWwwOSMZJHM609P0+PF8RkfOH6gWZrPxJvHHeI5yoCdPcFOPUqFJH2duJ6MA6QKXhyS7U0IWofvCq/L6CIPjA+gxJb3SIRH+J6WDvfSMbbnzA7VvNsNFejEmbJfPZGt68mNtpYu+z/wwG3Rk9nsmWTOQSLFaQaWYcpbdGfjE9+k7Ghmnzw9s4iaSAYTMHNWmGvq47wLuRWwWjPjlkW8CgBQFlXtUzLwy1mKLNmzsXHwKt+q0oHsZP+ohVBK0uaXwnmoka9yfoNcTcGZ85sM05jLxGuEUnLaVDP/95MQEWf7kkDInM7FC3JE7ABRtGG1s7agAHgc6MXT+zPyPACw0veFFzDqFN1UMbBkCOp2qSao5H4ws0k1ZYHsA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?UU1QWkJndG5QM25aemIxYlZwT0VxeXVqcGx5b0RQTko0ZUptcGhIU0VKNjVB?= =?utf-8?B?clRIQVRuYWtWVG1aYmMrdnhya0g2eVhIa09pWDczc29CUmgxYU91cGx4c2Y4?= =?utf-8?B?V3FWREdIOTRRempRRkpodzRrS2QyTnV4Z1hGUHcvN1VzUmYrTDJldElGWG5R?= =?utf-8?B?c3VCallPMkV5U1lMbGhlRjIxTVNnSXVCNUo2clY4dXovNlhWdlFyYTdPbHpN?= =?utf-8?B?cnkrRDBwVU0zU0V6VVRRZUdJdXBWQXlvV3MwYmZadVN0cFlJRlZoRFJzN2ww?= =?utf-8?B?QjE5TnVRY0dzWmNFaUd2dE9JMXY1Yms1Y0N3V1huNWdITTB3M3pDMTRpQThq?= =?utf-8?B?cStFYTBlSUlQTmNxd0dkUWZIeTFLZ3VQU2tZT2NRYitXc1ZLMHdQVkRPSEVC?= =?utf-8?B?bmo5bTVJMEh3VVlEYVVIOGZQcjJiQStkc21KK2hrNDVxTU9KNUFlUkFsNmZu?= =?utf-8?B?R2p1ODJYOW4vSGZ4NHNWSk03bEFXc1dlaHdtZWdwMXpkWjlzU0ZRejJhYXl6?= =?utf-8?B?WngySUQzMFVoeVlKb3FKYm85U00vY1MwTHdXTHQvK0Q2QUJpTnJ4cGlyT1J5?= =?utf-8?B?bEkzSVFNSGw5eExWbmNOYkVwZWgzWUdXZE1rQmxUMzBCMVVmNzVoNWxBNlh3?= =?utf-8?B?N3g5M3R6OEtJUUJPVlQzM2swQWNIdHhtcllRTVFpZzRtMWkyaUJic0JLS25r?= =?utf-8?B?WFRtN21LdjlGdS9xdWp6ZEJvMDFjbUFNQ3dRRDFyMytTRk90MzZkOW42NUsx?= =?utf-8?B?ZXoyZG5aUm1GZGF0L3BEUmVYNXFyb0dDOEtKUHRacVhWWG44QndFQjdhTDNW?= =?utf-8?B?eFU0bUhKeGdEOGp6ZnppR3dXV2FmSzNFQXBTL0tXSlBnKzhURXlzVHErZDN2?= =?utf-8?B?TGVHZ0I1a2lvSm1HNG9WZXJTd1gyZHdTY3YyTmtEUHYvcjB6RjFaeEplRUM0?= =?utf-8?B?TUhUTVg5aW1EOVo3Ny9CRGlpZHpGQm1kZFV4NURET2xGUTNmN0JkOEhOQndy?= =?utf-8?B?ZmRhVXRpMWRsREdLTG1mczhXTUppVjFNcXBLZXRab0RsSzZEZ1N3MWpBTmwy?= =?utf-8?B?NEdjMnlueWVlU2pOY3h4dXNZdHI2cGpqeGdPYUc0T0dMVTVRY0Yxa210NFhC?= =?utf-8?B?Rm5EVU8rZnI3b01ncVlDK2p4QjFDRENJSXMvbHNpRmdudUxUOWNNQzZOWDRx?= =?utf-8?B?RER2YlNGakgwWDk4emI2TGlxOWVIUDRPUmZIWFk2aTA3TGdRSHlSQWFsMVFO?= =?utf-8?B?OHE4RG9zNHh3c2g2cEJhTU9VSnRXVklLSXdsQURYeGVvZ3hYdWZvNUpkWldw?= =?utf-8?B?RWVnRWtFeEhRL2ZGcXAzYkhTK0RRZit4TGtlZmVwYk9sQzA4bDdJZ1BuZ0dw?= =?utf-8?B?eHRwVVRMNU90QVc3Tm9ReUxPUHRSMWFaMHZwVCs1OGpVMGVPekdvYjBJd0la?= =?utf-8?B?QmNuaE56cVVleW5tajNCNkRYYzZKNU4vQWs2T3R5bkp5bUNQUDdlOVMyNU1X?= =?utf-8?B?YTJpaUdwSkkxUHFrNjRteFduc3RUb3BZZUFTbjhvbENUNG9YUFcvdXN0eHRJ?= =?utf-8?B?aVpOeUNoYzE4STk1M0Mxc3V0T3pTMjh6dUNqTnEwc2JFQUlJc3hSNUVRL1Nl?= =?utf-8?B?cWdVcGMxNXBmcmlkYzZWUUkzU0s4NkVISGNLWFkwVVc3MVdJT0JlclZKWTZs?= =?utf-8?B?U05KVlJNUVpwTldPeUl2UGxiNy9hamF0MmtsWlVtc0N3blVreVRGemplaDhC?= =?utf-8?B?RUR6UkJ2M3ltdGRiM1BBNnpNc0dFK2NseVdTZDZuTDZudGEzM1ZjOXJMVXVW?= =?utf-8?B?S0lwbzVON0xUaXJlU3ZUYmZBVnNyU1NkRE5CQTRMTDgzYndZbkxJcWduNzB3?= =?utf-8?B?amc1bCtOM3BQZUJUOGpVeFd0V2xFTWF6UTdNMlVEOG5vTFcyNmhpMXVCRHY5?= =?utf-8?B?OTFNYjVPNHpMTDlSWXRjbjYvVlJkV3pVWFZlcFowMTRjTlhoNEUyL3A3aTUx?= =?utf-8?B?dzZWRGc1UzB6YzkvYjgvaFJZYU5wU1V1bFNCREVkc2N0VXZrV3Q5L2JXNzY2?= =?utf-8?B?MTAzSG5ONzBKQmtYa0ErSWpoZkF4ZFE4T3owY1hKaHlqV0lYZEZBWThtZmgw?= =?utf-8?B?aXhuL2VBdi9abXI1UzV1K1VsVUNqblM2NWRKZ0xYS0xlUjErYW9Tc0hhRDlD?= =?utf-8?B?L0kyTU4rOGFTVVNiM0hxZVhmWEtKcG9NV2R5ZzR3R1czMWQ0WmE3cUE4Ukx2?= =?utf-8?B?L205ZmxWVSsvL0JtSXhzWE96Q2VRYkRIQmJWY214U29lTnpyNzUxUE9tWmEx?= =?utf-8?Q?cHKEIe3L3jDsclZmmz?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 723911d4-99b5-401c-a992-08df178807f3 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:32.7682 (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: FEv9DBxbxwGBBqjDEY/R3i80TptdyJOfLD+0QIDF09x5rcQgHQkB8ZrUySKP1GY0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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(). Folios during this process are locked as they are in the process of readahead, so no parallel migration/folio split can happen. 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: LLM 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 Reviewed-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan Reviewed-by: Lance Yang --- 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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 61A3233DEE6; Mon, 21 Sep 2026 02:28:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957727; cv=fail; b=n/cTgIuqOwnj0a26yybuX+n+NarAAnTkD/GT8cIqTYqsFFEKdoc07SEIX59ObONh78uFRdSircIhG+iEjAehuchRRGpritKvjgUn1fXMoyYQHdFf21sh7UPj0rW3gUiY9T9D8gFuBh3IklscAT72sNqBugKEf3ol4vX726K3eXw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957727; c=relaxed/simple; bh=vcMBTZ+zZ7QzsxL3CiEkQZTNZmCKml7My6XcjqIvY7I=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=IoZrZ/XY3LD7eYNHzKn+lCnsJxHkSGT8cs0dm55QX1OnEzjo7v99uUI6rcrzBqiL8kFYTg4AKQBlrcE19jiTq/BRxXDawR9c9BXyoGlOk86P4s8Jbg/th+iTkjNVB0BtM+JrYzhXbJ+a4ExHiUVVg/G0orlkN620zfLfmSGp6I4= 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=BHzSHgRa; arc=fail smtp.client-ip=40.93.194.15 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="BHzSHgRa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rRKJloJHUOQPtBkCkwATuE9nTpv7QekY5fFTEPPLOs+a8PeOsVu8XxC3zz5LHs6cZNMe9qfUZlpDdbk5yQ92HHthS/Ds0gTcXtNg0416a9hdcRMXqZWq+g7C5kUIlLtTsTy/23HcjpF9dvh7LrT266S+Sb4zlGjrfVPV45ntKqNKfsrbyAf/CSCAfZ/MnFkR778KEkhcHM4gLOseQX0c0ECv6EZUXHpV7NEiutNPlvHcUd7OnV/dhigv6tWMwgFneocgrDHoafN4hq4X2t4mxqUidRjea0iXrosonNkWzmFA6PtoHfku6YeA/EnNu8mHb2XmLriDf+JMk8YjY6N91Q== 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=vPq71KQaAOBJ6HXf0FB3D1N+8QOENtxdWLUdCeBflGA=; b=ThIecJwcb3ikmBrUK/CoIYqmKz6+6zmGaJ/7ANIKFWgvmQ7HjosfkpWqY1+32BC+0pNGEzeC22gbYGxEoXSHHp2nSB72wL91wPSE1FHMRBe8DPF33aZ+FLXVWH4mNpV2DZttvdTzQhAjeXXLP28lLiAenEXc0jO956XRXe8ysbz0LcUfuuJ3hiviho1tTdcSCba57hvEfrNwyeMNsNdNS2c6Y8cy/UTui9GUmQ++1gG3vgrDew2oxdNFzSwk1ovUNaChJr9JdjyPqPJAOMoZFfcoqyVM2JZJvXKDajzYAm4Qb7ZCkjcwHg8/SWTKB65Rm/XGcjvRLEfRs1r7cHiHQQ== 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=vPq71KQaAOBJ6HXf0FB3D1N+8QOENtxdWLUdCeBflGA=; b=BHzSHgRa4rWKI1o8FE4fMe8sEdCvYjfbUyh1o8Zo6PUSh6bhvcooavxZiuJf3enM8HoFQ6Hy8aLRQMrj6321aUNUBOi9+ZYlc7JdhssYXqlCJOjch3vDLxEGLcs93JqaFg47FBD7CNsEvkJvbYDXkL6W1Jb6SMWBxo8KVyj+I1+BsgiHXnOr97e72mbZnb3hneXFdqYT9jZZpFU4AQ7zIo/xiQM3ou6t8OqF0YupZZMK4mgemT5ZfSXey01jTsUbXYVa59TdO5VqoC9pizYb/LLKuvISJxT3q35j3j4K/qabYyhBY3unsXq3pE05804zTthEraB216DIdGmC623kiA== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:34 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:34 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:06 -0400 Subject: [PATCH v5 10/17] 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: <20260920-remove-pg_private-v5-10-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQZPR01CA0114.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:83::25) 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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 62c4a13e-1050-4bf2-0dc4-08df178808f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|6133799003|10067099003|56012099006|5023799004|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: +jFAluaXycDzKyIehr/Mk8RdYNbDzGx7Glh2ltGBaTHyj89nx/3xVKA9V5Haox5lpObks9JimPHEbAPCYzs98H4IC4/QIuCmycmIyYUIZjHLYtpQjpOHiotc4uY/6JySPK5x8aCa2akQf4FxEPi4GnCIpk4Sz0VmYYMGdDl64Ko348zspxdQ2pDPPCYHdFjX0ZFRAfjkqAGk/YxqB/pcg+MTpgNWVsLaBeODoqc1xCi96XafvYNrYnxPDHz2E5fbsIS+modr7ZUZeDdzlT4cBBClBM+e7HNPl+SfDgaBsHJBLN0AM2vVjKUOp/OeLhEX7ssqnXvXylIPgGb6vzxnU5/+btZ33alTIv/PuIYz0RwNTibR5DWrJ4EE+AJFLqxO1WAed25zBTminvykDd3eRxU8CoZOgxjL+OTv8GkEmcdoW31mqmtqGZNXxAZhaXUGxbR7u2nXgzRLkN41DoFajQal3e/CUdfw76Y4RmnBfAcYeoONs4rKhYcw67NZwo8kCVBMYTs1CkJOx1mJkHs4cGaJGCHUdMd2fwmcDIZOI6+9Kq23vUq2osNJsJjj/x52Y9bi94uIV63xOpTi7THsXPlS6xqeAdL7v8kPbWa9WQrwpdke+ofyYOTjGFpEnN8ft917WwEMhU36rS463H0hChBqwfcMZQbLvxxZwNcXMP8RsqW2Zwbyvb6yHLiba53xjQ4466fMfZqXnc3zAUq4wQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(6133799003)(10067099003)(56012099006)(5023799004)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d1czalI2SWd1NkRGVDNaaUxxaWNVWUJwWVNLYy9LYjMwS25XTG85SGFFdlVz?= =?utf-8?B?a29xSHgzVDkzRHVkQ0RNRTV6WnJNWTEwbEswaUJXWDlWRUZKN3hoaVd5ZTFU?= =?utf-8?B?RE1KT0JxV1NPVGFwOS9TYVRaK04wQkkwT20wbDk3VXdZMUlmZHp2ZS9iSFlt?= =?utf-8?B?c01wMFFVSHlPd2lXbXkwYUp6Z3d6aXllbUhjYUJWNDk1eVUyT2gyR2xPU3RQ?= =?utf-8?B?TWp1a0dGVnN1MTd1Q3lUNW9rZ1NaUjBtbFhxY3ovWkpMRk9VekNzaUQzdU53?= =?utf-8?B?OWxvbW5GRGliUWpReHhaV3k1M2FnZ01LQ2x1RmtlY0p0UmdhYUd1ZXNUTW05?= =?utf-8?B?Y29QeXVEdkFobTcxV01KUmhVRUJVSHNtQjZaRjlJU1dsb0R2QzczRDQ2ZjRh?= =?utf-8?B?eStSaDhkMVYrVmZ2aGF0UG50dTc1MmN2d3hZenBEaG5HSGw2TzNUTnVDTmlG?= =?utf-8?B?RTI2M1ZWamhlRFZwTm0rRDVjNC9maUdjSlBXK2NncWs0akhVcEZCZXZRTjdG?= =?utf-8?B?R0VJanFoczFyWmxoSzRZUUdsUTg5UC9DaHJsK0I5bTdxRkt1MFd1MC9QY2NF?= =?utf-8?B?NDROd2tTVzFhN2NVaUJYT1J3Q3F5Skk0bDJlU2IyeEtDdTU0UmdzdmlDRGtQ?= =?utf-8?B?UUhzWU5TMzdBUjBrejJoMllPRWcyQUFSWGNIU0lLRFNBZkxrWGJLZzVkZFBw?= =?utf-8?B?Vk1EWHpHblNXUGY2SmNKc0JUS1JkTGY5VDF2WmU4Y0t6YWNUamF0ZjYwNDRm?= =?utf-8?B?M1QvUno5Q1l4VHNpSC9tN3VBUjNyYmFtczdYVWw1OGJqdUNQY1hOaFlvQTM3?= =?utf-8?B?bDk2Wng4V3pmOE5XS2daK3l2NVMvUVZpeXhROHBxREZDdFdNOWdHN3VXUUFP?= =?utf-8?B?MTN5YjdLRGR5cmlheDN1dERIeGwvRTRWaWxDVmNXdFVCbGR5NEl6Z0dPaSt4?= =?utf-8?B?dFNGdWJBalBNdkdhUFlWak1NM25xNTFSa09aMkNzZDNaTGlKZk92ZHpOYjhZ?= =?utf-8?B?U1gyWWhCd1hRT1dyUGNYWlRPYWhtWWV3Q3hwVlR0R1hzZ21sMEhrZ0JxWDNy?= =?utf-8?B?QUNQMm1tUDgybnU5RE9iSlVNOTk1Wlh0RmlPZjhaS2dDQzdKOTRxOXFQWmJZ?= =?utf-8?B?SWwyNHo0Mm5nY2tRWjNUNVkwWTM1V1gvc1hBZGJxRjN5Z1NadC9TS3BaR2pr?= =?utf-8?B?SUE2TmgvSTJ6dVNNUVR1eUIvdEFJZE5DSnM3dEtZWmhMai9JdEx5bUQ2aklD?= =?utf-8?B?SWV4eG9yQ0p4OVBPenZzQkZrekNQTzN1M1lFUEU3cnZYWEQyY3c0Q25kZTZZ?= =?utf-8?B?eVFxMk54ZE96QUduZXdYMERqN01yVEVvdW12dWREYk1XbWo4b3EvQzNRYm93?= =?utf-8?B?QWJpc2dIcVI2WjRRdWl0Zk4wRDlzR09ybzdnNUluYml2R21TOHpKYm8yR3ND?= =?utf-8?B?TzdhSHkzZXR3ZUVGZnlmSFpuZXZvT0gvejVWd1FTN3BiVTJIazVDSHhuVzBE?= =?utf-8?B?RHVJQm9pSGxXb0hETG5oc1JBK1g3eEJLMTU5bkQzaHRsSk9Qb0V0eEdsMExw?= =?utf-8?B?QWZudmEwZHZhT0oyc0tmM1dHYlFoNyt4TGZ3SGFVTE1MMDR6MGY2cjdTR2VG?= =?utf-8?B?bEJKeXlIaWQrUmpqSEVLQ1YvbEZhamFRakViS0hucXBGWUdkTGJyM2FYTVI5?= =?utf-8?B?NmJpck1QNUFRcGdyVmJMVHNZNXpadEZraXhyTEhDSFFEOUpTM0QvVGs5MFM4?= =?utf-8?B?WDMxRnpGQzdoL2RrTXNxYVdlWjZNZWhnUnlGQjlNWXhHc2EvUERnanlMQTVF?= =?utf-8?B?M296VmRFUWNIenp3bk9wWVltdmJNMkFMVFNTQnVDbkc5Uk5KVFA4OGpvVndD?= =?utf-8?B?V0tkQU5qbWdaSUpiZGsxQm1USll6WEFzVlBOaDRCcGFZSVpCWlZqaVFLem9O?= =?utf-8?B?Q2g2QVFLQk55NDh2ZzhNS0g0cnlGODNRMUw3bmFDZ29RM1Yydi9FMFhsZm5n?= =?utf-8?B?cWZzOXZSSVh1TFRtcEIyK1VzR1VwbTFkeFMwRklNNlNKYnIwa05aek9TUld1?= =?utf-8?B?UVJRUVVWS25SSnE1N3Vjc2hZaU5ZSFFySDNvbXhkZkJER1lmMTRtZWxzOTJj?= =?utf-8?B?ejVqM0tiK2xOcm9NZm9SaDVvZHRlaHRkY284V1BDUjV4Z0pob0MxTkMzRm5U?= =?utf-8?B?K0VpWUl3M2x0c1FSdVc3V3JORE1OVW5OVkJRbURob3ZkSkZDOXZ3OTQzeE1Y?= =?utf-8?B?bHpKeDk4dmVIWTlpbExpZTBFNUQvQ0tERU4xbGNGejN4QVdMNjdBYUZXZUFG?= =?utf-8?Q?wYVROZLO6H+hwc/9/Z?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62c4a13e-1050-4bf2-0dc4-08df178808f4 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:34.4111 (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: 1Uk5hIE2g6tAA16M/iTqH+o+K5CRp2SZDk3+3licSqdmh7xcbQJ68VcFrfj46ihh X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 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. Add a helper, folio_has_attached_private(), for this check. folio_test_private() and PagePrivate() now read folio/page->private plainly instead of an atomic read of PG_private bit, so KCSAN complains about possible data races. Annotate them with data_race(). folio_expected_ref_count() can be called without the folio lock, so annotate folio->mapping with data_race() while at it. folio_set/clear_private() and Set/ClearPagePrivate() become no-ops. PG_private is no longer checked at page free time. They will be removed in an upcoming commit. Remove KPF_PRIVATE since PG_private is no longer used. Assisted-by: LLM 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 Acked-by: David Hildenbrand (Arm) --- fs/proc/page.c | 1 - include/linux/kernel-page-flags.h | 1 - include/linux/mm.h | 19 ++++++++----- include/linux/page-flags.h | 57 ++++++++++++++++++++++++++++++++++-= ---- include/trace/events/pagemap.h | 2 +- mm/huge_memory.c | 2 +- mm/migrate.c | 2 +- mm/page-writeback.c | 2 +- mm/vmscan.c | 2 +- tools/mm/page-types.c | 2 -- 10 files changed, 68 insertions(+), 22 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 66d384da4433b..d9392ac8dff9f 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,15 @@ 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. + */ + ref_count +=3D folio_has_attached_private(folio); } =20 /* One reference per page table mapping. */ diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 7080a6a1a79e7..6d839f50bdcb7 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -575,9 +575,31 @@ 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 */ -PAGEFLAG(Private, private, PF_ANY) + +static __always_inline bool folio_test_private(const struct folio *folio) +{ + /* + * data_race() is added for readers without holding the folio lock. + * Only the NULL/non-NULL answer is used and both are valid while + * private is being attached or detached, so the race is benign. + */ + return data_race(folio->private); +} + +static __always_inline int PagePrivate(const struct page *page) +{ + /* See folio_test_private() for data_race() use */ + return !!data_race(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 */ @@ -1169,7 +1191,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) @@ -1193,8 +1215,31 @@ 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_attached_private - check if the folio has private data attach= ed + * @folio: The folio to check. + * + * Use this in code that may encounter swapcache or hugetlb folios but only + * wants to detect attached private data. + * + * Return: true if the folio has private data attached. + */ +static inline bool folio_has_attached_private(const struct folio *folio) +{ + /* + * Swapcache stores swp_entry_t in folio->swap, a union with + * folio->private, and hugetlb stores its own flags in folio->private; + * both are excluded. + * + * NOTE: For swapcache, folio->swap.val PG_swapcache are not set as + * a whole, 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 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 @@ -1204,7 +1249,7 @@ 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_has_attached_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 36c3a90f0acca..5d47b774633a4 100644 --- a/include/trace/events/pagemap.h +++ b/include/trace/events/pagemap.h @@ -22,7 +22,7 @@ (folio_test_swapcache(folio) ? PAGEMAP_SWAPCACHE : 0) | \ (folio_test_swapbacked(folio) ? PAGEMAP_SWAPBACKED : 0) | \ (folio_test_mappedtodisk(folio) ? PAGEMAP_MAPPEDDISK : 0) | \ - (folio_test_private(folio) ? PAGEMAP_BUFFERS : 0) \ + (folio_has_attached_private(folio) ? PAGEMAP_BUFFERS : 0) \ ) =20 TRACE_EVENT(mm_lru_insertion, diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 30b7c63b0e359..8aa2daba37391 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4846,7 +4846,7 @@ static int split_huge_pages_pid(int pid, unsigned lon= g vaddr_start, * will try to drop it before split and then check if the folio * can be split or not. So skip the check here. */ - if (!folio_test_private(folio) && + if (!folio_has_attached_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 a369d0c95c386..b7b92925a28c3 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1327,7 +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)) { + if (folio_has_attached_private(src)) { try_to_free_buffers(src); goto out; } diff --git a/mm/page-writeback.c b/mm/page-writeback.c index eeab25d6ce364..499a35473e4f3 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2705,7 +2705,7 @@ bool filemap_dirty_folio(struct address_space *mappin= g, struct folio *folio) if (folio_test_set_dirty(folio)) return false; =20 - __folio_mark_dirty(folio, mapping, !folio_test_private(folio)); + __folio_mark_dirty(folio, mapping, !folio_has_attached_private(folio)); =20 if (mapping->host) { /* !PageAnon && !swapper_space */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 80041e2b8049c..dd6261c862794 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1029,7 +1029,7 @@ static void folio_check_dirty_writeback(struct folio = *folio, *writeback =3D folio_test_writeback(folio); =20 /* Verify dirty/writeback state if the filesystem supports it */ - if (!folio_test_private(folio)) + if (!folio_has_attached_private(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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 8FB5E344D88; Mon, 21 Sep 2026 02:28:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957729; cv=fail; b=HziJ8msRWq0lV27C+vsmgSjG18V4Q53XhjkZ+zcWeHr101D6sP0/v+A8XAR0dKS6b4LZRVzMcT7Vr27XaHIDJWqFgrqFxwHSphC7mNlm9vEj8WVwguob6np9PFY5Rxv3Acc1xNnHSFkyGyeAoe0PCM5tbezSxMoC3q9DzyCwlbY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957729; c=relaxed/simple; bh=SqRQvZmOoOsQmY27s0Ol0Xec3p7fygf4FypSBNyKyGY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=j5CbKkJfqAGSJa+A4kK6gX7HKL+23Q36NRx/6sq3ceKF3araFayceXshCHvuxE/sH/tcnUQ9ublecnQCccaYs5HmM1ELTF+r/wv4qgLI07v2vHOW+ypxO39O68VJIRMW94lDcwaaY9WqrDRHtgmcRdIpnfij38m+V0IhMtwmM/w= 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=gYAq5oUu; arc=fail smtp.client-ip=40.93.194.15 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="gYAq5oUu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oB+wHi9seeFz8ImexI1xoth6n8AiUel626z3Ltvbbr84iqrQuMvDFfEGrCRlgB8ce+y0I1pAt1MOktiwEi/5aeScvvmYf7emQ698HFruw3xtImBXZut3kw9mzqn9BlurTrBbMz92TjPii5KyaCaBqvOdrheVhN81txbal/uT9MmpFKgiK5qI6OSarxMUFbxhyTC8FZY+w6X37UDoelPli3BCCSmE0aXnjPur16JoJ8VAJ9Zvzrk0ivP3LxXHUTSA8RBlQQhWO0+V63G4OGXBeHaXeTvqpuDSxpV0iKSK7oH4heZmfoOyhoQ3BWAWk6GwI5FDW899shk86t5bqSAc2g== 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=Pxl8REd7pjZ/pxg+5RJBiZwMjGvhapxp0OyAm4Ema5Q=; b=cnDMoAvOVCD/Zs7QOcpNLtERIebf6mlq8JIXjo1+7H0qsSLnaRWY03RRIk8mmEdfLiCM2Xq0gTKFgMznvbT7WQR6k7MRR4NhhaWD5OXGuRK+Cj/uehHP9BUN6Olj374eX4R1IGyHstex9/yPjKxwhd0T3WE88t/TF+BwDj1UaTRdVkV5y22JVYnskzdpBRKfRHQkxg+PH9jjwe+k+Bl3vY9WgvpyxX4Q2Kp0SD2GkZ2vvQPuPqVPGguGD5YZ3Oi+duobwGzztgB8oty5Ep1HyLG0XsdX/z+RLzWEZXvIjlPn7LRvHXSsBbuo+fEgiXE+TBlwT9j5ZqNaR3h0LP/VHA== 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=Pxl8REd7pjZ/pxg+5RJBiZwMjGvhapxp0OyAm4Ema5Q=; b=gYAq5oUu2gxLN6Z1XQeCmu3pfJlpVa/u08Qdm12QDGwm7os3Sh2lJ2vDkKqYDzUAg6/oGaD5WO8ndpX6XH1PLioyt79AP9BKzGv8Yd6CIxwjAiog8Jv3Ml1zje39ZFiHH8pJjcLf0zGkldjS5zm7grfJGgG0WTJdGU2FkmM/MVSQsq27eM7zhfEUBlxnG1iGxyabGboA1OmV/n68FyclKme1dbrsJTK8ZR00hdRxAnag1lQGuf/L6qs33DBXLiV6dYrsKX9/gEzyI/QNR04s5O04FPZpaI1FmKmkOdTil1Ky3PBtCPJIpetqWolkgiLtnv8Z/skxT3t0mhATRTvhrQ== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:36 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:36 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:07 -0400 Subject: [PATCH v5 11/17] treewide: remove folio_set/clear_private() usage Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-11-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQBPR0101CA0184.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:f::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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 82f64fae-83d2-4850-ed32-08df178809d8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: xoUJ97aMxh2RIKe5uUm2PKK0IzHvTsvDTcvmgGDWr7AMvx6Kh93LtMp8efmHMbEj7Oht7ehD09cdnK8HSyGjqEK52LPGs0bkODBb8+xk9zrR5n/ilmVfC1BFV0XOgORqC7eXtrReofzWOlIm+2c22RNHDD55276NKAN9uOnkzWBa98jgZGiDmdXFygqaciPZuYxiQATKue23/BS/tWl35OxyKDa+nicdCRAmtkA6Bx03kWkoTMH9AQ2SQxmgM2Oo2L6l/b6uzN4s4bgdtV9xL7m2dj5334YEyfkgBSnIfMl7CHDBmuWBz5wDhLJSZILXo7rxLyxDIh+fVpvC43CHsNdCS+0M7WTkg6wB3c56W4Ju0iKYXP36keTqE2GujB+bb5ZVT74IKvhZjfuQ1GKXhtaybVxttI5WJ1hpEZlZojI0ItXM9xmMGEdQSBB4bdwTaFaW7Lwv/vXAWeRP+LXnUAlLV0PtXZgESLg6o0LSiT3GIs5lTmE3DPU4yHaTkbVw3+x5Z6L7hCadqsDwh2iSSdvQ87K0kN8+dpgbvG1QtLMl5xqV7p7R8zF4cxrqVdeZBGXhrzm1UqIINaUmc9tNPYmDqCH87VtHOUUaVzl7agir39hGLklJGxlptBYkZSpywDsl5ckd/LFJt4dktuY/+1LwMe0pcBmGAgOkKNdjXT9Pi7dJXTfUnU9BdyAjvROUv38AbLK/oKb2zijgB3lrUg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?MXNPYkU4NWJTNGV3MVE1bXd6OStzZE54b0pHZk9COXVFUFZ3dk14YjZsL1BH?= =?utf-8?B?Yzk3T2FtVSs3cXMrTDd6ZEVibHNmZS92TzZYOGxVUEdsQ0JZY2dKcUpiV2pP?= =?utf-8?B?N0I3S3JwY2JlUmV6amROdGZGemlpalAvb1I0NEdNNGlTeFJ0eis4QUZkQzBQ?= =?utf-8?B?QkszNHBQRU8rNlNXSlFHdGNCQjNucnRwdzFxbml6WVN1M2h4REJBU1V1cS9Q?= =?utf-8?B?eXJiNHowdUJkQ3N1L09TbFgyTjgzaHNWZmhqUzNyVHFWOFFMVUVqdGhJcHMv?= =?utf-8?B?T2dUR1N0anU1NzVUNUpZYjZ3eDBmejluM1NxRUhBck5lNTJWbG5FSURmNWt3?= =?utf-8?B?RmR3Nk5RbnZidXYwRGpxcWdiVzgyMTFpb2wyVDdNUUdHQXA0TFdTNzEyTEdV?= =?utf-8?B?Mk0rNnhvellUZjJNUGFCYVkwZ1hhSmRSL2plYUZkRk1nRkUxTGEzVHBiQW5Z?= =?utf-8?B?eElxaFpPUU1nWkxtbjRTWVQreGJJRUFxMDQwZmVORU5zbXVrQ24xMXFqbFlN?= =?utf-8?B?NXoxbVo1aEdBdXQ5NTRNVTkwUktYMmdrdmFSdllnQVRYRHB1RkJ1U3pyV09n?= =?utf-8?B?Ymp5SkJoeFF5a012ZXJLMnFnMC9xTGEyZDJ5a2VMa0x5RTQzQjNFZXdQc004?= =?utf-8?B?aGV0REtDRHhzT1FkejA0bzVPRERneXMwbFc4TFBMYmxpYzdsbSt1Tzg2YThv?= =?utf-8?B?M0lhb1BHdGNvbFhSNEM2VUZFVE5QdzE4Y0U4ZEVBemFWU0ZyUWlaci8zdm5W?= =?utf-8?B?QndjaUVKYVNvWXZWd2g5NjFDSmpGalMwU0grMVZFTWRIT1IrdHFZZmJKb08v?= =?utf-8?B?Zy9VeCtWY1BiRGlHMjlETFpIL05MZHBwRkJsZ2NsdTV4Zis5ZWk0R1BJczJq?= =?utf-8?B?K1ErUW5GSGtBZjEzMzBKNU5tVklScjFNZjVVa3hYQ204UG1nUnlBaDFtSEJq?= =?utf-8?B?SkxrVEh5SlNKbjd1UHpnQTJ1eCtiUVBpQi9Fb0NrRW01NThOZVhreTF6bWhs?= =?utf-8?B?djI0ZWl5SWlXVzcrV0J5UEVGekdVd0JwNGZBN2xnaTFNUi9vUlA3aWxsMnFI?= =?utf-8?B?TTBidUNaWXg5WWZGZW9NL3pZRXc2bWhjUHIxUXV5YnBydVhUZ0JVbjZ0dzBn?= =?utf-8?B?VlM0NjhPU0xieE9ZYVhpZGVTeXVUNkFuajVkcTFrbWtXdHVGZTRVRzdTTGZm?= =?utf-8?B?QkNNVXhFc2s1WWE3NVZsLytuY0s2SDVjSkcwM29iZ0RHcjBLa1c4YW41VUNO?= =?utf-8?B?UUV4UDFaamxvTVR3VmFwMXdyZHZMeTl2TUJUc1hFMEZxMDI4Ui9PeWZidkpR?= =?utf-8?B?TEZtaFI1dkdxSHRCQVk3cGVvWGVXVU5yNk40b0VMa2p3akVkTWZQbU9KSEVH?= =?utf-8?B?Z0k4bTZFaDVrdDl3Vi85SVZ6Y2JRQncxUU1TZDU2a1ZxU3JBOWhXRUM2OWVn?= =?utf-8?B?T0VGcncrb2JqN25qb0R0V0ZrY2RTRDJCeXkzTkc4STFZWkk4Nk55TVNtOTV6?= =?utf-8?B?MEtmV05XdDR6Tm5mc2E4TGgyVFlSaThRZUs3cTMwSGMrdVJqR3ZEemJTVlgx?= =?utf-8?B?NDd4bjBrL1U4VjBsMlhIYjBmVUVCcEdZdDBKUzl3QU9RcWg5SmwvaG9MZHBm?= =?utf-8?B?RHpaWHFqNWJ0TjdLSDBTZ0pUS0RHM05ENDF5SVI5cU9qWDQ1bGFMZmlSYmc0?= =?utf-8?B?L3dnQ2twME9zQ2JES2xubTRJUWsvWGlFVHJwMWtUSG9BZEJmQWJJVFhnNDBy?= =?utf-8?B?SE9MRnN4Mk9uN2tmaU5LMWRxS2pBNkY4dXBSTVBHZU5YN0RCUHZPcm14U09U?= =?utf-8?B?UmJ3c2lOUi85WEFRbjlQTVNoOEZ2TUZvNmlocitrYllRMXhmdURhZjFDdEhV?= =?utf-8?B?dm5UM091SytIU3dLVGNvWVhycWdaT3gva01OR09RbTBQVTE1MVRqQXJVUU5r?= =?utf-8?B?ZCtuRzhIQlNpSEUwd1dXWmV4ZFhYMUdTb1A1N2RTU0JzMDlrUm5wZXhDeVNN?= =?utf-8?B?UFFJMzUyY0Z6Z3BpQnVsNTd6djVpSk0ydVN6K0MxOFB4UFZTVVdWemRNS1pu?= =?utf-8?B?WC9SSnVLOWszYmdWeUpSak9sS20vUnNoRmJ6MW9DUU9CaXI2Y0NiUG5WSGFj?= =?utf-8?B?Tm8zWTVmd1lwUDF2Lzd5YmJKUHBRYlpVZXdRc253MjJHVnNpYnRMY1lIdWYz?= =?utf-8?B?ZHVzbTlTcndtU0UySWRHZW43MkhUaURRVmtGdzI0dHVhMEp1eXBaYlZwRG13?= =?utf-8?B?VlBkWFBJcURuZjFSWVM0dXhxeXFQYXFubCtOWUxNN05HanhpR0xCSHEydjF0?= =?utf-8?Q?V0mfDhb1og4q58h0T1?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82f64fae-83d2-4850-ed32-08df178809d8 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:35.9243 (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: b83UN34jkDAO4XkRsQUZ16SBpo6aWrfBosnW7a/Qx7jFhwsx7eyNWV5TxxsER0Vd X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 They are no-ops now. Remove them. Assisted-by: LLM 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) Signed-off-by: Zi Yan --- 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 1e3462357aaa4..bcbb0afe1a681 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 b7b92925a28c3..7e3a81f069744 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 Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 4B10A34752E; Mon, 21 Sep 2026 02:28:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957730; cv=fail; b=HTB9nAshlmzwUKBcGlpSirT5j0OCKYuEVCLfIeiMHeSRk21zsEBIV1fX5Vuz29zJ8mP8XMB4qMepOl2TYnyUFz6Htb4oxP9bxHVHnS7H86sVpatT23encWQhAC/v1F/rFlxbUQ2sU0pmDuPx19FngMy/jMLZJhIJxLAGSNw+yrU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957730; c=relaxed/simple; bh=cKhxfvW0j9d1HgCVXJDh9eTBtUyOGuS3GVNUvr6J1JI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=tgI3CsedvC5XWLR6b+gfEwnyZ0Sxwi8+b7/dt0wRjSWwGH2MW2A3Q5GfHa2qv8tJfIOrTqkPPBtgG0yfjXMIfKrsqVB/5IbT3ZITjee3nWZ2YwcXGbgx1uhDO6rFAVSwwjgOsKbiok/M8Y9N1eMkmmVbTnmkUy3SXkvAMI/RFNo= 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=Jfdyn+lS; arc=fail smtp.client-ip=40.93.194.15 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="Jfdyn+lS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QprOmjD6+8FZ5Kelci6St8kk0l4lqPvrv74lEMANtVg8F03bUaksvCUAfu4H8AHQGiv3q13CyzcK4sR4UMjEBVQaY4+QI1uTjHoTez9eXoJnzvFVsNy09sdFL+/P42XrfqmFqXvLExQJNsnpGz1Zg/c7wVZVVI4978HIOngQSm20BTSxJB6TsxQ5la/LYLkCgspVU27zkG54/bHUAG/dieifHkV4gKfkmuHRNks+rtDxqeVC4FEy6FAsh0fmO/weuCJsVg8xXi6KVXaCOwW+Fj3/8Eu4JcCDDkK1WsQ8B7U+fhFJ1xGG8b9OHkdWmNsuj+1TcG2kRPqNbDY6Jrhmyg== 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=/eTALpAQfzanx0Wt/brzqMsVsOXGlL8Z/l1Df3SIQbQ=; b=GUcb7xSu+xBRYJEOzDTzscPEGtekuJD+go924ybs5GAhYL1xNMEsJLugpLHz2ozW8f7g3QWrlRRc3/2+7m5yxp6H7lJcASIotrcz/y1LpJaJcdQ7kUUHPNX77qPTsAqMIBFjHAIyVJvq9d0RZDhl1mmoXl0t/Vl37NVX2HsN4Ij9xZ/cehbHH7lwE45+IVnpyjNGFk5OmvOs7BVWnQFZAIKzKAW/uLoOk6JNBrt/QA5Ku1uA266qIHbAZ1vJTOFNaEg5VDaQJ2Q5HFn62FyzKPLeP7WIN6E3Ywo3ISFcQq14USE1sm4MWbI1LZEfL12cxTFL6Ou1BFzTJRHFC0MtXQ== 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=/eTALpAQfzanx0Wt/brzqMsVsOXGlL8Z/l1Df3SIQbQ=; b=Jfdyn+lSZfdVz/dlqJi+CdesaoENFoft5bQVYS5FJ0yOSPgvbGP+IWVfz6RwnxTUQFE1imrAd8d6KPT/Dd6fnpKWSzNsQOLFpQrNay+MOb65oTjRrZFnvlFCi9p0XGLua7t587wu5p9So8o4hPqjbL6XUduRznTB99elQ+aEF7gFRyIZ5prtODNzvOvGCilIc0+jc7fN9EhhNrWOAHXpS35P9XlN11mYsTsE3NrjySyWy1CLXXeVAvuUId1+xMf7wjPrlNUpvy5aic9hKbgcUB+/35yS0YK+/VjKMRNfFSPG/TN5TUCpX1UsbnOzTt0+SOVrkAyY4lyNN3h+WIKUDA== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28: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%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:37 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:08 -0400 Subject: [PATCH v5 12/17] ceph: replace PagePrivate() with page_private() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-12-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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 , ceph-devel@vger.kernel.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQ1P288CA0001.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:9e::8) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 53474ef2-bc39-4ca9-9bf9-08df17880aab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: wET2D4KG6ONFhTf6tltir08ZtCTK+/xyXN9U8vx/bOtIy+eMfuUFifIUwk/Qwy8vPFi0glewsxc/XQSlqa7EXwecWcnr26bRFDKmnA7eBQRwB5hAh3D2gBJFts5ayTbe1cGOai+naJZKZH32FIgcbi1/Afw9L4/XawyLAN5MeSa4rEeACurzTCja9b08UNZhsJvmDrJUTQa60rrWepgvg+o7x9/Rq1wurQ0Qj0CXx8CdOLiE+8CdCbLDUSHPPh3cuROKyVENT65JXnhJgpWhfkPVULSAuMK0fWpernDeLzfhLuReqQJLd6pyhvG0lG7Uyzp8UfgVSq+OSF+syqlVk4SLPcMZMwqS2AB/H05gjIRIR8ZBv9z6JxNVGqC5El35bLAayx8SLyQiwnnOzi9VbHq/JAwFCAdcsPgMQxzCZPdhg+61xlYoB9tHaieWyzLrmd6NrZB1Byu+iEy2Cl/dhluUoaxru33BujIf+4+pqtM44uqRx/ES8eUf2IKE/ca6TOSFzmUOjFqU/7/2u/MgOgB3K7BHHTDsz8HCaxQr3+H3z2NPQZuLv370MlG3M3gd7qFcZjgfSgiuRsiv26OU6c5nwwe7YhnRVIOXprNSmza90UMFuDNbCrrUBLama6yIyvUovMNEAI/Bp0bVIMw4EVPEJVVUt6atj31NzuTontqfnDh/rcwvmUwuP9QSH9WzVtgNmZZlOTGChQ4q4xtuuQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?QkdHMnFsNzdtVGRDN0xGZkx5SE9XeGtUSnRsWVFUSXJjcjRqeC92QWN6ZGky?= =?utf-8?B?WnIvdEtkTEZtZGsybVZTQkpqc1Z5Rk1TSFBHOHJhZktyUWpxZnc0dVdQYWc3?= =?utf-8?B?VmVTemJwWGlGV1VWZEVQOWxIRkJqYXMxQVFkcVo5aVNRNjVGQUwwYmxONW93?= =?utf-8?B?NXV0Y2o4NUZNZ2xrZjduRXcwT2RjRG92dnVJSmxGMnp0U0k2TzRVZTlablZL?= =?utf-8?B?UWcxaCtyd3kzSFFxdHorMVJURmpyZVBJRW9lTTRaSXZzUUZTUXgzM1l3ZHlx?= =?utf-8?B?MUx4bS9qNDVhY3dOY04yUU1XNnBDU3NMdm54UTM1ZERsNWFFaFhWRm0zcVRu?= =?utf-8?B?NklzNjZVYzBMOFlUUXRGTW5qTTB2OXpPVVFUNEpPS240djdoQ3Rzd3pBRXNQ?= =?utf-8?B?Y1hpTVdyeG1GTng1S3VhYlNCZTNRWmJuSlY5c3pYNmJGRXM3QS93UWZZbkRD?= =?utf-8?B?Z0JpdHBqTjNrTmorbEVLaHhQL3JJMUJPMG5MaXAwLzJnMmJ4WEloRGwvSm5K?= =?utf-8?B?M2c0bW9oWGF6dmZzeE9LeVZQL2tZUDEwWERGSWIyQmN3UERVcFVTbTIvclln?= =?utf-8?B?Q3pGVTZvWlozMlZSZytSdVF1blV5RExXRG9WajVFMEl3bk5MRVNBR01Va1Rq?= =?utf-8?B?MHZIY2U3bUVmeVNyQkxXSTU1RjlHNmRVWjZ2ZkkxTXVtditpZERBRS95aThY?= =?utf-8?B?enpFdmNGblpET0lOcXN4SGt2MUU4TnFSazFhbnN1ZzJOUzdyd3YzOGJCSUtL?= =?utf-8?B?U1FzaEE3V05KYU83RXhUS25rY1k2Sjhvd0hZVkV0WFIyYmsxR2xnb0FVdjNW?= =?utf-8?B?ZjYxeVNQbHBJeTl4T2xhUCtpb3ZjL2MyejF4cTdsb2d1QmtOR04xczVvblp1?= =?utf-8?B?elpjT1V3Y1VuYnlpb2RQZDNnY1BkY0E2TTBXTnNVcDVqWjZlNDBrMTE4aE9l?= =?utf-8?B?UWV4TVQxNUZZUnVBeXE1YU53UHFFZEYraWtJSkVUTGNTSEUvdTY2cVZnTi95?= =?utf-8?B?YkNNOExibFlVaGRoRlMzU0FWS3NGZU9WSHRqVk9OcGY1a2l3bDFVSVdSS1Vy?= =?utf-8?B?clN2by9HVmt3Vi91dllKL1Q2TituQXpnQ3BtKytJWmN2cFBVN1pYYVh4dkcy?= =?utf-8?B?OXYzZUhRc1I2RllCZFpOVW5hUlpLd0IrVHhOOGdrUkV6aWhRM1o1akwxMUpP?= =?utf-8?B?R2tZV0ZBK3dOcWJ3MndnMGI0dWh4ZWhQK1YrN1lmeThpbENhUFMyYUpSdC9i?= =?utf-8?B?cmdxdVY4UEhUakJUTnFSelNJVVlhVitJUnUxVVkra05ZUUV0a2wrcEM4RWlM?= =?utf-8?B?eDg1YmNqcWpFbXVUYXJOc2Uxd3hIUW1Qc3lCckxYekg2OWlzb0tiYVdIVzc1?= =?utf-8?B?cFJEZVE4bFlPTWZpK0xZNjJDY0lKL3ZLbCtJdENQUTB2eWFZRGlrK1RrblJX?= =?utf-8?B?UzRlRzlLQkRybGtmL2d5aC9tSlJGUDFkVnRucmpjZUNtZVBTSjNqNE8rNjR4?= =?utf-8?B?dGgrbDVMeXRIUFFaUUdNYzM2dVU5RlVRTGI0bmMvRGMxRzZoWDRSYldleGVo?= =?utf-8?B?eVpjdkJCK3IrcmJ4TGljSmwwdWhLZDdickZyTmJZakJKci8xTFRaWVJjUW03?= =?utf-8?B?VGxRTGFyZGVPSDlmTDA1dXNCUTNSdWpWZUFpSnRySW8xYWRTUGxXSXlLQzc0?= =?utf-8?B?aHYxUXpDV2JPTm5yRDNMS0VIWjFBS25yZ1V0Vkh1T2wyZmpXRHAzaTJCT25Q?= =?utf-8?B?Q0lMVTBodDlzU21va3VZSWxxcWFTcitlSllFRmNHWE9CMTE3OFNlWGlXYVFm?= =?utf-8?B?QXRSRDBVYmhvWGtMSlBTNUt4N3JlQlgxWTR3QkgybmEzTlhyQk1XQlhCY0du?= =?utf-8?B?SmgraklaUUk4aTJ5d3NRbW5NVDVPQVBIMWlnQThXc1lvNDV1Zy91Y2NpZms5?= =?utf-8?B?cFBmS051ams0VldsNVRmeG9rUjhjYTdiU3oweno2SVl0RFhDdjFCNHdZSkV3?= =?utf-8?B?TnlJQ1NUSWtSTkVKVUNOdzh6dk5BU0ZWUjY4cFBjd2FveEFFckdmMGtqSzV0?= =?utf-8?B?YkVyaERoQXY0N295NzI5VFVDRXYrbW0zWml5RW9YcnRSbjFPb2lneGh0TDdZ?= =?utf-8?B?K0wyNnVOWGEwUUdPU052N3NKR2pWQ1g2emQ5MDNsZ1J2L2dTNGdZa2lYZVBx?= =?utf-8?B?K0NaTGxQYXJhNndVS1UrNUhPMC90YlpiZkoyVHNhZTU2dUd6NWdxQVhpcEhs?= =?utf-8?B?OFp0WmVyVE5nbE5hSmdCQU0wS1dzUldBZlliUXpFQVc2eWRGRlZvTUNCUEg3?= =?utf-8?Q?ezujp3QRE7CX6nn1NG?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53474ef2-bc39-4ca9-9bf9-08df17880aab X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:37.4031 (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: HlxwPal1CmgQHNJg4LUJt9lfQ76mTkTAV3Yn1jVoekJv/G0r0Pg6Lmq3HmoUhaep X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 PagePrivate() is going to be removed along with PG_private and its implementation is the same as page_private(). Assisted-by: LLM To: Ilya Dryomov To: Alex Markuze To: Viacheslav Dubeyko Cc: ceph-devel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- fs/ceph/addr.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 657c2cb0f8811..1aca181d28c62 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(page); } =20 /* @@ -124,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); --=20 2.53.0 From nobody Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 3FD9E32ED34 for ; Mon, 21 Sep 2026 02:28:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957733; cv=fail; b=sZhmgEPKmaoFAZcFWiI3p4Prhqxq3IyvxITHSAJPI//i6cblfbq87oxu4MbGCpLUtSO2HzU9fZCzA8EhNCpKCv8uTj20HZfrzCPH/xf/lYVU1SNJ8AF/N+yhTXr4UDL7ahSuwU3Ouk6+9LOXdX8wHZ5M0JDtbuGyu649z9orfMc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957733; c=relaxed/simple; bh=98ppkcRxpPYxN4tLA5ae8DmkBrn/DXw0V0XqNft3ia0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=SIAKoNeczkILwSOjBtR6vLe4FSiGK8EVTzDoNAYWOQgl5l4VsO2gXS9rP4khHB1wyWFZ9C/o8AHd/SRDZUI7MUd2pQczPrv6XMETVLfunlKXRrV8cQRKBEyIivQ42KEL1A4StvMMk1mqBiMq8zbLoiIOGI/ONeq9t0+SN3z/wtE= 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=RErGXx2q; arc=fail smtp.client-ip=40.93.194.15 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="RErGXx2q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SpVpd2I7wcSkgDHVOHVdWMKFZTkOdXe4rxCJ2c4hK4zpM/1Qtx+Fl0pzoZ0F7fYp7t9AL0hDVRdOPtuRu+n+TwJq3og0zflsvow5uPI6Knf/yJBWrfNYT7URurGX+By+x9dwWvz8bmClCsZ3ZXZqXcZWWSlgFv88IURhLf97IHCggl6oOv0RzOVcKJtnrZIVo4iqGPJ6Fsy+kV/VkbbMjVlReLWlEPa1Zdd8IpPASStzwKxP/tjtvnus1rvjtjwKCc6NlvNA3U1Bx0+EmYZtoBL9/fyhL5dYSp5eymexRU8Vv2dlbRKuqrlMGYL4ejStBRxJDCoiUkijOHpg7yw1wQ== 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=epRe8Wb/VKepFvI1bc1QyHqXCP0x6YAf/z95FZzFzRI=; b=HzfCaMFSY2hZKIhyWbbJCsCvxGNO3ag/QOVHns/O5mRGtk98clHe9/8Wf+M3XWGI4LuU4g/3XWw1EVPEWK9VmiNju0/lY9Kp4RMSnt1Y1oxCQIjtwNMxDok3RdQDWlGZ5voBgbRwBL+6jqooPaRnMNDXNtUssEQofYkwuWsVQz2+FxIxhQWyFIZqSJCkrLCfQioQQiexbleIY4yZf67vQi2d2725UCtjnZ76NQhrYXcCRvY2/3CK981zejD6JDsqYbQl9epWiG7nmB38ryRjHo6yUC1BYWB2ejuBjyjSLMbj03Uhi244eXP3qUMIca5o7r5lqTh/zhAILD9J31Y/hA== 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=epRe8Wb/VKepFvI1bc1QyHqXCP0x6YAf/z95FZzFzRI=; b=RErGXx2qUalIYpD7HDRz/Z1mAJMDhIEKVPLyUEeRnp9Io9+54tEync5I+8bdmffiAFSk6VFrNCuN+xsJB5DqqDmb4Uhv+b+FcG2LGnv3kntW4vgJCUocAAGfR2KQUt9R2HremSgj65U/I048U2Ir1Oujh54bNcFV8lyp01rK0XMl38+anFUqv2DT6ss2xtR3tbp+zCU9VR8g47VRKRBAwR+UpULwzTqeoxi9nURsoHKBrw6qK6PygA8HyiXbixRwHiaIMxWgbPHkCVMNe3NrlPEB0+ypbFlAG6D95l1XNgd3bBbkUVA53lEbe7Cm49H1PrnR/CrKiNACxGNgeHyTBg== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28: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%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:38 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:09 -0400 Subject: [PATCH v5 13/17] md: Use folio_alloc_buffers() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-13-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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 X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQZPR01CA0030.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:86::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_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a4f9982-132c-4e80-ffae-08df17880b87 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: NeueTMIl+Tu+DUgRylNKhpUhVxRcc0i1fppg1RZdH9h7UY3AehifAZ2MMG0FNgPgT1r3878wja52/Bf7+ICeXzANkFBoy9XnfIVVnVyYlrqKCD6XA9Sb/thg2bF/NUyd6bNmX4MuyCqDnn+y2yRRFroYlmMyo39qra6h8lsS8QbssAsqijHgx7gQ3TH/T0Va/TC1m2QzR+EMCyc9ZKTNInivyQsQpsdPRERq4CkKfwI9aibdljVvvhE2E73wFVWy4GWwEfj357OLX392ZvKFndqyx8UZo3qg6sEPFsG0RyLqR46ZmIdjwIcOvrZkzHt/09Son7z2ujtVqQMkUyaN5EZg4G5DyM1ZVdNrp89lDyf5LUHQ3F/hNvFVgVC6MFDYXuT/6FtKhy/CsWW43KrPXxcT51RhJ4QutJp2WOgEnv2WNXm2RGsqDybjRSCklpaPccZJ/3cZpYX04gJ2BL3W4kziCc6c8F8dcsVjWP08NqzBFE/BYzKaDzarYNHQD/4VSNIjS6gVNsFmmDbMeTn3o+gZbvGHTAHv/yMivkWPMEzp2TRqna8qc4+DzopZrfTZrAucXehYTpVx7tBmge4YaYIQva25/QGs/ayreF/NtLIDskeXrrAj9EPMBqFxax4NG0RQtllPzmL0fRNxKAcKR45oiVbQaQFxoG++hJg3Iir3f3Np8Qlgv780z1OKqAx6q9fG20Qc2HHpSCDkfCLKPQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?RHBXNDh6WHQ5TTgxT2VWa2Z4dWkwODFUYnNKa0tmWjRlOFlIWng2bnRPeEVz?= =?utf-8?B?Zlp0WHpkVmNMUzM3cG00VGxsbG5BdGNpV2ZPbmF0b2ZiTWJBNENibWlVNGE0?= =?utf-8?B?VGJFek1hN2h1SmY1MlNad1FBSHk1Z3JhMUJvTDNJMW5FTkR6VzQ5WmVuQXcw?= =?utf-8?B?ZUc3ZmNHbWxpSm04VUNxUGxYcHZCay9SbnlDbVd4Y3N5a3BwcHEzcWJYNUI5?= =?utf-8?B?SVdYQnFPcFg0RjkvcmtoMWwzZG5mc2dzSlVac1o0WUN0Y1pYUEgvL1p1RzVr?= =?utf-8?B?TStLN2xGbEM2LzRZMm1sNDNLZFFXS3FuZnlPTWpnZ0x4TEd4eUFsOVBqSlBX?= =?utf-8?B?NkRvTnE3M25SUzVialB4ME1udjd5VUhUeGJrVlZQVHVxQ25yam5yckRYYy9V?= =?utf-8?B?Z01vVTJETzRFcFpueEMzRmFraEtSaXNkRlhmQ1B4SkRXNk5UUHBCYVBLenhy?= =?utf-8?B?VW1pVnh5cmhmTjducFJJT1ZCVTA4RnFTTW1taUYvRGRFdm1WWFpLbVZ1Tzgw?= =?utf-8?B?TG5zZUFPT2ROd1lLOGJVQ0tGMGdwcS9CcUt0Y3k4aHBUTGtNNzBrV0p3cHBH?= =?utf-8?B?ZHJQQmF6WTRsNTNMcGY4MU5NWlJzMnNSTzlwOGlmWXVOMkxZQkdJT2RBWE8z?= =?utf-8?B?NWh2VU9qSHdSQlNTcDZEQ3R3ZTlUSXl1MnRncFFGa1c5QVVmRGRybGxnSkxq?= =?utf-8?B?bTJUS043Z0RneHpuM2dJdnM5Y0p0Znl0cFhicktGa3Z3RWJIOE14ZHVMSFEz?= =?utf-8?B?ajBEUXc1b0E0ZDRjb3N4aUpQMVRxaDNSSVYxd2NDZkZtRm0xUzNoS01Waytt?= =?utf-8?B?UGptMW4yS2s0VlJPMlNVUDBkZFBvWXBMbkU2a0dFYXdqUzRvNDlQVzlQYWhV?= =?utf-8?B?NkZxeGs3czBiN2wwVkNLUm5lSVFjUWlvbU9LcE9FdlJMV0hvRW5kcDB3NDRx?= =?utf-8?B?ZGlXZy9OTzJwQWEvaTFoSUNQRHRzbWQzR0xZSUxaN3Z4NmhZamw2ZzFpTnhz?= =?utf-8?B?L0Y1cVVLRDI2SGV3ODJoaU9rTDZIYkhZazQ4NmNSVktMcUxMekUwSVB6U2Uy?= =?utf-8?B?SFV4SkVwTHN4bXVHZjBBMnBwZk9LNStYT3Y5OFIrbFk5WTA1U3pkQTBwV2JZ?= =?utf-8?B?b2w2ajN3djRITTZkaWNuTFRPMXl6aWlUTUZnT1Q3R3YzQzNEZ0pZQU9GZFBt?= =?utf-8?B?UlByKyszVVpuS3J3Yzh1TjBhMmlINnJaQXNoTDJ0N3dOSElzdHhDMXdEUS9C?= =?utf-8?B?VGdXbit5b1JoVjVzMjJlVzREaGpuZXQwUlk4Y0h6RUVRZmRqZXUvSTgwVXhX?= =?utf-8?B?OVgySXp0YjU0UzQxVWFGSlJrRjV0Yy9LOWRDYm1pbFdraUQvTHhDd0VhKys3?= =?utf-8?B?aVFCNVJLdVU5V3ZUcnptM2s5dU13b3VqS21TT1lVdUcyYXFoMGlZai94TjRW?= =?utf-8?B?a1BIc0k1U012VnNPV0E5OGg4Z1FKakVKWkgreEsxVUd3cXpMWXI5VWJZR3ZH?= =?utf-8?B?LzZpSktCQnlXd2RVUmNzZlhOd0ZiZUt4elpYN3h6OVR4dU1QRFZ2SkU5dC9V?= =?utf-8?B?VjFtaEl6VTZaZDVJVHdwOThlcW1CYkxvejlHZUNEdmpodjBkblFNTzAxRUVP?= =?utf-8?B?dE1tSmcxUG91dkdGblRuYTZ1dVU4T1J0T3h5ZlFReldrbG53ZDZHdW1sL2ls?= =?utf-8?B?OTA4bFhQeWpTT1hXZGx5ZWxLeHBPVFZjWHZ0OGZZdklRZWVuRGVlckk1REk4?= =?utf-8?B?RGcxdWpSMTNwZjdDSFJYYnROTFJrWGh4VXlITHEzWTgzUUFBbGZRcHhoZCtG?= =?utf-8?B?cE9Gb3BBWnVBOVMwM0c1Z2pyeVJhU2hiN3Y4R0h1Y2ZLRU0xNEt1Nm9YbUZq?= =?utf-8?B?WEdER3Iwc3FhY3I0d0JyYXh3NGdzNndzeGxJcS9YbjhCSzBTOFBieWIzdC9w?= =?utf-8?B?OEgrR2ZMd3RDdWo0Y1dPOUdVSWY5SjFBUEo5bU16UTVkS2MycHdHRkFhZHhL?= =?utf-8?B?d0crU0pGZEhqS01ZaytCK2taRC9kYTFORFM5SVZ4Ymd4c0dNWTVjak1LdWtK?= =?utf-8?B?VDhYY1U2UURQQmQ4TDVNT0tTMEo0ZDBSalZNNW92NU5hWHFQd2xDaGowN1Mv?= =?utf-8?B?ZDNBWTVzTzQ4eFpuMTQ0UzBnR2RBais4WTVTYnNZcHA4NjJ4dUN4V0ViK0xt?= =?utf-8?B?bkh0Wngwc2NLbi9VYkptL0dwSTBnY0FBODZ3TXJpV1BoOFlHVTJSUW1Qb01O?= =?utf-8?B?TDZvdE1vS1RwaUxveWR6RFRMTDZ1dmZnSWw4OXg0bEdRb3hqeFVCdUdTSEc2?= =?utf-8?Q?pqv8VEcxAEaDk2ipjE?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a4f9982-132c-4e80-ffae-08df17880b87 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:38.7444 (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: jElr/b3a7eme6XyAqmEl+5Vef1Az2qPc/0WGM78loV3ZkvQCEhaO8Ljv824fWjRB X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 From: "Matthew Wilcox (Oracle)" Remove the last user of alloc_page_buffers(). Use folio_alloc_buffers() instead, since alloc_page_buffers() is a wrap over it. Although the pages used in md-bitmap are not folios, as they are not mapped into userspace nor enter the page cache, but they still have buffer heads attached. Cleaning up the code to not use buffer heads is future work. Signed-off-by: Matthew Wilcox (Oracle) [reworded the commit message] Signed-off-by: Zi Yan Reviewed-by: David Hildenbrand (Arm) --- drivers/md/md-bitmap.c | 5 +++-- fs/buffer.c | 8 -------- include/linux/buffer_head.h | 1 - 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index b8325cb09a371..5f1637f974c15 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -560,6 +560,7 @@ static int read_file_page(struct file *file, unsigned l= ong index, { int ret =3D 0; struct inode *inode =3D file_inode(file); + struct folio *folio =3D page_folio(page); struct buffer_head *bh; sector_t block, blk_cur; unsigned long blocksize =3D i_blocksize(inode); @@ -567,12 +568,12 @@ static int read_file_page(struct file *file, unsigned= long index, pr_debug("read bitmap file (%dB @ %llu)\n", (int)PAGE_SIZE, (unsigned long long)index << PAGE_SHIFT); =20 - bh =3D alloc_page_buffers(page, blocksize); + bh =3D folio_alloc_buffers(folio, blocksize, GFP_NOFS | __GFP_ACCOUNT); if (!bh) { ret =3D -ENOMEM; goto out; } - attach_page_private(page, bh); + folio_attach_private(folio, bh); blk_cur =3D index << (PAGE_SHIFT - inode->i_blkbits); while (bh) { block =3D blk_cur; diff --git a/fs/buffer.c b/fs/buffer.c index ed966fa73b1ba..020af5dbe2d05 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -773,14 +773,6 @@ struct buffer_head *folio_alloc_buffers(struct folio *= folio, unsigned long size, } EXPORT_SYMBOL_GPL(folio_alloc_buffers); =20 -struct buffer_head *alloc_page_buffers(struct page *page, unsigned long si= ze) -{ - gfp_t gfp =3D GFP_NOFS | __GFP_ACCOUNT; - - return folio_alloc_buffers(page_folio(page), size, gfp); -} -EXPORT_SYMBOL_GPL(alloc_page_buffers); - static inline void link_dev_buffers(struct folio *folio, struct buffer_head *head) { diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index fd2c7115c0542..6ce2db05c60f3 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -197,7 +197,6 @@ void folio_set_bh(struct buffer_head *bh, struct folio = *folio, unsigned long offset); struct buffer_head *folio_alloc_buffers(struct folio *folio, unsigned long= size, gfp_t gfp); -struct buffer_head *alloc_page_buffers(struct page *page, unsigned long si= ze); struct buffer_head *create_empty_buffers(struct folio *folio, unsigned long blocksize, unsigned long b_state); void end_buffer_read_sync(struct buffer_head *bh, int uptodate); --=20 2.53.0 From nobody Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 839C93546EE for ; Mon, 21 Sep 2026 02:28:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957735; cv=fail; b=WtyF8j+XL4STzY17yvzRdIWNEYcEZ242fEZGGYoFoYgN0DcTiqDVmJKLvPrNCONfoC6Mx04j3xX7kdBDf96BOeRjI17KYrMmeqPRHmmQEUUSGSdXiBg4gCN9vcI8n2BswPz94PDvN50NWdzrP7Ikpv6whg6Cj/lao+xMqEtZptE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957735; c=relaxed/simple; bh=6/zBxdVAIbW7qEPFy67GOECm4YJbcWO9haEWCetgdgE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jRu7sj34znLU0hwyGqYbjqXoKwOS8j8EpNifMvzpI3eC3nE3X/zEbCr2DIg3Ojw3GnQfLrpcbCuzecNTyz0L24I4KsNlWB+VrrRPcDjrKFH+3ILPqJ2Ro7lK6NBRmdtAxboI2jL4/7ySfPca0oLiXObuu2DBEy1EodVn4x900EA= 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=Kn1AIeH5; arc=fail smtp.client-ip=40.93.194.15 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="Kn1AIeH5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l8A0LP7rrxEr4foktBaQOQcyW4b4jCdj0VH8HFnMMy9CJNvAiDgtjFFqZzpArjpYKxq0ypTV2W9YCwHFxLNDhcOCm3jPHASonomWHRKfy0i2r00s+Z1VMrZCQGQteKrQ09Q/4GbzhF3t8r7rHvxc96p9WIWgUuqQ97R715V4wPhgGZARHJccq6TMrQPiUO5NcjG6L6d9DoM78ji+zjVNv+VsdgUwhk53RO8eYJwZ/d2KCFuLBrYRm55jtb90FoFsjqWgF/r3p9eHki21vcriwjQ6C+X+VapP0guiuqgakAZ+7z/dYBaD19WsnHH29EnQ6X3be/3LZTN8bpkSF/XCrQ== 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=01Xi6R1KA9yPUANeZFsRKhpXHuMdsjB8C9yKA7zgBeI=; b=rYHgTYvTur95cjEe6M/SmL309OGBMw0yFu8WBNtoG0WeUJZphI9vuseHXqcaR1WGRW3I7hKVfDLv4+nZo+Muu2NO6PPMBg86u8SY9TD9x2QruAj8ojKL2uK6evoJvLXIpIaLe1vt0nb02Ucxxg52h9vaEbJLD0+EzG6yMSHlF79V60Cas9bebCGDtSfGesaBH5yoWvUEAj5xVjuDEpS8EuBmIpZVM1yChG6w/Cq4PvWpK1bF6rbD/yGebMBtqAEmXtoOHmC/o1O7UXDdk+37BL7NmcconU/dhdev582y6uP4QM751ymMwvKoTeL6wCOhRjpA7DF2WGy3Mb7X50QCpg== 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=01Xi6R1KA9yPUANeZFsRKhpXHuMdsjB8C9yKA7zgBeI=; b=Kn1AIeH5OhP66rgsk3J9NRWcWRknQu2h17z0xF9LwpPKYhhw9zL1eL5hP7xCWZzWuHfPS2nYeKcYrUsVlM/8xc8gg7oyciRImCywiGCexm5bJdSPkVF0yDI0ml9vzR6pw+ZVJuk2lludvSZTS/wF+6IHLZYdZF3Y7ApyEHmAtPMqiltfjwFuwfcvK6UyA5GU50pQlvDacr547qMAWFiGa6PYx0vxCFxzvRNEo3Izx8733eQ0p+tleb5TSbDav1aPiKBQYngKwfId0OACelHXtwp9mQwl6Z86SeteeHJX51b0e7vf6SJ+7A6UVhz2eJH/WzWTstiJ4xQCU0TKmxCS/Q== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:40 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:40 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:10 -0400 Subject: [PATCH v5 14/17] md: Use folio APIs in free_page() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-14-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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 X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQBPR0101CA0288.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6d::8) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: e75a13a0-1881-4c5b-07ea-08df17880c90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|6133799003|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: FwvStbiV/U2aMo7YPDHnpXxWTKiAbUXepLmyyynHSGVygupOh33yyOOEZL4YNp4/kE/UQ4QusDnkfzRNM4XLtVu8c4msR7r11dFh3OYonFYoL4/XJLwX+6hInomZEZzxelCpiIMQ451jDU3v3tQP2aKGUam45JGe8PV3jrYvKsgkkyAofvMvGCLoZ1nyJ1JTbCuA2b+ZJau8YjmGpIYUWvqKHFhEOGr/xLOTpbtPVAWlH41xMf4xB/qWY+6zF3NrDStTdq0YjgPO/wRDchz8tTUA/+MxMZrn2+3XdMevxehAVvkSKuI9VZIDbOytMQJe2NlY8PbrMCMiBiP535ZI/1Xy+YrBLf489tC/K+cZIsnDSbVZCMYlp8Sl45tUzspXD67ePEHX8gpkFCwffKV3zuOONNykQHvSGaCJYHaPB2B1F5IXYrNpuYrv4i4LX1obvAxSch2vhEPcUSdQgWrRdk0xWxmEV3m9q8HEVVMBwJ7nH+9m6SMJLS/LCen2qq+UC9dcJ9zsT5hsFTHQ4z27G2Fsm6hLoMPwtUQMLclnnM5+6eYdjalvW9j3oOV3lnofEspEsKnD9EMW6ASw5/7f0Jhwwked/2Fhb+VrOBp0r7xzlG2kbwXXgPOESMC4lEaQJJQdJoMxHfUA98ACCLjOx6mvM9lPElwr6V5D5ikk0TBswnO/k43S6d5CkNu4XF8RL59KOo+G9nc8/0SIhiXrdw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(921020)(6133799003)(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?VkdLc2I0bXlnTFF5MmdwbFlEcnhXQWw4YzdUYlZJTzZEcGpIdGpOVFNzM3BR?= =?utf-8?B?RmxTVXUrWjRIQk94ZGVLQ056U09XRXFtN2grb2hYWGVxRE9IU1BIYkhFczg4?= =?utf-8?B?clg5MmFiMTVITDN1VVZYdTh3NXpZdEY3ZmF1VHZxZ0FrZmRMU2JGTWVnbVlX?= =?utf-8?B?WjNGL2pXRnBOdC9aZm02ZENKc2VxSTNQQUVYWG1CWmtKVklyR3BVTmlwRjAv?= =?utf-8?B?ZjRUa1o1SVpFY0cxMU1Bak5DdzJUSFVhMjZQZzB1NXlQRGlGQ1NoSkVlKzdP?= =?utf-8?B?SWhzU1I3Ny80WG9BL0RHRWcydzRjMTZGRG9UZmdCS1ZBakpNczJQS0p0aUVL?= =?utf-8?B?VUVxTE9SRXJRQVgyay9lbjZsRnBJYnJzbFJ3MmRTeEoxZUVlZWpWaUlXbm5B?= =?utf-8?B?R1hjYUtIcGpkZHhXaVhiQ0lGL1IwZUhheC9tYzhKTjM3OWR3ajNNN2VFWFgr?= =?utf-8?B?aHB6SHNnZUNBREc5c3Jud2drTGFRY0xiOVp6NTZ3bFVIOXBScVZIOGFXalNG?= =?utf-8?B?QSt3TkZwNDRxV2hWejhvVHY1MTQwRXlyQktRNGNRODFrSERiSDdwU0FJRTkr?= =?utf-8?B?WWxkcUthZUVXQTB3SWxFUEFuQ0FKbXVya3hxWnB5eGwrT2p4c1V2Q3RkOW04?= =?utf-8?B?UTB2N1lQZHo2R2J4M2JGRzdrZVBoYTZZRCtLT0F0a3owZktVRGFSVmdvQXRE?= =?utf-8?B?cEZJTktLdENxaU1GTy9VNGlaSkVqOHljVzE0ZEJtZVNkdUErbEl5QW8yczQv?= =?utf-8?B?MnUrUVZOOC8yWEJZTXYwMjNJMEM3bWp6UHNobEdWQ3F3Q1F1S0dpeFpHN204?= =?utf-8?B?c3I2ZW9STCtiUWVDN09uKzdRNHUrSmRpemhDK3RPVEpNN1Y4MzZhOEFSY0xn?= =?utf-8?B?YTJGZ05qME0zRTNGcjVvaTN4Y09wWENyYnU2QnRKcmZtcWNGRGxCQ1h1Qm5w?= =?utf-8?B?OWxaeXptK054NFRlaEp5OW5pU0p5aVhpdnEyQi9iZzNQTHYraUdzR3E4SzAw?= =?utf-8?B?cmc3a2haSm1hMGpmdmxQMXlTdGY5Szl3dkpHVDdGbDJZTzQ0b0RhcUJOeVZE?= =?utf-8?B?M0hyZ1lsTHEzVEtXNG1NNXI0OFRzc1NKNUNuMlhXZUZlcWNVSXF2c1N6N3px?= =?utf-8?B?V2tNeG5xOElBU1dQSTk5ZTcrRGtDOVhJLzJ6c0J4dHJsL0pVMUNabjAxYmZ4?= =?utf-8?B?SVlvK25aUnRLRUlsQ25kSTgwQ2hEVmxaNXFuWU9pWk43QXVxeHpXZ1VxREYr?= =?utf-8?B?dkhWUHRlSEJEYzB1MUxVYzBvVTF3S3AwNWc2TFFESHVLdGFxNnIzaDdyU3hl?= =?utf-8?B?SytOWll1K010YnM2S2oyVFlVSFQzVStCVmxTeSt1VHdzSXpDcmVCZHdRQk1n?= =?utf-8?B?QnY1d0FOUWRVSG1DRCt5ZlBFVWlYWGZFTjYzYy80Z1NycXhqVzZKR3hFOHpt?= =?utf-8?B?VXhURnZqOTBLUlFtckkxSGhsakF1K0xTWmlKb2UrZHhLZHVTWTJFa0VrNDVE?= =?utf-8?B?OHIyVHNlRUZiSVdKeEhBc1V4UThQYlFmb0dmeCs5UEZWQ1hPTmR6aENoSnl5?= =?utf-8?B?UTlQc2gyQUcya0hxZ2I3OUVVRmtIWDZOQ3l0YmUxUjU0b3NMT2xtOURvbzg3?= =?utf-8?B?NGxkc01aUFEvZUFGMWE3OHo2QTg0M1NYVWVvbU41MzI3b2JtVFBha0hNR0cv?= =?utf-8?B?TWlWUXFLelJsWGtnNjBXdTY3QUg5M2h1ajljOC9sMUg4SC9wSlphbjZqdlR5?= =?utf-8?B?bVpBVVJOQ1EwVHVkSWxrcWJyTTlzeUhoTWZXVGYydEVDOElhZWZzMnhGWk5E?= =?utf-8?B?bjVsbUJlV0ZOYUszZ2RrdmwvQ0RzWEM2d09KTHBVRjJPcXp1K0Z2Ujh4ekZX?= =?utf-8?B?NXg3d2Joamhwa2ZxRWJwWklpUnVwelFLRXZFRGwxOU1OTUF2WEFCYUptWGtG?= =?utf-8?B?ZHNRU2ZGS3VZZmJIMm1sVW5GdnJLMXFpUE9YeUZnclM0VUduQkswV0lxNTZ3?= =?utf-8?B?TGd4bENsa0NORldqelk4Zk5kYlhqQkZVVm5SeVU4RG81MFczTFNBMitGclJm?= =?utf-8?B?NERmNVlaYkVjZ2FvK3BoeW1ucEozeTV3VmxmdzhZbVNDTFJXU09STW9pSmdh?= =?utf-8?B?ZlhKcmVnb2xhMm5IZkJndWlSbjRKUWdXZ3JEZUk0VVBWZTZqdm9heUJmcUNk?= =?utf-8?B?SytvZ1pzeXVIQk1ZVU9CaHFGNGZMdXYxT0hleC84dW4wMTh5K3NLZ3YvRll6?= =?utf-8?B?QytsUDhWMktZbWk5ZGtobnB4OWZlTFJ5dGRlK09maXhpazJNc2VVL3pXWEY2?= =?utf-8?Q?R0lxJDVr/rVto5uZ2M?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e75a13a0-1881-4c5b-07ea-08df17880c90 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:40.5010 (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: 1Ky81xWnsm5OveEAKDZBGjGucM8Z0yLGDW39y0uqCnHnqWrS4R75Hgfu1imK4OuR X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 From: "Matthew Wilcox (Oracle)" Convert the page to a folio. This removes some of the last uses of a few page APIs (detach_page_private(), page_buffers()). Replaces two calls to compound_head() with one. Remove the early return in free_buffers() to avoid memory leak and uninitialized file bitmap pages.[1][2] Link: https://sashiko.dev/#/patchset/20260913-remove-pg_private-v4-0-848550= f7574e%40nvidia.com?part=3D2 [1] Link: https://lore.kernel.org/all/aqgfA0QFi98gXYG2@casper.infradead.org/ [2] Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: David Hildenbrand (Arm) [dropped the early return] Signed-off-by: Zi Yan --- drivers/md/md-bitmap.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index 5f1637f974c15..02a126968ad40 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -533,19 +533,15 @@ static void write_file_page(struct bitmap *bitmap, st= ruct page *page, int wait) =20 static void free_buffers(struct page *page) { - struct buffer_head *bh; - - if (!PagePrivate(page)) - return; + struct folio *folio =3D page_folio(page); + struct buffer_head *bh =3D folio_detach_private(folio); =20 - bh =3D page_buffers(page); while (bh) { struct buffer_head *next =3D bh->b_this_page; free_buffer_head(bh); bh =3D next; } - detach_page_private(page); - put_page(page); + folio_put(folio); } =20 /* read a page from a file. --=20 2.53.0 From nobody Thu Sep 24 20:36:58 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 5275135AC11 for ; Mon, 21 Sep 2026 02:28:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957737; cv=fail; b=bqWszy0eFIoaQWrgaGwBK3RF8EKDCDIKvJzklI7pJ0CUwEhZhqtr0EWWXuj5EW/FPEZdk1PTIMyFyUFmo1yBMW+z0abz8BS/+2FPYEzUBn6ClQLno2oib9r7s4+t7huur6SP/EZqu9aI/rzAM0139aezln01ADVsLyPb9GFJ4IU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957737; c=relaxed/simple; bh=AMmGL5BiVCLDFUDAm2T7p3pskzyZZjrnTDgfxfGsGsY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=c5VOyYiOj9uyAhh8Nj0TY1w/p0JJsMjwFJfGUmIwcUpCPR8utTEOFbzfFILIs4tRFFtN5o03XiLdzvWTCS6sm4Lk+Q0vyn8VETHtgMKLdQiBgN5JOSx7kE99eLVjTghzr7atsv6olH4ZEvnlM1rME5R8qk5U2hJtWgtskbJFGhw= 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=ZOVkBU4A; arc=fail smtp.client-ip=40.93.194.15 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="ZOVkBU4A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p4oG0TjHmrq6Wo4RLL/KqwdOMCMuni7ZeycU5PtE0aiVo9Ct1zVJ2X1uZ9WMD2YgZLcFQKIZ9RFs2L8K/tQUTdg9ZefG76XvviE2LeHqof1mlk489FuIjqDKYzPeyFTtIam1t2mHGrLrOm+3nPf3/I6d4miSTHhUz/Z5rW+oRE9L8QfJDCtShZ4WX1ZzkM78BSax9FTEUPhRhZcXAIwacfsLO1YlB1F5Xq1eei+h1qbufBgX/z9T9+x8mxgEvmjmwXuc2bEg3hS7NBm9MvOt1NFVLkYXMqyLTul/kw6XXTaNlmZsy8UEmwYVgD7o5IaXAbd04N11t7bBWwGiiKA2MA== 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=gE+dUqOVElC7Qi7wE7rqVZdB6jHHbDkbmlZmlE4IKTM=; b=qprwk0I+vYhGPtxy+xuEIcK13Mb+l/hIoE2F+796QUViIAdKHCz8k96Gi/BOmR2C31P+QOH3i90CJXxtrXPmOus7s/fi9LkpTmDKuIAbk37j3vMrVJ/+AQ196fd0QK0a4tjsmmOXthX6RDttgKTOzkOKsPFL0123pXYaQEvxVaVUbstWoUluf7N7YteCYYN5861A4s08L2Iag5EbsEjLfGlPe2calhKtrDTMJA71VFFTJA3EN6TBHnH61FcvyAB1P6JLbnS2mrVu9Tq06kDfI0VcVSZNHtWv6v76kid+fQHezfzXHZnCT7ohXyZDhdrFgQUECQnO3Nbokmdl07iwkA== 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=gE+dUqOVElC7Qi7wE7rqVZdB6jHHbDkbmlZmlE4IKTM=; b=ZOVkBU4AqOr7uG7yFO9py1m9yG2DSpblKT7CAi6OnvqVu/rqr1u7hxnUceY85pCYUWZW9kx1+dfSnKkatBd+XzcOJ4XAj0Z//vAE5HP9fpSnPSNkMFAXAk+zx7yZYR701jVTMBwZIQ3m1C94w8dF9LIhaAdCF94kVSBVtyh1jcEdh7w7naycpyITofulIoONm2+It6QWcJbxodtfgMc/b18onFjr+0x9dBtmoX4dvk0b9Stbp2G4octMdtejKcPpP2r1GBYFVqFPjElyKqkCO55F7MgsYlDOZkaZDfGgGXdCxyh+kYLN1sZUvImIq/lxkiGs2/bCBaGJ57mgAtuDUA== 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 DM4PR12MB7719.namprd12.prod.outlook.com (2603:10b6:8:101::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 02:28:42 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:42 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:11 -0400 Subject: [PATCH v5 15/17] md: Remove the last use of page_buffers() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-15-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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 X-Mailer: b4 0.16.0 X-ClientProxiedBy: YQBPR0101CA0286.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6d::15) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA0PR12MB8374:EE_|DM4PR12MB7719:EE_ X-MS-Office365-Filtering-Correlation-Id: 15bcc0b1-9bb8-42bf-734e-08df17880d83 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|921020|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ASATcLXi4FD7gOLDjN7NFQBtShj9y/DIJqyDigxVOyQt32DV2qkGmS5UoRAfrJHNogUKmGTzomIb8ta7JRLaA8v6wRmp4OzzIvlHhXkEkLaWs9XI2/h1TKSpMjqqIyg09awPziTKp1vbd6Vc7PXcNqZ3AAZjM1IojcXwFe6u6AQHIWoRSpB1drk+0KbIYnp5RXA5Y3lMKiD5HreMZ6+L8W37M7gh9VNo2SOytJ7820TFq+MhM5ZybFfNTNVv8wq59caNx+amGOWyDLiCoy6iZjk9au0tN3AfrQjurzyWeZU9eaWnPGBldzRzIeMHWwFfaE4C6tAQaSEpk/WZ3UtHmdrZxo0NqI+L2ZDXxQlSael5VG+J1Md7elKpJX7YtacGBkRDsboxkaZrhFyPZLu81lI5PoakaHek6W1NOXN/R3zjtpIO7e9zGH3BSWkxT17NLDapwLsUyRj2lAjYz9HWDW0uV0OY8eUSmTVhVfFjrWjfj5Z4pOOMkjo/FtEALiEDPVkrL/Pr+qRMcpXabVKdrj72Aof0BNFgR0IyXuiO4Et59WGliItnkr4QPgLqSvKrBhzOCM2NAAtrclfZ6piq/GmUHc0Tv7You5Z4sszqoCbXSBcGtYSP7Ht4wRnYBRkb2KBJIwxp+L5HRO7siXCtxnYrYFr6v1xanFaFuxS1JuRi9fXYyJ6Hk2GwPSORDm4axGtXA1Zk37lZ8OUyxzBw+Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(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?TVpaSjcwNGp4OTYvMVlOVVJMN3JNYlVEa2VYeWxnVFd0SDh5U1R3Wm5wTFpZ?= =?utf-8?B?RHNaQ3V4RFNnczJ6UlBkaHdCc3U3N2pvOU9JdC80UWpGTkd1d1JEaHJtNHhF?= =?utf-8?B?WEdkSkpyalY3WGdZcVVrZ08zeDlsTUFWYjAyTU11VG9JNzhRWDh1YlhNSGtw?= =?utf-8?B?dVZ6cytDNzVNMmFpK2xHWkRUK3NteXl6Y09LMzlrK3pCQkgyOVdhMEFTR1JF?= =?utf-8?B?VGsxanphVWNqYkxVUnRFVjR6cm1aU2xBa2ZtLzl0MjU3WmROYnVuU0JPUVFO?= =?utf-8?B?bnVzWkxqVVRWSGRDRU9TVmVSRThua0xGZUhTb1hlU3o5YTV6TENqRzdpY2dy?= =?utf-8?B?MG5JVWFIMkRuR0Y3aUwwSGVXZlhqOXZrV0tQNTN5d28zY0VIMDBmRzk1Mm4y?= =?utf-8?B?Y21OMFh1L0U2TkRtRXkrOUhmbWlwdDlSSVpJZ2lyNG1tcjdaRytFTUd3ZUZE?= =?utf-8?B?NG4zdGhJZ1lLNWtaME92TEw3UFg3WXdnZk9wS2NZbkg2dFZDVnJSaWUreW82?= =?utf-8?B?Q3JETEVKcnlDaTU4R292eGJ5eFp2OURjc0hrV01wK29EaEQza2JpTXErd3Nm?= =?utf-8?B?UFlGZHFITlZJTEZLc2dJTk5IVHJtZFROU2ZtUi9kRHg1bDNBdXBORWlITVha?= =?utf-8?B?bTI2Ync4d2hMN0lBTThMbUVNUE1Ib3UrTXMzMElVYithcU5OS24xbEg4MDJY?= =?utf-8?B?UFJDRzlJeS82Y0cxWmV2N3hxcnlmR093R1dBVUNHMnh4dVlxYXlQbmtKNjEy?= =?utf-8?B?dVpIc1hKK1ZyenFpU1A4dXViQXE5cDJUbDR6dXkyZk1KSEp5clpaU3ZNdW8y?= =?utf-8?B?WjQ3WUdsRjVQWHJETnFDbk82RVZlOC9LTEhvNk0rNFYySFFjNDdzTTBhUU5i?= =?utf-8?B?ODMvanNvT0VubVFsMndYcVBCVVRTelRIUzlpVE9xd1hzeVA2Uks1bTBjN1Yy?= =?utf-8?B?ay9kK0hYZkxIaUFkOTlYVytjWUMrbTRYbkZQNzhuMEhDQTl6eFJrOXlzbFNa?= =?utf-8?B?enpMRTcvWlU0TlYwRjNOS2J4dFdJZTZnUlFWUzdVb0ZTZU1zV3R4VGpiTUpD?= =?utf-8?B?UUVpbFVFUk55ZlJuVExIZTFsN2dMWVpNMlAxSWVOUkY2ZmJQNnRBTEhUYjhJ?= =?utf-8?B?QU1maDBTS0ZnVEY1RlpqbVlyK0JESWtOazBEK0VoTnE4cmE4ZWVEUHhhejdn?= =?utf-8?B?azZpcnRoVFRWMjY3N3IzdTZlK1BDMnNlRlROMzZzVTJOcFdIdU8wSDNKRFFY?= =?utf-8?B?cGhxWFY1ZkRFRWVUaE0wVFhGYzJYK1AxUHk1clpBejIxdkZtRVVkd2ExNzQ3?= =?utf-8?B?dDJNZU5NRHA0cHNGbGR4QkVYYXluTlJ4VmxnMzhpQVBPME03bU15OEpVcEN0?= =?utf-8?B?YXhRTUFnSXdWQVpJNTlnQkFwTm1JMEJxZ25qSUhWWDlIdG5FTEFWM3BiaUxu?= =?utf-8?B?UzlqTXV5Z3lMK1JZYlRaTEZVeXUyMEFxK2RFZHNaaTB5K3hDZE82REVqeXBt?= =?utf-8?B?TWp4Z2RTbW15eEV2cHJMTTMwRzJ4MGZVWnZTeEpFNWRuSWxvbkJnZGdQeENW?= =?utf-8?B?Y0tFdmVEeFBGQjhhTmtVMS9XNFBGTGNYMnVIMTVHWkIwdzF6UHlNcmFRNnMv?= =?utf-8?B?NUk1SkppNE1RT3kzU2ZEbVA4ZzJxL0ZTdm1oeWkvWnNIZHQxSmJ1V1FSdkZs?= =?utf-8?B?L2pqMFIrMlQ4RERzNnFwZCs0VklnU3pnRzJoQWpuR0Ziek5KZGxXSDQ4Ymh4?= =?utf-8?B?QWRSK08xOStwRHJUdWhRalV4R0R1bXhTY2F5T1g1VUI1V3Y1SVBBcVV2TEJG?= =?utf-8?B?L0MwdWZMQWRBQWE5ZW1EK0tVa053NVBOeGxQaGRXZ3dOb1hiUXpGSWkyUWlW?= =?utf-8?B?UEYyQnAraXlvZVdzRGlDQWYyNktWVCt1Z1lZNXA4U0c3cWdZWU1xM0IvSWQz?= =?utf-8?B?MUJTSGN0eWVQQjRyYkF1b0IyeVBNQUJTeS9CbzlnV1FwUnV1Vm01ZzRJNStJ?= =?utf-8?B?ZndxWXUxeHhBNldsaUZkdjF1MVJMZVBhMUFDTExOcTFyQlowQTZiWGZObXpI?= =?utf-8?B?RjFvSkRtd29ibzRaZjZ2ZHRaZm9hdC9ZbGhlcWtxR3VmaEpwU1QrVTZRampP?= =?utf-8?B?QU5ma3dtb2VMeWtkNGNJUlQvSjJKMlNwQ0FjVWNwT2NQRE5sREtLQTRGSzZI?= =?utf-8?B?VFoxbmRQekJQVUx3VGlETS9vT1FyWEpOODJIYzUxbkZPVHFQZFljSUFFOTVO?= =?utf-8?B?TDRuN21pWStGUVNGcWVUMmpzMWh0K1BxK0ZwTmw5Z0tjU1hPd21FNkVpQzdP?= =?utf-8?Q?5/Z/uB6x55CHhWC09Q?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15bcc0b1-9bb8-42bf-734e-08df17880d83 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:42.0554 (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: +996EM96FBxu4353dXsuEXShs25ioSJpccpobOy7behgshVkqEPCBiX2h2MoUsNT X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7719 From: "Matthew Wilcox (Oracle)" Convert the page to a folio and use folio_buffers() instead. This does introduce one extra call to compound_head(), but will simplify a later conversion of md-bitmap to use folios instead of pages. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- drivers/md/md-bitmap.c | 3 ++- include/linux/buffer_head.h | 7 +------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index 02a126968ad40..8adf6ddca3d60 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -516,7 +516,8 @@ 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 folio *folio =3D page_folio(page); + struct buffer_head *bh =3D folio_buffers(folio); =20 while (bh && bh->b_blocknr) { atomic_inc(&bitmap->pending_writes); diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 6ce2db05c60f3..4b0b7188472b2 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -175,12 +175,7 @@ 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)); \ - }) +/* If we *know* folio->private refers to buffer_heads */ #define folio_buffers(folio) folio_get_private(folio) =20 void buffer_check_dirty_writeback(struct folio *folio, --=20 2.53.0 From nobody Thu Sep 24 20:36:58 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012058.outbound.protection.outlook.com [52.101.43.58]) (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 584B4351C34; Mon, 21 Sep 2026 02:28:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957734; cv=fail; b=DZNBY02frCbTTDn/0sLU12/VyWSo51BYQshouuzKzEn45661FNTe850642HLBvaGvU7oz9aKCC66ytzLWvuAOioErZ+0kT336xFaSnwRd+uzZ8ZEi36VXVggy3kSrnUWAWeY/joTYPYdwDPyHcabzpzpK5E7yQriv8NUrYydX7w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957734; c=relaxed/simple; bh=/StSJ7Iv2ZPbidi+Pd/gMFJjHtaKhgzvpRbIm+QBaGc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=th+xHldVcRlkMeOP3ZZ/aKzyKH4P4q+QoJ1v7h+u5OuVz47pbSGJ/I+nKtjFv4GAdJJY48t1zxfbNs2KCrT33e4z2JSZl7ZlxVSCPtsnbhL3jlMqTREU3NHvOmedG205L3mK4KQFCikHuWp67PrXJk+oC1LoyCMv7AxJWnUgNJI= 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=nF6ALZPl; arc=fail smtp.client-ip=52.101.43.58 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="nF6ALZPl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HJGpBKVAvou3rpKxM6s2Ki0Fz5TY3h5dV45MLJXKrNv6A/pMyk9MH3WdyQ1Y9+poJFrsBa8BfK9zwnTW0HRA9HRV4QQ+bPqAgaVD4K2qtJrR3uJPKMvR8lFUA/9zynlf+IpyhBlpSepeJx9o+SmtapYHkuOUq5Q+bZbRUW4bm1PkOxY6yPN8d/CI9F2P0FyUzv0El6g67zJrUiqmqtCIQrxUwj9Dig7tLITN+ItPQUtYfqjfSEx8JMjc1SVt+yr3C46FgPrt5+BQmwuK080dDQIp7gNTIBAnDRuqN/JLBc1I0b/788ZeUwoinhLBYX1gbRIHzH5/AWKYwswosJDYxQ== 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=gy9SEKH5y9YZF5tt5iXjB5JVr/kM2C+dpwgx7eDwiVM=; b=g6xhe6dszv5zFPevNgKj+IpJJFVzFmsORcUSjtZZtxEVYFB4nG/BtMk/a0pOKg3lg/TwE0TBmGeWPousoE2EId974sm7agGLPPfLGtPdhGKbn+G+EeOR4BkKDdMcf2kFc+H3IZIBqz0qe1FRY/eHEKCDWU9A8eIbPdFpCicRr5Pd9lxvqpICZ3OzWj6F+Tt0DgqgikA8Pym50pw3z521R5OTqJddV+mhQ/WinPR5juJShlVQeJ5g9KvOpeZQtnN+FtPJit7SnSXUmfHlmFzT++XSP4kd1xZa2kOQVp0Y0pJHBOXub/cwmr51H5Z2D4DgKhpfL3Efs/DGvg+OJ+jcwg== 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=gy9SEKH5y9YZF5tt5iXjB5JVr/kM2C+dpwgx7eDwiVM=; b=nF6ALZPlUtGLfLiqKYn4298+LhEF0WVqnPFdgsat2glHje1N0nBOHq19ywB39ELvh940eUuz/nshvD/4HnqEuLQPWnPZM8pib7fVbem+RIdvCJmHE2gGE1jy9fBSbmtXTKEiJd4bmg9MLhxhRhnn42N+dhf1wX1thXyXh7vRiwclkAqmZbXN2kARWIn/zItn7ScOgXoIzdS1+oHEg6894eyWcuSF3yf+cmmSYrQd6wZbA4muaMN3kLzstsTq4F4oMOlKEYv3NVVuUzez3olPjWLYN39B+d0wbnFyBCbo10WuKTrpCwUyyN5WncrXxmtQ53ZRgLEC+EF13ugF5t6UVQ== 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 SJ1PR12MB6097.namprd12.prod.outlook.com (2603:10b6:a03:488::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.15; Mon, 21 Sep 2026 02:28: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%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:43 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:12 -0400 Subject: [PATCH v5 16/17] treewide: remove PagePrivate() and PG_private from comments and docs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-16-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQBPR0101CA0354.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6b::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_|SJ1PR12MB6097:EE_ X-MS-Office365-Filtering-Correlation-Id: 68999f74-ea2c-4f55-7b04-08df17880e64 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|23010399003|921020|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: uBvp90y4FtHJdO9/OgPskMvff5e7txGdQ+d0vvaFRaCLyJBvGSC9IF81THehq7g8o0+PC7nqsPy6ELs6hAcYbSnAkMDFokU3r/ICU4xF+6VM/mT/ZX6hrRcIR6qHF5Pv7tq75rCTOp59W6565/eqp3Rewd+LZETofZ+Z1SOEZzesJaYxrI8ylwHTNBlH/8UpiLG7ywUhO0025iIaBcR+4m2zPGjVedPSl0YkYrgtt46RUkjqNRhYi4WqbOklPnxZfE+CyksRMJk5Lqukd1e1FBSbbFIYQWkSCoECsFwXMWvtlI2DGt6/f+8ogrisyeDyYRpy5mvo/eEU4cWMmesL1iCrretgxUrn5UKlmwKXlKb425431V/lNZDJ8/a4czSSKW4Nd+Qfh3/O+Uqg0R0+ABhP/Img7k9T2Xhmal3nEnjrsy13SOO2LBO/D+0sm+7qJljV9AtFPIjfpNo2v+CN5SLiOAyM2SOVcvHv+TQY/x44Tl15W8PF5M1jet348rUj4Ar0LpfbwGqG+4b2J5dbbirYM+ZghtaitIQSjELt4bQdbIak+QVzilm602xZfzWar18HiXUfqzbqo9PUR5B3ur5gNa8LptbaZejfHq0vvHP/KcHkoXEwglnIwMu1a2RcXIL8GAwj9fk6uoBbp82FY8XhR9GzIj3XqBRsYdH+w/q4bFVUkSJf8BIGFHyblPlyGORAzrfo5oXkBhe43ohqAA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(23010399003)(921020)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NlRDRWlXRUJsN0tMaWdTbHlZaTh2UUdWbUxkSGJwdWIwOWYvKzNYYmpwNTl3?= =?utf-8?B?U0ZBMXRXa25JaDFPdUc2dURISi80OUdTWTdUdmdEaWVCTkRnTlpoSXE2d2hP?= =?utf-8?B?VjgrUUczOG1ZV1dsMnRsNGNvaXQ5NjNuZVBkVGRsakhTdlJnaHpRSXd4VTdn?= =?utf-8?B?NnA3VTk5STYwaEtlS2VFQndRWXFDSjRHQ09lVTBiVXRSSy9MQzJOdDZZTGFv?= =?utf-8?B?R29MUXJoSGVVVkpHUDZ4UVdhRTBWaU0vL0RvWjFlZ25UaVJPTS9JV0FYRzRR?= =?utf-8?B?MmhDazZWYk81ajZpMmhxOUZ5WWd6NVZjcG15V0F1WlFzZ3NVRTdUdjNLdlda?= =?utf-8?B?VXJ2SWRmVThiYytmNHQzSEluejFhSDJJTk9BdGJTMWZEZFYxU1lTOVBoZUZY?= =?utf-8?B?ZGRsT1JwM1Zuc3hxbVZEWHJTR1dqSy9UY3k5N2pVODFmOTJiUmkya2pKeE1x?= =?utf-8?B?dEs4S2RMM2RROC93SmtmWnEyL0VKdkRCN2tEV2dMVThmNHhxQ0ZIbE4zYy9m?= =?utf-8?B?dUJXZnVOUlVBR29ya3hRTU43c3lhQzZNTkRlOVhyMVR6bktRR0pNV3RqSFg0?= =?utf-8?B?bDdvV3pDQ0d3RnN3ZHFjajM4d3V6ZFEzejNudUFURWVUZ0RFeSt6elRQbnd5?= =?utf-8?B?cjJRMHluend1emxGdmJvQW5Md0d2VWJ1eCtYM1QweDJveVJVdnFvaXhxYjVj?= =?utf-8?B?VFZiNFN1Yk5yYWJycnJsdndoUFhZMmQ3WTY2eVdjUUxxaUJ6VDJHcVNZTy8z?= =?utf-8?B?a0RpMFNVaVMxdVprcFZ6cEt2TEhkZ3Z4TENEU00xaXl5VXpCOTUyb3pWQm1I?= =?utf-8?B?NDF6TGpCazFOVnJzK1hneW11a2NxeXRpNGUrSG1zVFB0SnR0REZIeEJaN3dr?= =?utf-8?B?TGdiSmlWdWdPczNkTS94L2wyeFJMdDRXeHVEWWZWd0JmMkUxZm1MOVNQM0Yr?= =?utf-8?B?dXM1dUlWc0xaRTE2VEtzb3ZGS3BKcDY5NWFTSGdOd3FWSjFZRHVjZVpJOXMx?= =?utf-8?B?eDBHWml0UUdpYllOdUJLa0IrNW9JVEd6Q1hEcjdMOVlPQ2hpSDRvRjg1ZzlM?= =?utf-8?B?TSt0aGl1bUN2aVk1ZDdIdlU5ajk5cEJwQXh3UGNCMmxKUFRhS1VXdUV1akVv?= =?utf-8?B?U0F6OVNZd2M4YlVLU2NLSUR2RW5Cb0NlZlR3dFpaWXkxZE5za0hXejlsTkFz?= =?utf-8?B?QzN0MnJSZ3dYVkxXZFJEeFMxK1RVdUdRYzdoQlVuVXNJZkdyTE1udHVNcjRX?= =?utf-8?B?eEJUVFNKL1E3dkJLSFdqQ2dqcC9OMHViYk9OODhnUXZ0a0RTZHk3VGNyV1hT?= =?utf-8?B?VU93dUp5QjdDd0lYMHNUdDhuZkl5ZndWSXFFbmJhaytBUVVYMyt3b0tGQjlJ?= =?utf-8?B?c3BHZ1lsVzcrbC9YNmc4WlJOOXdWcjZmRlRkRjYwVXROb29qTnJjb0ZWdzFm?= =?utf-8?B?OU9mdnhYUHJheDg5N0laUm9NL21RMXhzTGVMSjZuV3Q1V09Xb3pKaVRBNWRt?= =?utf-8?B?SlBjWHdEaEhqMWJSWVpFOFByM1BseHdNaVphOUFVZ3R3WXZmR1lra1VMek1q?= =?utf-8?B?L3RuTnkydHlVSUd6MHBJNlZrY3V3SnVqeEtQZThremFrQnEyZjJhaVBZR1ZU?= =?utf-8?B?czIydksrRnAzOWlscTY3bVdWV3NPaE1raDA1MkRtZ3dCTWtiQ2pXTWVNYXd0?= =?utf-8?B?SlhiVVJYMDB4czREeDMrVVdTRWFRUXFEeUsydFJZTENiUVAxU3ZsejVNZWhM?= =?utf-8?B?SUJ1R2ZvMGI1Qk9EVGRncDhKSnVMSEcyOEk5Ry9SWmRmeW16eEQzR0lMV0Iw?= =?utf-8?B?WnhnUVcvNUt2N2ltaDdEdkVZdGNUNnBWeDhENzdrRyszUHJHb0tDTk1XaTkr?= =?utf-8?B?THEweHovc2RBQlU4OE9ZdGFCSjZZZ2tMSHBGa0E4WWtPbUNObmtaR3lLYmZv?= =?utf-8?B?YnVjOEwycVUxSTA4anRwMFJ2NG82OFd1Q2MrNjY0bVN1ekowRXFrMTZsRkFF?= =?utf-8?B?ZnFyVVJWZ3BGdExGdXVZS3BCYUFXbDJ5NmQ5RnpTb1BNL0g3c01velVVckJa?= =?utf-8?B?VWdITWpiSG1YOXhGNlN0NkF6WUxybDF3QmM1V2VuUjQvU1d6aVlxUlg0d0xO?= =?utf-8?B?TTBub3NTNFJSdEFoeWxIcE5teFR6R2V1NW43aE0yMUYyZTlRYlJJWkhxaDhI?= =?utf-8?B?NVhUd0NrSzR4VldFa3M4Y2VCWUJzVmx4NHJibmcvNk8zdzJ3a0VtNkxWSlhI?= =?utf-8?B?VEgxbDVncHFzRHVnd1ZvZlB0dGtES08xTm52TEJOTGhmQktjdTlSUHBNSXhD?= =?utf-8?Q?/12qGFLgdDCpKuwxY+?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68999f74-ea2c-4f55-7b04-08df17880e64 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:43.5155 (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: OZdHaUt++c9nz5/HVRpHY5KPMR7jbQ0N69irpZzecq35IjgulXpvNVM1c4cy0jzb X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6097 PG_private and PagePrivate() are no longer used. Adjust related comments and documentations to refer to page/folio->private instead. hugetlbfs_reserv.rst is outdated and left unchanged. It should be rewritten. Assisted-by: LLM 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) Signed-off-by: Zi Yan --- Documentation/admin-guide/kdump/vmcoreinfo.rst | 2 +- Documentation/filesystems/vfs.rst | 6 +++--- fs/nfs/file.c | 4 ++-- fs/ubifs/file.c | 8 ++++---- include/linux/mm.h | 15 ++++++++------- include/linux/mm_types.h | 4 ++-- 6 files changed, 20 insertions(+), 19 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/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 d9392ac8dff9f..262d1de5c1161 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 Thu Sep 24 20:36:58 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012058.outbound.protection.outlook.com [52.101.43.58]) (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 26F70349CFF; Mon, 21 Sep 2026 02:28:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957732; cv=fail; b=mlnw3oa0vDPO6dftHWHDy7oW6UpRq4njNp220Wl+ty1V7SG8yEpY76uKdC5eOtJBrMdkd9hA42km/2xrqwyPfhxpPyEHX45DOQva9F6b0vlRS6LCjG6BKE0EDtUlsfVq4ZEcVXpjPhIGSv8MUcx4p9RvaDSlok/iWejFayP0PYY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789957732; c=relaxed/simple; bh=i+8V1Y387ls9JmiIEkPJeCPpvT3yaLwmNHqHag5M3pA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=lx2HwvTtNhp6GrqXby+LxnbvonJWx4V/XZ9SizunhQAHOKk6WsQp7aG8mmWL59mDaybXelYt6ppVW+iOSnGRRitO2qNKd5DUqcXmU6OS7Tw7OPgo5+/fveS04LusvF06grPyB/tvHzyTt705lbb7RqBWvyhi9ywBzFdtHkIt8w0= 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=g7FAdaT5; arc=fail smtp.client-ip=52.101.43.58 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="g7FAdaT5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EgofCVb0PvFahCLsgtc1JHB6quMCGHoUd94qhvKtu8xf0nAn228o11uV69RpMHbu+CdvdtlkCTvlRsGsCIkEy+Vhp6S6yCEJea/0H/7xfR9A98DBpgc9AHE3g+8FanYVhLqaj/cC4+UrUdEGDknSBOHNgu0MS72CZJ/3+o8Uv0Mv1+pxhe6mLmeS+6PTABmANCmwBvJR0U0dMxVOcR52PqY4UIrN6axuyRs/yFVj1ofYmjUfanP2lZY3v5vC1/wnmWpDWInR0U+TZLHrcPFQyg35/MKim2azK1UC891g7Y8/xUUZuJd9k3YSofoU5RbPRbEvmN39nReNQbf6oRLq6g== 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=y+PRy2ELreVExLdlnYTHzMwDmQue/RiuQNVZqx0e5VI=; b=T89Fi8Q9lN7ISP61n1fpa4vDuBa+1hSnRPYbajwFTuj3jYqXEf1UN/qsfjzMekALSHcEE7OtfQH93jf+9yI/fjsTG36VC3q9Jwjui2JRnXvE/OPysRqCg6pr7B6W2tWBLBsr/p/BuE19eWNT0MheyVtdD7/vSrAaVvSiYZqUF7ghOG0YpkOTGEU9bYqtj/Nt669pDP4GsgwBS8dYKjOAAEmawbUIXka2JeIiphPSnS9Ma4i/xFXc0Dta9MkssurqvPYktZgDzX3WZ4kwiJNOzhHE0tNpK3wWysWrCFq8VqR5wA994+dhsz3879+cd/vP8+N3JJ09U6BLP9klS6vibA== 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=y+PRy2ELreVExLdlnYTHzMwDmQue/RiuQNVZqx0e5VI=; b=g7FAdaT56OUbM5c6ZpQKWg122janu7lFjC7Id5bWQ24is7Ec5TLdcJkAV9wsfjkXQsroopAq2tDsSKrVc2fq/w7iLQ48/wDBLZRU39CT6fYk9ChOzq//Vd70XjGA6KoD37nlQuaKKa4DR/7MvWzNDfGw7ZePjTiwmG2UpY+6bTMa+C4DeMO2LCwYppdbqsGPCpPdijzaHStkn/JsRVggpz0YOg3GASC6egpjTr28AcILAG9F4auuCSzNplsK27VaEP9hc0JksuCzcNq298ZCkfmbAy2dmxdAIGEYFGg9kTGzJR1kijDM5gkhXdmrIkyn9+2dXu+vQfU209zwK6ArQA== 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 SJ1PR12MB6097.namprd12.prod.outlook.com (2603:10b6:a03:488::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.15; Mon, 21 Sep 2026 02:28:45 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%6]) with mapi id 15.21.0428.014; Mon, 21 Sep 2026 02:28:45 +0000 From: Zi Yan Date: Sun, 20 Sep 2026 22:28:13 -0400 Subject: [PATCH v5 17/17] mm/page-flags: remove PG_private Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-remove-pg_private-v5-17-bb68b6a21869@nvidia.com> References: <20260920-remove-pg_private-v5-0-bb68b6a21869@nvidia.com> In-Reply-To: <20260920-remove-pg_private-v5-0-bb68b6a21869@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.16.0 X-ClientProxiedBy: YQBP288CA0008.CANP288.PROD.OUTLOOK.COM (2603:10b6:c01:6a::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_|SJ1PR12MB6097:EE_ X-MS-Office365-Filtering-Correlation-Id: e1bac2e7-131e-4073-1eaa-08df17880f3a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|23010399003|921020|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: KLVN453UEi4zYmT70aboqVE10m7/2ztmB6xdO7KrhY9X/LcboJknybU7oxqn6ZPVFqxgd5pVsUOTU4nPvrlOe1i1ykWSzWDeSPRKiE3z3fztLvysE9u3eHbFldOFzWdm1YNBixSviDL/XE6vhy7MkvPNRMNomwEVLFPTFZx3dnlg7j7koEZnZtGQKBw9232utgjNwI3LfFlIAubuB2KLFf1AhvDRp+pC4PQ0k+h9qxklGKd9kgt6r+wWJ+0ECdBMCdsbZb7YYE4anDUbT/kV0n+LrFEitGx5MVhCBSlRx0Ha/2LmXbEQ4bb91bs2WWQekzvkhAe7v5+/076hRCiPEwhJ694bi/1PcsWS83Ynw55l2VyThfRe4n4X6ADSiELx0fcY13Qko2CSZwqCOaEFXuleETuQJjWyLXlO2QjBSFFmTTy9ogM2Sra82TquQmmWYqn2msutFwdxZvyq1N8P66Gsnkgd6Bw00jixNCVWZPxcy1Y8svJ7szOubjDpwIWk5jCfqxr/oIz7yZ8HsEDihEmiC9cpCv+bPpY1vAhqKz8nlbZ3XxIQERkO5d49T6OhdLjy2I8Yh56tr4vLKgSXv8aSW9YWPbPmAZPNFjvyegTo7zETmlpMZoZAo9pQX2fsVqcjNbttaQ+tmcMtZwL+QrE20OHYsV466Sp3+eN4KpSHv0FOCKxTrPGU2F99IY4A7OaDGl+SVsM+ER6WBybVjw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(23010399003)(921020)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NTFQQW5LOW5XWkk3N3NPYnphWFRML0xNaW5uNHVZM3N0WEo3dzhpNHM3RWZY?= =?utf-8?B?c3RSY0xaVUUzaExJUzhxdlFkOHlLYzBWSUVhdEZlNU85c3FmcCtUcVJUTXdW?= =?utf-8?B?WjVzS2lxSEdweHNTaDhUY240WTBadVBYRm4wdDlhUSs1MHpXZzJxdHRPVW81?= =?utf-8?B?WGF5dkRlSGZMV3I5SG5nVVRLRGtNWjRMKzFLZUFoZGN5dEZFMkJNMmNNVG4v?= =?utf-8?B?KzZLM3NQeVBzL1JWbUlyY0ZwZHJQemo3OE1rUE1CeU1SaTc2cWJabWZmdUFm?= =?utf-8?B?MW5UNFFMWWlwYklWRHNCNWRzY3loNDJzL00xeEt4dmJGT2V4UUZGL1VUK3Vi?= =?utf-8?B?dlFaMDI1R3B5UXkwMSs2elBja3ptZ05LUHRpTmRuQ3B5ZFhxU25WQWRrYnJ0?= =?utf-8?B?NFlMUjh1RE9NWnJjZ3cyZ3RCZUVLSlZuRHFJYngwSlNRSWhFcEF4UCtHTDhl?= =?utf-8?B?WmxkY0REb25rVE5GbmY4MzM0SEJVRCtjTCs3V25VZTMxU0p0WGNsVzZvaGda?= =?utf-8?B?T3l0N282WlZTbUc1dVIzOGhSU2RHdjNpSmtQZUpBcGw3TXdORXd4SE9UOU9I?= =?utf-8?B?aEN1Y25BdXJhMVRuUEkzeU5wMExabStBSEJHNFhjLzJraVYxZmZnd0dpQS85?= =?utf-8?B?R3o0Ri9kUTN0YzZtWW5ZaUEvWHVLQTZzMnFzb0kvTUlDK1FqTHR6bmdNdjhi?= =?utf-8?B?TDZDcjRXdzJPQzFIbUMzb0d2emhWS3NYY3dEalQxRFIydTRMMkdkUFdRL3Bp?= =?utf-8?B?d3BIZ25Ucmg4VHhzOXRYcVpRdFFTbkVTOFgzZ1ByTmdLVDIzUGVHVUk2SUVT?= =?utf-8?B?QVcxY01FWDlIQzZCTUpoL05uQTJ0SkN5QXR5UDY3M1FUNlhuOVVDZW42T01k?= =?utf-8?B?WVpXanR3bCsyMTRkTlZ0Q2JSYTU4Wmw0MStnTkwvVW5XdldaQkRuZ1FCajFW?= =?utf-8?B?cjEwQnlCOGQzVjJLS0FDT0xtVkc1UGszeGdvZDVmUUx0UXp0QnpmSG5IVWtz?= =?utf-8?B?UVpnQ1lRcC9PTEFaSEZwMEF1dzRMTFdBVXN3MDduTWZFV2FIWEZlQzlUYjRG?= =?utf-8?B?N1VrNW5ZdS9qMWZYUW9jNWtFYVFvTmphNWpKQUg2SVJwVTVtOGFMbjVDWEN1?= =?utf-8?B?SHpKY2hMNlJnOTV0dTNVVExTVjRlWVVoVlJ1bXNqdEVqdUFCM0VlV2xxTXdW?= =?utf-8?B?bW1kak13c05Mc0tCcG5hamVUU2U2VDVoNjZzZmFtaDZlZSt6WnVsemFXSmRh?= =?utf-8?B?ejRCYnJpak9KZXZWWEdHcnNFY3Jla0hrdnY1Y1BiUDMrUFRjNGpWdnlZeUFD?= =?utf-8?B?RitYUlFFQUxtR1NNQ3dFdkJ3VmNWNWtPaW5FUlV1TDh0Um5JWFNYc0RVbHJu?= =?utf-8?B?ZUt3UE5DODhDMW90YzdINlR1ZzRSMzFESEM2WFZ5ZG1TUXFGaVY1RkdGZTJZ?= =?utf-8?B?RmxIdERqaWhyMTFFRDE3TEx5bjZpT2lxbUxEM2thVm9lcG9WTTlCT0V5K0Nj?= =?utf-8?B?dTNrai91UEJMMmxCOFQ1UWlod05HcDd3b0h3SjIremlVNHhvVkxmTjR2OFNi?= =?utf-8?B?Y3IreURVc3NUaTZYSmlVUzQrcm5YVENGNE0rTGQyZTg1cXlxTjNGUHcxTnlT?= =?utf-8?B?S290Rkx3QU1LRWIzM2xQelFrbEZXK002RnhBaDFyZ2pCWnJWVHg5SnA3am9V?= =?utf-8?B?SDFjd2FDaFd3LzVWeFJvUmlEQzBRYVBnZitaVmR5SU43N0dUd0NnR0lCbFFw?= =?utf-8?B?NW82UUIwdjJEMDFDU0pEekpQb1l0Y3RIRnBxZ2J6OGRVbi82VXp2KzhXM1JH?= =?utf-8?B?bnhxUlpNZ1Jrek9GblpOVHMyd0YyZlBUeER2bTFHN2phVDN6bm51QjI0VUFl?= =?utf-8?B?NXVRSHhCZGNFMHhBRmh1cDlvNHNWYnQ1OTdFZElsOTVkMi9iRzkyemFxKzdy?= =?utf-8?B?TitZWWx6bkdoOHFadHpjZ2lhQUE3LzdsUUNPL1BTbGFEY1FCUnEwYnFkaTNV?= =?utf-8?B?R09CeE1Ma3BuMFE5Zm85U0JvVExBRndXWk5qYXkrVlExVTV5Qmdtb3dTRU1p?= =?utf-8?B?RTllakl1ZDQzUDVNNFQrdXpSN1czY0E3ZEN2N3NPUkY4bloyK2o0N1dGaXhC?= =?utf-8?B?bmVEYkxNd1JKVENkeGhHNVNXM1QrdjF4OHZVZDd2TzBDTXdZVG1NNlByYXRD?= =?utf-8?B?dVBpc01pOENpOGFIMWdaMFVndzB5S0lTREVUR0h3dFBPWFJYTEtBVWtOcWc4?= =?utf-8?B?SS9LUkljeTc4ZjIzbW8zbXZ0ZGxSTVFWZk4zODNWZTJ5aTBlVE5Pc2dqTEEx?= =?utf-8?Q?2pNnGfYsD2UnDqdZ+9?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1bac2e7-131e-4073-1eaa-08df17880f3a X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 02:28:44.9362 (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: Uzum3gihbtMFRgvs/Kyl1A5vPdpe0oXbWtSxFYS+jj+5aN7/t8pMoyHRGV81/1U/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6097 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. Unused PG_private functions are removed too. Assisted-by: LLM 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 Acked-by: David Hildenbrand (Arm) Signed-off-by: Zi Yan --- include/linux/page-flags.h | 18 +----------------- include/trace/events/mmflags.h | 2 +- kernel/vmcore_info.c | 1 - 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 6d839f50bdcb7..b0ddc652e76cc 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 */ @@ -588,18 +584,6 @@ static __always_inline bool folio_test_private(const s= truct folio *folio) return data_race(folio->private); } =20 -static __always_inline int PagePrivate(const struct page *page) -{ - /* See folio_test_private() for data_race() use */ - return !!data_race(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..3c153b3ad8450 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -144,7 +144,7 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); DEF_PAGEFLAG_NAME(owner_2), \ DEF_PAGEFLAG_NAME(arch_1), \ DEF_PAGEFLAG_NAME(reserved), \ - DEF_PAGEFLAG_NAME(private), \ + 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