From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012003.outbound.protection.outlook.com [40.93.195.3]) (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 CD9BB2C0F83 for ; Fri, 14 Nov 2025 17:15:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.3 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763140545; cv=fail; b=DghWR5TtnCik4zpKZ55AOe04Pxm4g/vXtdVbJuB4I5LdZ7pPh8U3+cLaxqOwKay+IvUYnCm3QI413p7VHsbjBhghMmr4MP7/afjzYHD/Xei6EWhgbKP0xMsilblM17nanDlcipJAe5547E7RoAkl54qqn0YN7ISV6R8ddxP9HzI= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763140545; c=relaxed/simple; bh=UFSM6BQkLF3SfJ2KaFjA3+nsXO30gyj6v5Mrfmz3z3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rUIigXfZWxHmPxi8LEblUgK0kYQUTIOZHdfrRDvDAaH4sQhFKv9vcaHz5Q3muOa2BwmAx7ZzQZj4cPU3tfLVAyT/UmSrn28+MZDLxhEOrDNHIhEvv72ysop3C3PDRHzujR0/fjqmEXt1ZM3UWrqH1hMAs7bBfcR1W4mWkNFw8ik= 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=JTmh7ZvY; arc=fail smtp.client-ip=40.93.195.3 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="JTmh7ZvY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C3oFyuud9U/c0JqbAgMIcDSgbKiYE07pQHZJcmVEewEa9FFkZZahXID++FE5l4rl+aRsCXugVrsoDxqa0r3EqJ5+FQ9xft96oLxCELG9trrsjjgLtKJAC6d2dkurC0IwQv1+Xoxe8E0v6aAd9gQEGAOs6oZD+5Ochc9RUSGmeLObKOQUqOzY7Jw63lzuV+EUSICtDKhCikeWZA9uxSohNCmz48NkkBMxVkIud7wdagdCfPMBKtXN9OgsH5jhCdudcGSVjkMpBRTnyn03gJZhOx8queN5L4UyCbf+3tcjygpS+Zdw6LapNSFQui9bQuZHoCrS3EXV1NGkslnBgmUzrw== 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=UFSM6BQkLF3SfJ2KaFjA3+nsXO30gyj6v5Mrfmz3z3Y=; b=pk3upNQsPVXlFiDiVOB7OSn5afSSOIVenPEcjaGjWhtYLFsXHdhnGIOMOdkICYKX9WNuN5BilQRmOkbqBqONqvQ+DYR9Tn0MuolrdyseGI2P4+iqKfUBaEm2VQj35Y4UVDkN8eu2LookKHIoOCV7aXqHtYmJtQitkCS1erTLh1GT7MiEvG2v3H6fdK+Fyn1cNNBWWwnacsccGZbvqkoWQwiLhmuXZSKcjm+wBmxRbzFwNaKOhZBy7beHYj/jgHHkX96uIZC4qs+2sCkl5bb5YBBMF53D7PVNyJpddJOdXG5nNL58C4/8jAYYIhz1ZDTcmzLd9y8YJBeD+bzFClAhrg== 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=UFSM6BQkLF3SfJ2KaFjA3+nsXO30gyj6v5Mrfmz3z3Y=; b=JTmh7ZvYYeX43lsQ9dI/VqKvB2i2kPzUCyUugF6MIDE50SN0ZkIAMAmdbGiFBeMe2ltl8TlcqlyWJSGaADPhRLtMbQI7WtpkIIHg1IboTuwyxrhwR9RMdd4WNrmiSkwV7MyMUNetnKg98UpPYTmmpI6YXDihIgMBChmPwRhJKI+h8bzzphQbBmWxAzwFq0NxjP6EIqmbe/+paYWxR3yfp7IBilTyo4oNprq/GCNgzlK+5K2SMZTbOOngos+NzMzATM/f4z/KY9QaWFaQAJewrXUDsSr98Zz5WaiLRKHu9dEa4UoTrdTToiiof6VS0YDevBK7XLJV3C6XZ8vwetw7lQ== 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 SJ2PR12MB7896.namprd12.prod.outlook.com (2603:10b6:a03:4c6::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Fri, 14 Nov 2025 17:15:40 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 17:15:40 +0000 From: Zi Yan To: Fujunjie Cc: Brendan Jackman , akpm@linux-foundation.org, vbabka@suse.cz, surenb@google.com, mhocko@suse.com, hannes@cmpxchg.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/page_alloc: optimize lowmem_reserve max lookup using monotonicity Date: Fri, 14 Nov 2025 12:15:38 -0500 X-Mailer: MailMate (2.0r6290) Message-ID: <718D7B69-8261-430F-8EFA-1B3304AE58EB@nvidia.com> In-Reply-To: References: <912CFDB8-6374-4428-A0F2-29FB00E6ECE2@nvidia.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: BN9PR03CA0605.namprd03.prod.outlook.com (2603:10b6:408:106::10) 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_|SJ2PR12MB7896:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e145931-437b-459d-7abe-08de23a16fbd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WG9DYVN1MkdBLzVHWG5JcXpJbGgra3YzekdOc3U2THRQRXlkZWpISDJ1T0lK?= =?utf-8?B?NW9yZlhSQ1pHNHdSU1kycUpGYWdsM3NpajIvdE8rQjJNcmVCNGh4OXQ3MDR4?= =?utf-8?B?aHlsVElTb3hUeWtEUXpsM1RxM1NmUThwZFJNaFUwUTNBcVdjQjNKRm1yRzBJ?= =?utf-8?B?WnZESkVvd2hpNmkrRGdleDBaaU05ODFhS05hVXU5cG1aK29XWlpVYnVFS2g5?= =?utf-8?B?NFBXb1V1eCtYVStWVWpZQUc1YlhqVmxNQlZ0T2JvRmVCM1pwaFhiL1UzTFBq?= =?utf-8?B?a0RnT1JCR0c1NjBLdW56QmR6cmtwb0dyNUx4aVpwWkpKV05jb0VmbUxmL0pW?= =?utf-8?B?OXozQ2UxMnBBZkdRZVgxb1FUWXc5aEJOWHVybGYxZFFoYmVKbTAxYkRDY2x3?= =?utf-8?B?Z3hXZHBDVitVbGJqVmd2SGNpUVJST2p6RXFiemRkMVBLYlk5WkNwalR2ODBL?= =?utf-8?B?M1diYS9zR1dpcURzOTFyVkJTQkhvNmtXNE5TTk1aRjNLSksrTzFtc21zVHZJ?= =?utf-8?B?UjJyb1ppZGxVQTM5QVd1MXFNNnFHcUNuLzJ4MWZIT1NadVFZcHNoMmcxZU85?= =?utf-8?B?OHlIRGo2OUhqSnVteFRONkVuRFBVT3pSS1BSQkd4U3ZTcDR4U1phSERYZHdW?= =?utf-8?B?elVPYlRkR3F2am55QXFXb3JEd2cyTkd5Rk8zOGpRWnZJeitPa3ZsaFN0b1FS?= =?utf-8?B?dTMvdHBtRS9jZlFwZ1A3RnFvOExPVnhETXA1ZDVZWGE2ZFg0TGx1WU1LbEdx?= =?utf-8?B?QW44T1hhN0lqSEd3VHVVc29oWHNkc3FkUUhSVXBwdGtvZjd2QVlvRXl3aXkr?= =?utf-8?B?L1JUUVVIa0ZMQ21leFR5SVVTOWtFTXB0RFp1bDl5Y3ZCK2M1NENPaXR4TWl3?= =?utf-8?B?cTAyN3ZKODU1Y25IMXJtSkcwN2pyYjMvS0xEN1RDUmVTWkFiYzFjMmd0cCty?= =?utf-8?B?YXFIenVJbVF3Vkx3MVJJUnZkditKOFFwQ0I2d3RYM1RxSUMyaWgxeHF0RFdB?= =?utf-8?B?cHQzYW5UT0Q3UElOdVVmaHNNSW8xSjhZUFREOTdVdWxOR21vZk1pMzJFNVJC?= =?utf-8?B?SlpYdmsyVDM4STdmeGk2ZEVmMG5KV1VwZXgvZEJGM0JYd0RlUURBK2k1U2g0?= =?utf-8?B?NjFZQVFibGVpaUJCVWhxN1BRS1gzSUIyU3JCNzBLaHMvTnJWWGNDYXVWcTdG?= =?utf-8?B?QXN3ZDlGWEFIcGd6aExpQnc1M0pBRUZ4SS9LSWxXRjEwb05nbjl3ZWtQOEsr?= =?utf-8?B?SmxhTDJ0WWE4eHczVGU0UDNkdEp2OFliVUo0MnFxRkhaWTFnWkZLdndjMFN5?= =?utf-8?B?aTF0Sy9jMDJqWCtyU1lXLzRLbjdBNE4yNldscWkydG1Ic2FJZ0dpdVp1Q3Jh?= =?utf-8?B?L3M5VlZoek1pYUYrRDdaMXhQNHplOU9jU1c3Sk9xOWlMblJjVklCUFd3UWdS?= =?utf-8?B?ZUozTk5peXNzbUJ0NG9LWWhGNlNJaGduSFdmVm9hVnRMa0ZvY0sxQk8zTlBi?= =?utf-8?B?Rld0SFlwLzVsNlpoSWJUSFpMVXljUkR1MUtPWEVNUy8vWkcxT0xEQnQ1TUFk?= =?utf-8?B?SnBJekt0ZFYwTlYyQTdoSFhxVUh6N0VCRnJ1b0FldEZNOUx0MWJWbkgwcWdz?= =?utf-8?B?SXA3ZlhqdC9XYU1udlNxKzhmNkd5S0o2OStvNE5iV1NydVZkdFNuN1Q0UmdS?= =?utf-8?B?NGd2Y2wybC96N2xtSmJnNFJHTHBlNzN2M2llMml1bndEd2gyMzlTZmNHYnlF?= =?utf-8?B?aXpuRnNIUzNpNVZWVkRDUEFXbmllSEVud0hsZHg4VmpGSGtKK3gycSt3dU5r?= =?utf-8?B?dFgxbDBQL2l4RncwSVlRLzAvUGMzNHhCc3k0ZHJnd05mK242Ukg0SDJndW10?= =?utf-8?B?TTJPOFAycXJDeFkwSUx6NWg1eHFxTktsR3FvTkcreC9XbDErMk9PdmJER241?= =?utf-8?Q?KFjUnNs0nlBBXvRDjFDUabXBsFql/gh+?= 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)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OHB4eVNucHQyTW1oVDZ3TWRJT0JKelZoVXZ2eFRna3piaDZDL3Q5RVE4ZGtX?= =?utf-8?B?aDJtbGU4WHQ1Mm9pSUYzcDArZlJWRU04NkNDb0gzK0pnQjB0OHdHaitMQkQ4?= =?utf-8?B?QTdXSDFCWjFXcllpMmV1R1JGMFJKRnlzbkR2UkRCcmtlazhHUm5sUStmSDJF?= =?utf-8?B?YytSUHFlOG5nM1o1Y0ROMi9USDlvNnYzR01ZQ3pzcStVUFV2WVowMyt3TkYz?= =?utf-8?B?SlhiZExPMG04RlJmNGJ6OWtnazlhQm1raWUxb2NVWHU1eHgwbGJta3lONER5?= =?utf-8?B?TmdVVjhzckxOZVBqVEx3WEtiOW9yeFVCMDNObkxZZ2NBU0NETXl3eXZsRE9h?= =?utf-8?B?ME15a0ZXbXdWSEVBT0JvWEpFOFN2NWloeGtjV0doNkY0aEJkeG1PUm90aFd1?= =?utf-8?B?ZzlOdXNlWE92ZGVYcHM4Q2NLMlNBQXlaaThZMXhLOXA5RVJELzU5cm1DaTlv?= =?utf-8?B?S1pySytOc0Z1bStGTlVxOWN5TkQ5UjFVQzFHSUFPOUM3VkdGY21ObEZwWUIr?= =?utf-8?B?QXpNT2J5bk5ZUkJlNTBvcElwUnk5eWNYTjlWTHF0UEI3c0VoZlNyejhVS2hB?= =?utf-8?B?L3hoQlRHemN4aVlKZVpLTnc5bmxRd0RyYWowYlN1Z0x5THlrYWpEQk53bldX?= =?utf-8?B?U1R5VTQ2L1BSV1kxN2MyRUgzRGN3ODNIMy93eXp4aHF5NnBYSzM5RTRvNzBr?= =?utf-8?B?MjBIcHBrUEdKU0R5Zkltdy9sRkVvZVFEQmFlVlM0Zm1HamZXbHA5dThsQXZH?= =?utf-8?B?L0pQNXVheTNlK1h3R0hycGtaZmYrd2toS3NiTHE3MldHZmpJSFh0ZzBGSlly?= =?utf-8?B?elN4TXJGbVBRUHoyYkR4VDJIM1Z6WDZ2aDhoVXFQWFhZVjhiRldTUzdPR2pS?= =?utf-8?B?UHNkWGlpQTJTRzBuMFRxNVA4UERSLzhMYzQ5YUE3cnFvcWRyN3paUmh3TlE0?= =?utf-8?B?N1lYcUlvVGhucGJGU0ZKZlk3S2JrUjVyVmIySFNHSUw3b1FDNEJ5MFVDQmcz?= =?utf-8?B?eitZaFMwSGgxQjI0eTR5Q3I3d1hSbmI0SGVwOHY2eXUvQUF5UW5PdE5WbGx4?= =?utf-8?B?YTlnQS9VLzF6bWc2V1UzRVd1aW4yelN0NVFGOW9pSTl5VVd2d0RYYlNXZzNm?= =?utf-8?B?S2FOVG5wYWk1dWpzU0ZncVpPczJpMnVTbnVqWXJBY2tIRVgraXlkSDI3OStz?= =?utf-8?B?WmlOK3pVS0pTZ1V5SDV4amNWQVFiZGpGU3AwYzRIdFdmWEk4K0RGbHlUMmw4?= =?utf-8?B?UjFmMzlWVHYrL21oQXcvWUdRTngzbjBWWllKWjJSRkd0UEMvV2NpSUFKNit1?= =?utf-8?B?V1lJVWFEV3FnL1hDSVEySGtqckVRUzZzWEw1eVhuaVovZHlxa3RraUQrUGU2?= =?utf-8?B?ODdsdGZ0c2R4eTZBZEQ4SDh0ZDl2Wi9Db2lON05WRmQvVDVmTDNWNG5GZENU?= =?utf-8?B?THJBREptZDBuVHdldnN0ZFFiclI4d2dVcmUwWXIrK0VkYkgwNUx5Y2YwQWtr?= =?utf-8?B?MnhuaUZzOGlUU1A0MFBKNlNRbDc5YkJ4SkRnRG10aHNjTEdvTVpvcnBhVmRE?= =?utf-8?B?MTZEQmEvbTNObjNnYjczL2EzZHJKWVJ1Mzh5UzdYTHBBWTNNLzRyRC9nZDRM?= =?utf-8?B?N1p0NW0zbW05ZjVrcWlubXFWY0w0V2VFZEZldlhUQk96UGFuaEZ4TjhNWWxZ?= =?utf-8?B?TmdMUjlncmZqUFcxdGNxUW1rdnhCOUhkTE85NFVPd2U5U0lEakw4ZitKZXdF?= =?utf-8?B?YVB0UGVLVjNIUVlKRUg0bFVLb2wxcmgyTG1rd0QyRFFMTXpvK2t5aVNoOUJK?= =?utf-8?B?YXhvTlZFR2RLY1l1MGFzU084UDh5VjZyN0QyVFFHTXNETSt5bnFKcjF0RXEy?= =?utf-8?B?YlR6Qyt5SDUxKzI5ZDBCRlRVL2tQRHdlcTNIWHE2Vy9RN1BxRDFpUGRPanZI?= =?utf-8?B?d3NDWm14Q3hJOGhqWmVKU2ZJWllMZVBhMk5YMlVITC9nSTlXK2hiUkJSYVpv?= =?utf-8?B?UTdpOFdPQ1h5K1lxaURNeGZVSVMzUTZyNi9QTEJXNTN6VDhpWlRSVzlEMUtw?= =?utf-8?B?Tml3YlloRFgveFVubjdJV3JzODNzQXRZZW9nVE9vT2NXVXBkR2hSeFJqb1Zy?= =?utf-8?Q?R5vGX677ePsBu9x+eGbz16CIE?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e145931-437b-459d-7abe-08de23a16fbd X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 17:15:40.5584 (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: SbnKC/yWvQy21mkI1mWcqDsiWRk7TFvU0rCXPUL6iYoRuif63AfwqHFYvJxiNHbT X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7896 On 14 Nov 2025, at 11:34, Fujunjie wrote: > On Sat Nov 15, 2025 at 00:12 AM UTC, Zi Yan wrote: > >> My concern on this change is that the correctness of >> calculate_totalreserve_pages() now relies on the implementation of >> setup_per_zone_lowmem_reserve(). How can we make sure in the future >> this will not break when setup_per_zone_lowmem_reserve() is changed? >> Hoping people read the comment and do the right thing? > Thanks for raising this, Zi. > > I agree it would be a real problem if calculate_totalreserve_pages() > were relying on a fragile detail of how setup_per_zone_lowmem_reserve() > happens to be written today. > > What I intended to rely on is not an implementation detail, but the > semantics of zone->lowmem_reserve[j] for a given zone (with > zone_idx(zone) == i). > > For such a zone "i", zone->lowmem_reserve[j] (j > i) represents how many > pages in zone "i" must effectively be kept in reserve when deciding > whether an allocation class that is allowed to allocate from zones up to > "j" may fall back into zone "i". The purpose of these reserves is to > protect allocation classes that cannot use higher zones and therefore > depend more heavily on this lower zone. > > When viewed this way, the partial ordering in j comes from the meaning > of the field: as j increases, we are considering allocation classes that > can use a strictly larger set of fallback zones. Those more flexible > allocations should not be allowed to consume more low memory than the > less flexible ones. It would be quite unexpected—in terms of the reserve > semantics—if a higher-j allocation class were permitted to deplete zone > "i" more aggressively than a lower-j one. > > So the “non-decreasing in j” property is really a data invariant implied > by the reserve semantics, rather than an assumption about how > setup_per_zone_lowmem_reserve() happens to be implemented today. > > setup_per_zone_lowmem_reserve() currently encodes this meaning by > accumulating managed pages from higher zones and applying the configured > ratio. If some future change were to alter that implementation in a way > that breaks monotonicity, that would likely reflect a change in the > intended semantics of lowmem_reserve itself—at which point consumers > like calculate_totalreserve_pages() would naturally need to be updated > as well. Thank you for the explanation. Now your changes make more sense to me. Like Brendan mentioned, at least add a comment in setup_per_zone_lowmem_reserve() to state this monotonicity requirement and mention the correctness of calculate_totalreserve_pages() relies on it. And also please add the above text to the commit log to clarify the purpose of the patch. Thanks. Best Regards, Yan, Zi