From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6AFFC3ABC3 for ; Tue, 13 May 2025 19:16:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E253E6B00E5; Tue, 13 May 2025 15:16:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DCF076B00E7; Tue, 13 May 2025 15:16:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BF9D86B00E9; Tue, 13 May 2025 15:16:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 99CD76B00E5 for ; Tue, 13 May 2025 15:16:12 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 75AF8141554 for ; Tue, 13 May 2025 19:16:13 +0000 (UTC) X-FDA: 83438840226.11.1448195 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf25.hostedemail.com (Postfix) with ESMTP id 8AC8EA000A for ; Tue, 13 May 2025 19:16:11 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=vIpyhZuM; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747163771; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=GMaOTf5lCVpfAAKiatyMew5SdIDjB5Mn6vVIo3wIq/k=; b=eZrNrOG+FoJyQrs8ZxaGjxrHaj+gzV9+uJ0T5q4QEqZJrcbk0xYrbAA3Zhq9RUzOHPq5Hr uz479QJx1X0y+jij5Jsnh7jx4YdD1B0JJznKp/FXrTS87r0TF1COm4fc0lnatrVYVPG5DZ shHpBE0sw2QRd88vhg9L7nvaIAKWYy0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747163771; a=rsa-sha256; cv=none; b=N3w3CsgmpmaywYN2m8Yj8Bo7axANK0KqWRkOjmL0HylyufPuftHDzNZQY3yMhdwFI6KvVH ZdARCrOLpKxb2itOSGi4Xhb/nXgx/KACzo8tbxNgSE4PEErGg6Qsq7ZZ4FxOo/OJfNH9Dk Nc7nx+k0squXSOAsUDTm46k4TKYX928= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=vIpyhZuM; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 0ABD45C03DF; Tue, 13 May 2025 19:13:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF020C4CEEB; Tue, 13 May 2025 19:16:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1747163770; bh=V5k52dYSA/PfZQQrQjSFHrnEBE6zy003veOdMuDJAQY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=vIpyhZuMig6+2KRQqd+4EEee0IL+YxvHG2ToxEHYvlS5v4a5UEcMJZvQxEWi2lxx3 15mvKpTYJkAlaO+R9g/HCZiJQ8uPhrXtoUTW17KXijcDILiVm/l+vkyIxw5HzBkTMy mkRu52a24jJeZ7e5eNBuBCA+OXvxH6OiE9s3+jjI= Date: Tue, 13 May 2025 12:16:09 -0700 From: Andrew Morton To: Suren Baghdasaryan Cc: Tianyang Zhang , Harry Yoo , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Vlastimil Babka , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan Subject: Re: [PATCH] mm/page_alloc.c: Avoid infinite retries caused by cpuset race Message-Id: <20250513121609.a9741e49a0e865f25f966de1@linux-foundation.org> In-Reply-To: References: <20250416082405.20988-1-zhangtianyang@loongson.cn> <025e3f51-2ab5-bc58-5475-b57103169a82@loongson.cn> <20250422171116.f3928045a13205dc1b9a46ea@linux-foundation.org> <20250510200740.b7de2408e40be7ad5392fed9@linux-foundation.org> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: ijzwwqm7asayri1in879zocbpzriw9z7 X-Rspamd-Queue-Id: 8AC8EA000A X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1747163771-518213 X-HE-Meta: U2FsdGVkX18HMnDiWxgQQGV7XZF8aFAgWlUxZHwswGpCEHcl+HyfAOVCQq8yuD1KZY5nhAkC4FYDXDmzpNpVw+s9ZNxJ0ZSyIBYTGgHcTIKs7HpX7PurIRAzqCGGfxUPPi3W7sNdTSwNGkvruUAxH7D6BmeHwUuNMULXDykXlfUmw8V1453D0zx/bSsoFc7Q8AY9W5xGCiAsqjiUOAPjRYxULgnsWnhKFBqKY+IOXOT2Ar5bY6Dr/OLvV1D9Ic+mtJTjqPQoNYSyvNSSmrjOiwd3suBowW6xwFPmXZxRh+dUFoWGm4UJ7MUdrB/yNSWLi+Z/JmzFOuB1wmc3HW/8IL6S4BVTlBqIuj+MdVTOmnH3TLOQngk1Ph4wbOZO+IXaLEEy69HjCD4KRI+N2gL0+au+gHxe+afTgOtDNoX4d6dRfvDBE0bJa0QX6klC1pJOwpJ5vCGyxNFzZLNLW/LOspOSplTVd6i+pSn1xtK1wJGFs/n8uxKq88VLw377tUGSWy1VVmeYP+qKQ6Q8nslBO+LU3yE88MjoFT9Rm1HKv7UgWtxUsFQ/uBkvIlrElE/y6PZYoJZvy/V/w2AOdqfGoqR90OaxcjJBu7YgC3w8tNNweEtyEBwSTCampS2uzPTmMnadOqTuDdCPI79cI9CKDr46EPHrQi3jDSx/k7LEGJ9XPWE64DPNY0cwtSNaaQKLQ9fqOOjAbzwbasWufhk2HZoTQUU/n/mXjXXdQZEeW5ayRHDzyCUJ9wwnBcod29+IF9q+YY7DO/FJcZ8s0zdw8bXUh3yfFUAb1SrPiZd4AzDc5j4OFcg9Y84B8n+tCouC7BUZN9vsjxeIArYLR8HvPLM65wcaATDAjXQ8P6ReVHdBygYzLW4CONIoj05IBxqXtjUo3SOZ9vMVlO/aotYYCKsA7op4Y4NdIFvkUJBc3p8iswRaVgVRbkXorc1Sgogt6WKaZzHMemFGhBzfKJZ Zxbs4r+5 CIHdBaXo4pWgbbdnxP8RKCSyFzVVTyMaawRHPiFNafenUSj5mlw9HWB7RGSIuDh+PYu4yCkHHrVy89qSAQSL8ozCoPlpovVw4bsJulgjX9c1KwauVhpcA7IWvmsnFkD94vlz/BwWWkFTfz6A7cIewU+lYW5F7+ijva0nc7xfCsuhmE0Ky/ayqg6cjjr5Pg1pSGHX2gRzMaUzETlFbCXfBdHJE23Gfpx0rlmI6JSK9l3V5hff+i1f6HMSJVh5qyoP0EA0t+XeiDhDryK1wWvMbT8jX4kYbH9zIr622GxZWIH3OmcUAnPOodQUDttRHzMUEzUXTsDfFB+Ipj1xXT4ynUI06zPEciN8keWFYe39rBJ2Zi7PttPzYBIZDxI6XC+L2SZ1qQ7vbDpzDf4r+Kba8ZVWGlAb68dD/MCByYmVBjzQKKUSvtE5iz7HGa8A9dW35dBoPnMR8Hjsjilb9+ofDlPTwJ57a9qqYEHDZ1Ovbn0f5YWaQraRVpoZIiAsQYR+W97InxnSY12+06q5ZRDd7dTDj1UulWHDHqcdIZb47sU3LgM0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, 13 May 2025 09:26:53 -0700 Suren Baghdasaryan wrote: > > > > This has been in mm-hotfixes-unstable for six days. Hopefully we'll > > > > see some review activity soon (please). > > > > > > I reviewed and provided my feedback but saw neither a reply nor a > > > respin with proposed changes. > > > > OK, thanks. Do you have time to put together a modified version of this? > > I think the code is fine as is. Would be good to add Fixes: tag but it > will require some investigation to find the appropriate patch to > reference here. Below is what is in mm-hotfixes. It doesn't actually have any acked-by's or reviewed-by's. So... final call for review, please. From: Tianyang Zhang Subject: mm/page_alloc.c: avoid infinite retries caused by cpuset race Date: Wed, 16 Apr 2025 16:24:05 +0800 __alloc_pages_slowpath has no change detection for ac->nodemask in the part of retry path, while cpuset can modify it in parallel. For some processes that set mempolicy as MPOL_BIND, this results ac->nodemask changes, and then the should_reclaim_retry will judge based on the latest nodemask and jump to retry, while the get_page_from_freelist only traverses the zonelist from ac->preferred_zoneref, which selected by a expired nodemask and may cause infinite retries in some cases cpu 64: __alloc_pages_slowpath { /* ..... */ retry: /* ac->nodemask = 0x1, ac->preferred->zone->nid = 1 */ if (alloc_flags & ALLOC_KSWAPD) wake_all_kswapds(order, gfp_mask, ac); /* cpu 1: cpuset_write_resmask update_nodemask update_nodemasks_hier update_tasks_nodemask mpol_rebind_task mpol_rebind_policy mpol_rebind_nodemask // mempolicy->nodes has been modified, // which ac->nodemask point to */ /* ac->nodemask = 0x3, ac->preferred->zone->nid = 1 */ if (should_reclaim_retry(gfp_mask, order, ac, alloc_flags, did_some_progress > 0, &no_progress_loops)) goto retry; } Simultaneously starting multiple cpuset01 from LTP can quickly reproduce this issue on a multi node server when the maximum memory pressure is reached and the swap is enabled Link: https://lkml.kernel.org/r/20250416082405.20988-1-zhangtianyang@loongson.cn Fixes: 902b62810a57 ("mm, page_alloc: fix more premature OOM due to race with cpuset update"). Signed-off-by: Tianyang Zhang Cc: Vlastimil Babka Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Brendan Jackman Cc: Johannes Weiner Cc: Zi Yan Cc: Signed-off-by: Andrew Morton --- mm/page_alloc.c | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/mm/page_alloc.c~mm-page_allocc-avoid-infinite-retries-caused-by-cpuset-race +++ a/mm/page_alloc.c @@ -4562,6 +4562,14 @@ restart: } retry: + /* + * Deal with possible cpuset update races or zonelist updates to avoid + * infinite retries. + */ + if (check_retry_cpuset(cpuset_mems_cookie, ac) || + check_retry_zonelist(zonelist_iter_cookie)) + goto restart; + /* Ensure kswapd doesn't accidentally go to sleep as long as we loop */ if (alloc_flags & ALLOC_KSWAPD) wake_all_kswapds(order, gfp_mask, ac); _