aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/dev-replace.c
diff options
context:
space:
mode:
authorMel Gorman <[email protected]>2021-12-31 21:10:09 +0000
committerLinus Torvalds <[email protected]>2021-12-31 21:12:55 +0000
commit8008293888188c3923f5bd8a69370dae25ed14e5 (patch)
tree4ddefd2eb46ae893bbf9a58fcf4b1b1747e80c65 /fs/btrfs/dev-replace.c
parentmm: vmscan: Reduce throttling due to a failure to make progress (diff)
downloadkernel-8008293888188c3923f5bd8a69370dae25ed14e5.tar.gz
kernel-8008293888188c3923f5bd8a69370dae25ed14e5.zip
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. Link: https://lkml.kernel.org/r/[email protected] Fixes: 1b4e3f26f9f75 ("mm: vmscan: Reduce throttling due to a failure to make progress") Signed-off-by: Mel Gorman <[email protected]> Reported-by: Hugh Dickins <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: Rik van Riel <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Darrick J. Wong <[email protected]> Cc: Shakeel Butt <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions