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