Skip to content

IO-less dirty throttling v11

Wu Fengguang linux-fsdevel linux-mm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest18 patches 55 repliesIn review

Changes since v10 from the cover letter

- 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

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/18writeback: account per-bdi accumulated dirtied pagesinclude/linux/backing-dev.h mm/backing-dev.c mm/page-writeback.c+4 -00 replies
2/18writeback: dirty position controlfs/fs-writeback.c include/linux/writeback.h mm/page-writeback.c+210 -67 replies
3/18writeback: dirty rate controlinclude/linux/backing-dev.h mm/backing-dev.c mm/page-writeback.c+88 -21 reply
4/18writeback: stabilize bdi->dirty_ratelimitmm/page-writeback.c+63 -10 replies
5/18writeback: per task dirty rate limitinclude/linux/sched.h kernel/fork.c mm/page-writeback.c+60 -397 replies
6/18writeback: IO-less balance_dirty_pages()include/trace/events/writeback.h mm/page-writeback.c+56 -1292 replies
7/18writeback: dirty ratelimit - think time compensationinclude/linux/sched.h kernel/fork.c mm/page-writeback.c+33 -30 replies
8/18writeback: trace dirty_ratelimitinclude/trace/events/writeback.h mm/page-writeback.c+49 -00 replies
9/18writeback: trace balance_dirty_pagesinclude/trace/events/writeback.h mm/page-writeback.c+105 -00 replies
10/18writeback: dirty position control - bdi reserve areamm/page-writeback.c+26 -012 replies
11/18block: add bdi flag to indicate risk of io queue underrunblock/blk-core.c include/linux/backing-dev.h include/linux/blkdev.h +1 more+40 -03 replies
12/18writeback: balanced_rate cannot exceed write bandwidthmm/page-writeback.c+5 -00 replies
13/18writeback: limit max dirty pause timemm/page-writeback.c+42 -34 replies
14/18writeback: control dirty pause timemm/page-writeback.c+14 -13 replies
15/18writeback: charge leaked page dirties to active tasksinclude/linux/writeback.h kernel/exit.c mm/page-writeback.c+16 -04 replies
16/18writeback: fix dirtied pages accounting on sub-page writesmm/page-writeback.c+1 -20 replies
17/18writeback: fix dirtied pages accounting on redirtyinclude/linux/writeback.h mm/page-writeback.c+14 -08 replies
18/18btrfs: fix dirtied pages accounting on sub-page writesfs/btrfs/file.c+2 -10 replies

Reviews trailers per patch

2 of 18 patches have a Reviewed-by or Acked-by.

PatchJan KaraAndrea Righi
1/18
2/18A-b
3/18
4/18
5/18R-b
6/18
7/18
8/18
9/18
10/18
11/18
12/18
13/18
14/18
15/18
16/18
17/18
18/18

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

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

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, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>