[PATCH 00/18] IO-less dirty throttling v11

From: Wu Fengguang
Date: Sat Sep 03 2011 - 22:13:47 EST


Hi,

Finally, the complete IO-less balance_dirty_pages(). NFS is observed to perform
better or worse depending on the memory size. Otherwise the added patches can
address all known regressions.

git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback.git dirty-throttling-v11
(to be updated; currently it contains a pre-release v11)

Changes since v10:

- complete the renames
- add protections for IO queue underrun
- pause time reduction
- bdi reserve area
- bdi underrun flag
- more accurate task dirty accounting for
- sub-page writes
- FS re-dirties
- short lived tasks

Changes since v9:

- a lot of renames and comment/changelog rework, again
- seperate out the dirty_ratelimit update policy (as patch 04)
- add think time compensation
- add 3 trace events

Changes since v8:

- a lot of renames and comment/changelog rework
- use 3rd order polynomial as the global control line (Peter)
- stabilize dirty_ratelimit by decreasing update step size on small errors
- limit per-CPU dirtied pages to avoid dirty pages run away on 1k+ tasks (Peter)

Thanks a lot to Peter, Vivek, Andrea and Jan for the careful reviews!

shortlog:

Wu Fengguang (18):
writeback: account per-bdi accumulated dirtied pages
writeback: dirty position control
writeback: dirty rate control
writeback: stabilize bdi->dirty_ratelimit
writeback: per task dirty rate limit
writeback: IO-less balance_dirty_pages()
writeback: dirty ratelimit - think time compensation
writeback: trace dirty_ratelimit
writeback: trace balance_dirty_pages
writeback: dirty position control - bdi reserve area
block: add bdi flag to indicate risk of io queue underrun
writeback: balanced_rate cannot exceed write bandwidth
writeback: limit max dirty pause time
writeback: control dirty pause time
writeback: charge leaked page dirties to active tasks
writeback: fix dirtied pages accounting on sub-page writes
writeback: fix dirtied pages accounting on redirty
btrfs: fix dirtied pages accounting on sub-page writes

diffstat:

block/blk-core.c | 7
fs/btrfs/file.c | 3
fs/fs-writeback.c | 2
include/linux/backing-dev.h | 26
include/linux/blkdev.h | 12
include/linux/sched.h | 8
include/linux/writeback.h | 5
include/trace/events/writeback.h | 151 ++++-
kernel/exit.c | 2
kernel/fork.c | 4
mm/backing-dev.c | 3
mm/page-writeback.c | 768 +++++++++++++++++++++++------
12 files changed, 816 insertions(+), 175 deletions(-)

Thanks,
Fengguang

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