Andrea Arcangeli wrote:
On Thu, Jan 06, 2005 at 04:19:36PM +1100, Nick Piggin wrote:
This is practically what blk_congestion_wait does when the queue
isn't congested though, isn't it?
The fundamental difference that makes it reliable is that:
1) only the I/O we're throttling against will be considered for the
wakeup event, which means only clearing PG_writeback will be
considered eligible for wakeup
Currently _all_ unrelated write I/O was considered eligible
for wakeup events and that could cause spurious oom kills.
I'm not entirely convinced. In Rik's case it didn't matter, because
all his writeout was in the same zone that reclaim was happening
against (ZONE_NORMAL), so in that case, PG_writeback throttling
will do exactly the same thing as blk_congestion_wait.
I do like your PG_writeback throttling idea for the other reason
that it should behave better on NUMA systems with lots of zones
and lots of disks.