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

From: Mike Galbraith
Date: Sun Nov 28 2021 - 13:41:09 EST


On Sun, 2021-11-28 at 13:35 +0100, Mike Galbraith wrote:
>
> Bandaid likely just break the writeback bits all to pieces, but that's
> ok, if breakage makes things work better, they need more breaking :)

@@ -1048,6 +1050,10 @@ void reclaim_throttle(pg_data_t *pgdat,
*/
switch(reason) {
case VMSCAN_THROTTLE_WRITEBACK:
+ if (!async_bdi_congested()) {
+ cond_resched();
+ return;
+ }

And indeed, that's the only THROTTLE_WRITEBACK path I've seen taken.
Not pulling the plug made no difference to the tail /dev/zero test,
leaving only the bits I swiped from defunct wait_iff_congested() as
behavior delta cause. Actually sleeping there apparently stings.

-Mike