From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012051.outbound.protection.outlook.com [52.101.48.51]) (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 B0B23345CBE for ; Fri, 12 Jun 2026 14:57:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.51 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781276271; cv=fail; b=ux7p+yT12UG7EWfFgCgqmhGEyOoIFeViLcq6yvyFRtc8i1QxdkEDVSndPRoERb5OzqAfgflGNMqdMe7MXGbOMP/RyFiW7d06z425EyBoAtBiXWlVoEiVj6vbHAm6OILI07oPWM5RJyb+hEthkagfvCpbIqDkjOpvtOgnGHZ4ivE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781276271; c=relaxed/simple; bh=MqDDwwwK9NpBQDhrh1Tx1lsCEvnqPjiC1pB06VsdWo4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HvjBtlon4IqJhdF7dG/kydCnrBsTrzwt2BIJMEcKKN7ULlbXi23Vh25yZZi/NatoURl5TNfEICvvzm5+nsI971xcDZH1ln/ukoHXLg2UlqHX1cvnQNAr8+Bo1sDScFtMMjdRKv3m3GsTznld8/Z55iuLKRs9JNtnCtGFhuKvk7U= 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=EKwkf+7m; arc=fail smtp.client-ip=52.101.48.51 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="EKwkf+7m" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C42+YFTg1AaCaN2qO66/ctPmFnmBLuKvULVF4rQlXi1C2y7q8FR1K4M1lxvTBrPGO8IbI/GOl7CwFmb1dvabVX7k3U2wXGW5oMQIh3XsBKBAshaTh4gMSz7bVnSBE2SalVrPbkJh6mZLlvJuul1pmT+bMfvc/f1kHRwnOg+65bSSmdPtGz5UFpQpQhv3LQ3FuRu7eD8IE0fAyRyuWJIAAQW6T2Ky5u5yPgxi0tjOYQUZh5F38D/DpCEMZpu1g7lOQk9W/zVWbnVQ36nEUx2swvgACa6YCVpruJQyw/maHfJCakydHcWw0/5dfIpxDRPKDaqS06Snr6k8RiC+OjKVuA== 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=fzQlOfsXZ1vvrZVna77VtCq5i24QaZPmvUzVJFO7Ttg=; b=mlp20Zw7vOKEv737j9zT4hyMCNVcD6OzJDMU8oHevhHsOg9+yUuvtqn3i2wqteTiApPB/iGRPmCghqR2yyBLnNJS3s70EGRRHYGiqAdHjroxELe/ip+esPm18/5q4d+cnrwCe9a16oP2DgDmpIybSpFTMzC6IOXphwm5ZpzLCM5RbnSC6qCKHtlW8uyfiLOZsc7sWYby6OxHYyQYAakrO/JK5qfVwL3i/Oqx3kgNh7mBQWgy0BiScuhBBtiEX99dAonjQqPrKzOE+ZG7x100TBVPDjtzYP1MZurbALzzrNRvjDDWxdyJKVZqbRTedl52nLAMvPTOheUhsx2WjrHXJg== 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=fzQlOfsXZ1vvrZVna77VtCq5i24QaZPmvUzVJFO7Ttg=; b=EKwkf+7mpgi3WDrEKtb8H6xC8gGOb2r1nmUTxCTjNVU/yu1tsm1Qf47ilkFNfNgSTcwv7ScBFHCrS06RYYnqXoVpZlcKTzsPA7ftpthgWuhY/Om8yNq+JY3709gbEFP/w2nSRD4qB5PJMjRbRAwLobo0ok18SEt9+7i4rz+Z9z2RDkl/w+0UiDsNv6urM3OMC3XVp/ZFqpyL5Re/wPiooOXzK/UODlHrOEHH+lJjZpzE4N/7cCfvxjvWuSRsurBf/Sl6sazluW6yIAeVtxbgB/1WPvFsIMeQLD2OVx61d2x1qwtm/7zwN58+OPgciFu0UROiSHz6ba5bYFOndFlm3g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS0PR12MB9275.namprd12.prod.outlook.com (2603:10b6:8:1be::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.18; Fri, 12 Jun 2026 14:57:44 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%5]) with mapi id 15.21.0113.013; Fri, 12 Jun 2026 14:57:44 +0000 From: Zi Yan To: Petr Tesarik Cc: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , linux-mm@kvack.org, Brendan Jackman , Johannes Weiner , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/1] mm: reduce NODE_RECLAIM_xxx and change to enum Date: Fri, 12 Jun 2026 10:57:41 -0400 X-Mailer: MailMate (2.0r6290) Message-ID: <951C4000-50D7-40DB-A3CB-7E6FF1AA575B@nvidia.com> In-Reply-To: <20260612085052.59291-1-ptesarik@suse.com> References: <20260612085052.59291-1-ptesarik@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0PR02CA0005.namprd02.prod.outlook.com (2603:10b6:208:530::26) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS0PR12MB9275:EE_ X-MS-Office365-Filtering-Correlation-Id: ce6d5fa9-082d-4c21-f579-08dec892f527 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|376014|7416014|366016|18002099003|22082099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: Vdb/GltoffbX0RCVCsO9MU5uEWS3Ypvo3qSkAxcrwVSbjLxtmni9RhVRH9U18Umw4JN4GE9iK1TsMFQTCF6fxLvr/zYye2AEVvt2EeZuiEJtVPZadBaS1nHLz7T0noLk4tjCBQtlEbFjUpK7vlKIHHiYq5DUhLo6bciu9Qn/FY6whVK1KTwK/0s98FKX2pkJ8sDJ48RSAkfiK5MvGSc9IqmY1agVKzuEkX6P2kdWokQ3XMkGA+oJkNFxMEuiG0gyPfrOH/amUPS9ZjvIKbHYOn1el0/C+Tk5FDyI07Mlfhmdzb9jq/OrvkeSu0TtIFSShPzPbCfX94u321HJ4M8ocDBJXD6nmf5Hck7DTcmUXG+MIIoTLqIR4axJSJOqCry9YiZ36GTMW0HnfX0qP/RJxhC0mBu9CvbL7WiLRhQg4Io9ga7jmuvj2sCWD5SiLjI5du4TO7ILobNaf/Uc8bFsxSoNAaXALLlvqKnD1cQPpgyFcfHlE3MkaKsqdsaDHTmCvN9wOG54sRrKhHnceG1yiwEpMUa3w4RsZ5mm5qdXolyvJ700Rkrfl+N0tBKpEgQX32E3fpZ8M6GtBenVCrOxtNFpkHYhr1b64sr4e6iYYtds3mSjO3eB5OvGHDJhIzVfRvHUDXrZOFS66TndgaclRkjYNLybouhlDmqbEWx3b65qujHMC81Pf2wP1+aRNu+B X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(376014)(7416014)(366016)(18002099003)(22082099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZnZTbzE4U3pKOUtHakRlQkhmWDhZTlZKL2s5eHRrU0QwTTk3UmNYMUsxSHJO?= =?utf-8?B?QzB2Q0U2Ump3Z3FsT1RoRlJ1U3BIVXhoQ1grQ3JsdGtQcmtZMm96MEUycFFB?= =?utf-8?B?b2VZMi9tbk94VytkT0xtUTR4U1RWcXNJYnZ4L3hoaEZFa3FISEZobm5yVUpF?= =?utf-8?B?NmI2YnZodzdGOTNPeUZZL3hGbFFvcTF6UHp4eXJob1R6MUlLZ1V0ZGozbksx?= =?utf-8?B?d1R3bGdXbklpeGg3TGtodkZ4SENyMzRVTTVYbVlHS2hlV1dLc0s4MDlsNVgw?= =?utf-8?B?bkJvWWxWMU9Tc3FxSmV1eXdFTm1IQ2RDeko1TzYrUnR0NGsrakRqd2dIc3R3?= =?utf-8?B?SGVidFdYdEtmUWtjWlNYckJLOVQzWDZMUkpKV0NodG1XWklmQ0s2Wmc5Qjdx?= =?utf-8?B?ZHF5cmNYazNhMGZVVmQvK1N0ZGNhQ0tPZE9kMXhOZGZNOVlDSXhwdzQ3cnMv?= =?utf-8?B?WmxzVjFabk93Zk9hK2hpOXdvRHd5cjgxTHVSdkVVM2MrMzAvaTF2cHVkWVZa?= =?utf-8?B?RWp5VFlhMm80d29YeUNQLzcyWFNRNkhKN0xEcFFlRzltczNzZEJnRFFSallp?= =?utf-8?B?TG9LMG5UT1Z4RTAvUWMzTUlYQTRjUTVvdkNZSjlTb1ZIVUhqeGpqTGpCZitt?= =?utf-8?B?VEUzUFRGWEVFZ0trd3NOMVJ2a0RPelRScU5UcTdzeDFkSWdBaCthTGpteWJt?= =?utf-8?B?Vll2S255V2NhL0RPWGs5TFNyRVZ1SjNLbTFJV0NYaGhWdGJxRHJNOWREc2cr?= =?utf-8?B?QkJ1VXNxRFBJTVZ3bWRKNTVFQkVUSDY3RDlkVW02cHlVYmlJVWZ5YlJ1RmFm?= =?utf-8?B?SFFsSGZnczhEMlp6YTNJbVdBSmYxamdsUHN1amw0cGtwMCtIOHV0dkRFTnhR?= =?utf-8?B?ODRMR2xSMWw0YUJxaVVxL3Yrb1R2bUZRclVKVzZ4amlEYUpqdTRJNS9yanI1?= =?utf-8?B?WW0rdGR6SHA1K3Zwd3h6WGJnU0loN2lKZytuSEF4UzdOb0pCeG9ZWGtOQ2Fq?= =?utf-8?B?djN5WllRRCttNnk2aVpnUFc2dG0wZ0wzYTRFT0FMOE56aEVXWkhrYjlPUmY3?= =?utf-8?B?c1lMMEd4dWJwbC9WWmNibnBvS1VITGpUd0JFZ2JzcmpNTDdHNUh3Vkx5RHRy?= =?utf-8?B?d2lWam4yMVZOT3E2MW1nS1lkdFZEWWtaSDl5WmZOSWJnd3JlS3F1MHNNbHd2?= =?utf-8?B?VFpKeFI3Tlp1bURmM3BuekY1WmJOSXdCNU8wYWJaOFFNYUdIZlpDQ3AxbmVQ?= =?utf-8?B?YTM0bEY5Ky84U25TcmRhN09zWTVpSk82SHBldXExWkxJZ2ZDVnV3RjI0Mytw?= =?utf-8?B?dmt4QlpJb2kzSzRNeVJWaFJVUm1NNytMbkV0N2lBcWl3ZHR4aXRjSjVFYXgr?= =?utf-8?B?NklWWER1N1FNQXhGR2xiOHd2a1lDYlJ6enhBQ3p0YzVyTVJIOHFwSmFvUEdG?= =?utf-8?B?S3kxbTBHSnRrYjF0MmdOb25KQS8xZXc4K2xTU1BRa2g2azRvTHZoWldNcFJP?= =?utf-8?B?TFE4V2ZQcjdhWWR1SVF0Z05NV1htQUdmUmltRjQxK2piVTFTT0lBTjdFdmVP?= =?utf-8?B?K3pQQ3djQmFOSm8zZllOZ2Z4UG11MDBVSzFJOFVTNk9MSTdFd0E5bXdQNEUw?= =?utf-8?B?aExDNE14dU9DWDYvOUpxVkR6dVZYYzZORXVHb1o4a2h4NnJOanhPTnJvYTd4?= =?utf-8?B?eVNKSUE0YzdzYzhvdytuT1p0dGxickJxUDRZS0dCWkRXdUJwSUZ6elNMVE9M?= =?utf-8?B?ZFJEKzQvWkpmTFoyZ2NjMWptL1ArOFM5aE8xaVBNTlM2Tk9rVk15andkRDFT?= =?utf-8?B?NEdTSWRwL1ZaQXY5ZnpUTzJtYm1XUkVqa3ZoY2IrZHgvYzhZUE5pMG9udXFX?= =?utf-8?B?cEhVajBrSEgwQ1lEYUFjd0JjcElqdVNkTDB0VUtubUNEdFZjUHJJM3duRzQ5?= =?utf-8?B?MEpBV0NWNVpCTk5IK2tSRTlpcFhEQlhHdVYrbVNMRWE5LzlkdHptUlNSNllI?= =?utf-8?B?aUpldzBJSEdCdWQwUXdEUEVqUUtlUjRvaTNpTmxYNit3SGFrby85aExpQkUw?= =?utf-8?B?eU9WYVNqMFpRaGNJV293OStWN0ZGam53UTQzZUdvbE9oQ0F3cXhDRFQ0RFF5?= =?utf-8?B?TUh4NU85eUlTVDRSeTRrVmVIeFE1dmtpSXlFakJ0K0d6NG5hc2pZRjBzNXZX?= =?utf-8?B?VlNCR1NwSGtTbGVoUHJGVUFvUjMrS2xJNUdEalJQUnM3eVBrZG0wd1dMQ0c1?= =?utf-8?B?ZUprNENoK3duZXF6ZkRJZjZmTDZOTlFCc3NoODlzSUQ4RE04TExaKzVzSEg5?= =?utf-8?Q?mjQMTi6fVydkfRSitn?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce6d5fa9-082d-4c21-f579-08dec892f527 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2026 14:57:43.9280 (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: M5z1T2nLL+83zVugfDV6WCmklzmToIKbLw6eRkZF1JxpnmwFjNc3UTFjTCKfJjtt X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9275 On 12 Jun 2026, at 4:50, Petr Tesarik wrote: > Change node_reclaim() to return an enum indicating whether any > pages have been reclaimed, because that's all the information > needed by the only caller, get_page_from_freelist(). > > This leads to the following translation of the old macro > identifiers to the new enum values: > > - NODE_RECLAIM_NOSCAN -> NODE_RECLAIM_NONE > - NODE_RECLAIM_FULL -> NODE_RECLAIM_NONE > - NODE_RECLAIM_SOME -> NODE_RECLAIM_SUCCESS > - NODE_RECLAIM_SUCCESS -> NODE_RECLAIM_SUCCESS > > Originally, I was looking for occurences of NODE_RECLAIM_SOME > and NODE_RECLAIM_SUCCESS, but I couldn't find any. That's because > they are typecast from the result of a relational operator. This > seemed a bit fragile, so I dug a bit deeper and came up with this > proposed cleanup. > > Signed-off-by: Petr Tesarik > > -- > > Changes from v1: > - use an enum instead of a bool > --- > mm/internal.h | 17 +++++++++-------- > mm/page_alloc.c | 19 ++++--------------- > mm/vmscan.c | 18 +++++++++--------- > 3 files changed, 22 insertions(+), 32 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index 181e79f1d6a20..89b0ea28051c1 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -1373,23 +1373,24 @@ static inline void mminit_verify_zonelist(void) > } > #endif /* CONFIG_DEBUG_MEMORY_INIT */ > > -#define NODE_RECLAIM_NOSCAN -2 > -#define NODE_RECLAIM_FULL -1 > -#define NODE_RECLAIM_SOME 0 > -#define NODE_RECLAIM_SUCCESS 1 > +enum node_reclaim { > + NODE_RECLAIM_NONE, > + NODE_RECLAIM_SUCCESS, > +}; > > #ifdef CONFIG_NUMA > extern int node_reclaim_mode; > > -extern int node_reclaim(struct pglist_data *, gfp_t, unsigned int); > +extern enum node_reclaim node_reclaim(struct pglist_data *pgdat, > + gfp_t gfp_mask, unsigned int order); > extern int find_next_best_node(int node, nodemask_t *used_node_mask); > #else > #define node_reclaim_mode 0 > > -static inline int node_reclaim(struct pglist_data *pgdat, gfp_t mask, > - unsigned int order) > +static inline enum node_reclaim node_reclaim(struct pglist_data *pgdat, > + gfp_t mask, unsigned int order) > { > - return NODE_RECLAIM_NOSCAN; > + return NODE_RECLAIM_NONE; > } > static inline int find_next_best_node(int node, nodemask_t *used_node_ma= sk) > { > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index f7db8f049bd23..83a1caac5ac9c 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -3899,8 +3899,6 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int= order, int alloc_flags, > if (!zone_watermark_fast(zone, order, mark, > ac->highest_zoneidx, alloc_flags, > gfp_mask)) { > - int ret; > - > if (cond_accept_memory(zone, order, alloc_flags)) > goto try_this_zone; > > @@ -3921,22 +3919,13 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned i= nt order, int alloc_flags, > !zone_allows_reclaim(zonelist_zone(ac->preferred_zoneref), zone)) > continue; > > - ret =3D node_reclaim(zone->zone_pgdat, gfp_mask, order); > - switch (ret) { > - case NODE_RECLAIM_NOSCAN: > - /* did not scan */ > - continue; > - case NODE_RECLAIM_FULL: > - /* scanned but unreclaimable */ > + if (node_reclaim(zone->zone_pgdat, gfp_mask, order) =3D=3D NODE_RECLA= IM_NONE) > continue; NODE_RECLAIM_NOSCAN and NODE_RECLAIM_FULL both continue here and they appea= r nowhere else, so they can be combined into NODE_RECLAIM_NONE like you did. > > - ret =3D __node_reclaim(pgdat, gfp_mask, nr_pages, &sc) >=3D nr_pages; > + nr_reclaimed =3D __node_reclaim(pgdat, gfp_mask, nr_pages, &sc); > clear_bit_unlock(PGDAT_RECLAIM_LOCKED, &pgdat->flags); > > - if (ret) > + if (nr_reclaimed >=3D nr_pages) I was wondering why ret is changed to nr_reclaimed >=3D nr_pages, which seems to change the original semantics, until I see the =E2=80=9C>=3D= nr_pages=E2=80=9D at the end of __node_reclaim(). > count_vm_event(PGSCAN_ZONE_RECLAIM_SUCCESS); > else > count_vm_event(PGSCAN_ZONE_RECLAIM_FAILED); > > - return ret; > + return NODE_RECLAIM_SUCCESS; > } > > #else The patch keeps the original semantics, so Reviewed-by: Zi Yan In terms of the question raised by Brendan about the return value by __node_reclaim(), I will follow the discussion on the other thread. Best Regards, Yan, Zi