Thread (27 messages) 27 messages, 7 authors, 2022-02-23

Re: [PATCH v4 1/1] mm: vmscan: Reduce throttling due to a failure to make progress

From: Hugh Dickins <hughd@google.com>
Date: 2021-12-09 06:20:55
Also in: linux-fsdevel, lkml, regressions

On Thu, 2 Dec 2021, Mel Gorman wrote:
...
quoted hunk ↗ jump to hunk
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
...
quoted hunk ↗ jump to hunk
@@ -3478,14 +3520,18 @@ static void shrink_zones(struct zonelist *zonelist, struct scan_control *sc)
 			/* need some check for avoid more shrink_zone() */
 		}
 
+		if (!first_pgdat)
+			first_pgdat = zone->zone_pgdat;
+
 		/* See comment about same check for global reclaim above */
 		if (zone->zone_pgdat == last_pgdat)
 			continue;
 		last_pgdat = zone->zone_pgdat;
 		shrink_node(zone->zone_pgdat, sc);
-		consider_reclaim_throttle(zone->zone_pgdat, sc);
 	}
 
+	consider_reclaim_throttle(first_pgdat, sc);
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);

I've given no thought as to whether that is the correct fix,
or if first_pgdat should be set earlier in the loop above.

Hugh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help