Re: RFC - how to balance Dirty+Writeback in the face of slow writeback.

From: Nikita Danilov
Date: Fri Aug 18 2006 - 06:46:15 EST


Andrew Morton writes:

[...]

>
> The way this code all works is pretty crude and simple: a process comes
> in to to some writeback and it enters a polling loop:
>
> while (we need to do writeback) {
> for (each superblock) {
> if (the superblock's backing_dev isn't congested) {
> stuff some more IO down it()
> }
> }
> take_a_nap();
> }
>
> so the process remains captured in that polling loop until the
> dirty-memory-exceed condition subsides. The reason why we avoid

Hm... wbc->nr_to_write is checked all the way down
(balance_dirty_pages(), writeback_inodes(), sync_sb_inodes(),
mpage_writepages()), so "occasional writer" cannot be stuck for more
than 32 + 16 pages, it seems.

Nikita.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/