[PATCH 0/11] Per-bdi writeback flusher threads v9

Jens Axboe
2009-05-28T11:47:12Z

Hi,

Here's the 9th version of the writeback patches. Changes since v8:

- Fix a bdi_work on-stack allocation hang. I hope this fixes Ted's
issue.
- Get rid of the explicit wait queues, we can just use wake_up_process()
since it's just for that one task.
- Add separate "sync_supers" thread that makes sure that the dirty
super blocks get written. We cannot safely do this from bdi_forker_task(),
as that risks deadlocking on ->s_umount. Artem, I implemented this
by doing the wake ups from a timer so that it would be easier for you
to just deactivate the timer when there are no super blocks.

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

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

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

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

block/blk-core.c | 1 +
drivers/block/aoe/aoeblk.c | 1 +
drivers/char/mem.c | 1 +
fs/btrfs/disk-io.c | 24 +-
fs/buffer.c | 2 +-
fs/char_dev.c | 1 +
fs/configfs/inode.c | 1 +
fs/fs-writeback.c | 804 ++++++++++++++++++++++++++++-------
fs/fuse/inode.c | 1 +
fs/hugetlbfs/inode.c | 1 +
fs/nfs/client.c | 1 +
fs/ntfs/super.c | 33 +--
fs/ocfs2/dlm/dlmfs.c | 1 +
fs/ramfs/inode.c | 1 +
fs/super.c | 3 -
fs/sync.c | 2 +-
fs/sysfs/inode.c | 1 +
fs/ubifs/super.c | 1 +
include/linux/backing-dev.h | 73 ++++-
include/linux/fs.h | 11 +-
include/linux/writeback.h | 15 +-
kernel/cgroup.c | 1 +
mm/Makefile | 2 +-
mm/backing-dev.c | 518 ++++++++++++++++++++++-
mm/page-writeback.c | 151 +------
mm/pdflush.c | 269 ------------
mm/swap_state.c | 1 +
mm/vmscan.c | 2 +-
28 files changed, 1286 insertions(+), 637 deletions(-)

--
Jens Axboe