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. > > http://bugzilla.kernel.org/show_bug.cgi?id=13930 > > Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> > Signed-off-by: Jens Axboe <jens.axboe@xxxxxxxxxx> Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html