Re: [PATCH v4 1/1] mm: vmscan: Reduce throttling due to a failure to make progress
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2021-12-31 21:04:58
Also in:
linux-fsdevel, lkml, regressions
On Fri, 31 Dec 2021 11:21:14 -0800 Linus Torvalds [off-list ref] wrote:
On Fri, Dec 31, 2021 at 11:14 AM Linus Torvalds [off-list ref] wrote:quoted
On Fri, Dec 31, 2021 at 6:24 AM Thorsten Leemhuis [off-list ref] wrote:quoted
If we get it into rc8 (which is still possible, even if a bit hard due to the new year festivities), it will get at least one week of testing.I took it with Hugh's ack from his reply to this, so it should be in rc8.Pushed out as 1b4e3f26f9f7 ("mm: vmscan: Reduce throttling due to a failure to make progress")
Needs this fixup, which I shall tweak a bit then send formally
in a few minutes.
From: Mel Gorman <redacted>
Subject: mm: vmscan: reduce throttling due to a failure to make progress -fix
Hugh Dickins reported the following
My tmpfs swapping load (tweaked to use huge pages more heavily
than in real life) is far from being a realistic load: but it was
notably slowed down by your throttling mods in 5.16-rc, and this
patch makes it well again - thanks.
But: it very quickly hit NULL pointer until I changed that last
line to
if (first_pgdat)
consider_reclaim_throttle(first_pgdat, sc);
The likely issue is that huge pages are a major component of the test
workload. When this is the case, first_pgdat may never get set if
compaction is ready to continue due to this check
if (IS_ENABLED(CONFIG_COMPACTION) &&
sc->order > PAGE_ALLOC_COSTLY_ORDER &&
compaction_ready(zone, sc)) {
sc->compaction_ready = true;
continue;
}
If this was true for every zone in the zonelist, first_pgdat would never
get set resulting in a NULL pointer exception.
This is a fix to the mmotm patch
mm-vmscan-reduce-throttling-due-to-a-failure-to-make-progress.patch
Link: https://lkml.kernel.org/r/20211209095453.GM3366@techsingularity.net
Signed-off-by: Mel Gorman <redacted>
Reported-by: Hugh Dickins <hughd@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Vlastimil Babka <redacted>
Cc: Rik van Riel <riel@surriel.com>
Cc: Mike Galbraith <redacted>
Cc: Darrick J. Wong <djwong@kernel.org>
Cc: Shakeel Butt <redacted>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/vmscan.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/mm/vmscan.c~mm-vmscan-reduce-throttling-due-to-a-failure-to-make-progress-fix
+++ a/mm/vmscan.c@@ -3530,7 +3530,8 @@ static void shrink_zones(struct zonelist shrink_node(zone->zone_pgdat, sc); } - consider_reclaim_throttle(first_pgdat, sc); + if (first_pgdat) + consider_reclaim_throttle(first_pgdat, sc); /* * Restore to original mask to avoid the impact on the caller if we
_