[PATCH 0/10] Per-bdi writeback flusher threads v14

From: Jens Axboe
Date: Mon Aug 31 2009 - 08:15:31 EST


Hi,

Here's the 14th version of the writeback patches. Changes since v13:

- Integrate Jan Kara's cleaner flag handling for the bdi work items.
- Protect writeback_single_inode() with s_umount held, so that we don't
race with umount or remount. Also from Jan Kara.
- Added Ted's patch for increasing the default ->nr_to_write and
exposing a proc file to modify it from userspace.
- Sync with latest -git, should apply to -rc8 and current HEAD fine.

I think this is still cleaner than maintaining per-sb inode lists,
as it allows us easier flexibility with adding more threads per sb
and also more backing devices per sb.

For ease of patching, I've put the full diff here:

http://kernel.dk/writeback-v14.patch

and also stored this in a writeback-v14 branch that will not change,
you can pull that into Linus tree from here:

git://git.kernel.dk/linux-2.6-block.git writeback-v14

Please test and report results/interesting finds. Thanks! The target
for this patchset is 2.6.32 and it'll be sitting (and has been for the past
week approx) in -next until then. I've did a quick test on XFS, the results
are here:

http://kernel.dk/dd-md0-xfs-flush.png

for this patchset, and:

http://kernel.dk/dd-md0-xfs-pdflush.png

for stock mainline (-git). It's two apps, each writing a file with buffered
IO. It was generated with seekwatcher kicking off a fio run, and it's
logging actual disk throughput. I think the results speak for themselves.
Note that the run was done WITHOUT increasing ->nr_to_write.

b/block/blk-core.c | 1
b/drivers/block/aoe/aoeblk.c | 1
b/drivers/char/mem.c | 1
b/fs/btrfs/disk-io.c | 1
b/fs/buffer.c | 2
b/fs/char_dev.c | 1
b/fs/configfs/inode.c | 1
b/fs/fs-writeback.c | 769 ++++++++++++++++++++++++++--------
b/fs/fuse/inode.c | 1
b/fs/hugetlbfs/inode.c | 1
b/fs/nfs/client.c | 1
b/fs/ocfs2/dlm/dlmfs.c | 1
b/fs/ramfs/inode.c | 1
b/fs/super.c | 3
b/fs/sync.c | 2
b/fs/sysfs/inode.c | 1
b/fs/ubifs/super.c | 1
b/include/linux/backing-dev.h | 71 +++
b/include/linux/fs.h | 11
b/include/linux/writeback.h | 16
b/kernel/cgroup.c | 1
b/kernel/sysctl.c | 8
b/mm/Makefile | 2
b/mm/backing-dev.c | 533 +++++++++++++++++++++++
b/mm/page-writeback.c | 165 +------
b/mm/swap_state.c | 1
b/mm/vmscan.c | 2
mm/pdflush.c | 269 -----------
28 files changed, 1270 insertions(+), 598 deletions(-)

--
Jens Axboe


--
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/