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 EF404C25B75 for ; Wed, 29 May 2024 16:20:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 534156B009C; Wed, 29 May 2024 12:20:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 495DD6B009D; Wed, 29 May 2024 12:20:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30F616B009E; Wed, 29 May 2024 12:20:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 0E5236B009C for ; Wed, 29 May 2024 12:20:58 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 8B0DD80B17 for ; Wed, 29 May 2024 16:20:57 +0000 (UTC) X-FDA: 82171947354.03.4C164F6 Received: from out-175.mta1.migadu.com (out-175.mta1.migadu.com [95.215.58.175]) by imf06.hostedemail.com (Postfix) with ESMTP id 3EC8D180012 for ; Wed, 29 May 2024 16:20:53 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=NW3NQ93Q; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf06.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.175 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716999654; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CKdtFGY2qvDebu+brZlimiXooxRBw7HUXpJ9H2HyUM8=; b=vzUJIcU0l5bwIMTxCx3OX7lXVwyQdFadw3ix/6gJRaQDYd0uWZ/cVz5xVtobbdFlUE+vku sJCig4R7s3kMGQ6jcwmgYjkUWUtpUmu+DrZbjj6pFOFNofJqAWW+wK+8jFXPhMVpMdh/YW nleC3Dp2BK7iVO0AcdG/dF0m0gQ/vaU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716999654; a=rsa-sha256; cv=none; b=lSkmLE+DFcY6K9bvTrTSbwBlm5Bd3uLN7hJlYRWS/ksCtQfxMK1M43J3h5Qyr9/2/dUn6h Kow9sweiMyuXqQhVzfHk7DyqvCr6oGatLFxzzR/j0hpCUY0aDbwxCXgVkTUG3oM+wFgp6b pCkvKru/ETsfaIwgTE8XwEnR+UGQa+E= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=NW3NQ93Q; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf06.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.175 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev X-Envelope-To: shakeel.butt@linux.dev DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1716999652; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=CKdtFGY2qvDebu+brZlimiXooxRBw7HUXpJ9H2HyUM8=; b=NW3NQ93Qo3m6BS94m+TO02ezsQNUb0s2NNOWweZX9yjZlp9KVgq6W4e5vvgwPJTdhi4UI9 IBNz67RtT9iUmAvGQQFZonQMy/eudmH0OQ/gnlLXWsicse5rAhsYEkf4HptjvV32C5QnpN 8ZVkC+dk39FLl+5Vejp2C+3FBqrCeWc= X-Envelope-To: akpm@linux-foundation.org X-Envelope-To: hannes@cmpxchg.org X-Envelope-To: riel@surriel.com X-Envelope-To: mhocko@kernel.org X-Envelope-To: kernel-team@fb.com X-Envelope-To: linux-mm@kvack.org X-Envelope-To: linux-kernel@vger.kernel.org X-Envelope-To: syzbot+17416257cb95200cba44@syzkaller.appspotmail.com Date: Wed, 29 May 2024 09:20:46 -0700 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Shakeel Butt Cc: Andrew Morton , Johannes Weiner , Rik van Riel , Michal Hocko , Facebook Kernel Team , linux-mm@kvack.org, linux-kernel@vger.kernel.org, syzbot+17416257cb95200cba44@syzkaller.appspotmail.com Subject: Re: [PATCH] mm: vmscan: reset sc->priority on retry Message-ID: References: <20240529154911.3008025-1-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240529154911.3008025-1-shakeel.butt@linux.dev> X-Migadu-Flow: FLOW_OUT X-Stat-Signature: nwowp5151sggxiqyswi6zdyeqh6kxurb X-Rspamd-Queue-Id: 3EC8D180012 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1716999653-563269 X-HE-Meta: U2FsdGVkX18bz5x3x864/kEFZ45lhK1MMvENcoQnuwZN3ttNrbAfzPFJ/CNLjBfiDIgj/8hZTKOdWkY1i6k9rKvsZqbO1+AQ4ZlzW8ptk03iSS/jgQkNOPj5G9F7uFeDM2Ee6NG2DreJx8Wdm9aqxLGC/a5EXaeKrvHtTRfcIykrHPzWzIpX/FfulOTJZe3FiJTNmJh47rWr72cCMerFjklkhdez0crT/E/x5B/FJKunMEdx8071Jigr4Lh3+Wy265spfIwFYg6tNub5NE1mrJo0bkehYlvmrcYydKTJQzBLKAgq584eOrJEebF7BVTuCsEutCL1+ILVbj0as9TXimfbQWJIXfuUrZvWLkGrsApuUy4CqdGIY+LxYscUfQl9QZFca9hOYPtPQnpC+VQbTBoo67GdQoH7cXaIjLsEsYGYxm5+Uuy1pga11u2VveqDwUt/JZ2pxCRWut9z3kK/xtJ9Q1AXVG+SbKHKWlDqkNJ3OqxLhbHFcuPNkGuf2yMaJeVrOOg2hTUSAEfKHJwjddIlePxBjQMeKAX/EOxG5Qdk9NQp/9P09exnKpOQiJgOSPhoBQ1DoalTir43YBswhuHfnRSn53TmHott9ZnGY/W4DnZfB2dtovI6FeoeG+4OgBlku4x6/qGBXZf1HOLEgw4CoVzwMyjzLuWxOgdoFfyuXqo3DNmrYib8ELmCCbBYPv8RCnoCe55uI1UguPfrqTyeG7fIsPmgl8zr52lARplOeQui6omXb6OsnY3gFUHXmob8h1r+ny4d5EAhmSANRr7IKoYOy9a1OBGJK7SBjGmAtyf5t3VKH/Tk/YBkvodDzLjBTv7MrfF6nMevv57gjdcLwMKFnTOPDr0ZeLUFkM9CwEAgMOi3yOK+nUJIJM7k/lwu6OESd/4a4/+1IXGmpJv/FfakXDlD9QdHXc+up+ecvNG9p3ytjAlXcRhUm/3wEzTx6QSJkztHOO4gl+9 2Cjjm51m gMj+JS/bc8gjUaisWgXqkFoT3KVGNhAcoUdLisGyW2W4cssXhLJ0RQo9US7OhVIikd1Eo06zxhc94k5ACwUxz4m99jDuUBPWttrNkGHvpaCEJUxeRLjNfpKXAWoWFdHdj4P6qtupkZHe51Fdai7rOnHReo/TV9WBc2vU3raLqGu7Palw8zJUZzWiIGnaEIzBwlobSc55rVcncwVIDsuy+G+QMPWW1xqJq4r+3H/aOUemEemnCr7Jdk/Tf6Q== 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 Wed, May 29, 2024 at 08:49:11AM -0700, Shakeel Butt wrote: > The commit 6be5e186fd65 ("mm: vmscan: restore incremental cgroup > iteration") added a retry reclaim heuristic to iterate all the cgroups > before returning an unsuccessful reclaim but missed to reset the > sc->priority. Let's fix it. > > Reported-and-tested-by: syzbot+17416257cb95200cba44@syzkaller.appspotmail.com > Fixes: 6be5e186fd65 ("mm: vmscan: restore incremental cgroup iteration") > Signed-off-by: Shakeel Butt Reviewed-by: Roman Gushchin Good catch! > --- > mm/vmscan.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index b9170f767353..731b009a142b 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -6317,6 +6317,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, > * meaningful forward progress. Avoid false OOMs in this case. > */ > if (!sc->memcg_full_walk) { > + sc->priority = initial_priority; > sc->memcg_full_walk = 1; > goto retry; > } > -- > 2.43.0 > I wonder if it makes sense to refactor things to be more robust like this: diff --git a/mm/vmscan.c b/mm/vmscan.c index d3ae6bf1b65c7..f150e79f736da 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -6246,7 +6246,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, if (!cgroup_reclaim(sc)) __count_zid_vm_events(ALLOCSTALL, sc->reclaim_idx, 1); - do { + for (sc->priority = initial_priority; sc->priority >= 0; sc->priority--) { if (!sc->proactive) vmpressure_prio(sc->gfp_mask, sc->target_mem_cgroup, sc->priority); @@ -6265,7 +6265,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, */ if (sc->priority < DEF_PRIORITY - 2) sc->may_writepage = 1; - } while (--sc->priority >= 0); + } last_pgdat = NULL; for_each_zone_zonelist_nodemask(zone, z, zonelist, sc->reclaim_idx, @@ -6318,7 +6318,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, * good, and retry with forcible deactivation if that fails. */ if (sc->skipped_deactivate) { - sc->priority = initial_priority; sc->force_deactivate = 1; sc->skipped_deactivate = 0; goto retry; @@ -6326,7 +6325,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, /* Untapped cgroup reserves? Don't OOM, retry. */ if (sc->memcg_low_skipped) { - sc->priority = initial_priority; sc->force_deactivate = 0; sc->memcg_low_reclaim = 1; sc->memcg_low_skipped = 0;