Re: [PATCH 8/8] vm: Add an tuning knob for vm.max_writeback_mb

From: Jan Kara
Date: Mon Sep 07 2009 - 15:09:25 EST

On Fri 04-09-09 09:46:46, Jens Axboe wrote:
> From: Theodore Ts'o <tytso@xxxxxxx>
> Originally, MAX_WRITEBACK_PAGES was hard-coded to 1024 because of a
> concern of not holding I_SYNC for too long. (At least, that was the
> comment previously.) This doesn't make sense now because the only
> time we wait for I_SYNC is if we are calling sync or fsync, and in
> that case we need to write out all of the data anyway. Previously
> there may have been other code paths that waited on I_SYNC, but not
> any more.
Well, I've always though that MAX_WRITEBACK_PAGES is there because
of a situation when a thread is forced to throttle on a BDI and
we'd like pdflush to yield to this thread so that it can do its duty
(otherwise it may be basically forced to wait until pdflush writes
enough for a system to drop below dirty_limit instead of writing
just sync_writeback_pages()).
What also seemed suboptimal to me (on a simple SATA drive) is that
this writeout from a throttled thread is interleaved with a writeout
from pdflush when there are more dirty inodes. So what we might
want to do once we have more threads per-bdi and thus won't hit CPU
bottleneck on high-end storage is that we'd leave writeout completely
to per-BDI threads and just make throttled thread wait until enough
IO is done on the BDI....

> According to Christoph, the current writeback size is way too small,
> and XFS had a hack that bumped out nr_to_write to four times the value
> sent by the VM to be able to saturate medium-sized RAID arrays. This
> value was also problematic for ext4 as well, as it caused large files
> to be come interleaved on disk by in 8 megabyte chunks (we bumped up
> the nr_to_write by a factor of two).
> So, in this patch, we make the MAX_WRITEBACK_PAGES a tunable,
> max_writeback_mb, and set it to a default value of 128 megabytes.
> Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx>
> Signed-off-by: Jens Axboe <jens.axboe@xxxxxxxxxx>

Jan Kara <jack@xxxxxxx>
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at