From: Jens Axboe <axboe@fb.com>
To: <torvalds@linuxfoundation.org>
Cc: <linux-kernel@vger.kernel.org>
Subject: [GIT PULL] Cgroup writeback support for 4.2
Date: Thu, 25 Jun 2015 08:44:32 -0600 [thread overview]
Message-ID: <20150625144432.GD13739@kernel.dk> (raw)
Hi Linus,
This is the big pull request for adding cgroup writeback support. This
code has been in development for a long time, and it has been simmering
in for-next for a good chunk of this cycle too. This is one of those
problems that has been talked about for at least half a decade, finally
there's a solution and code to go with it.
Also see last weeks writeup on LWN:
http://lwn.net/Articles/648292/
This pull request is on top of for-4.2/core, sent out earlier.
Please pull!
git://git.kernel.dk/linux-block.git for-4.2/writeback
----------------------------------------------------------------
Greg Thelen (1):
memcg: add per cgroup dirty page accounting
Jens Axboe (1):
buffer: remove unusued 'ret' variable
Tejun Heo (83):
page_writeback: revive cancel_dirty_page() in a restricted form
blkcg: move block/blk-cgroup.h to include/linux/blk-cgroup.h
update !CONFIG_BLK_CGROUP dummies in include/linux/blk-cgroup.h
blkcg: always create the blkcg_gq for the root blkcg
memcg: add mem_cgroup_root_css
blkcg: add blkcg_root_css
cgroup, block: implement task_get_css() and use it in bio_associate_current()
blkcg: implement task_get_blkcg_css()
blkcg: implement bio_associate_blkcg()
memcg: implement mem_cgroup_css_from_page()
writeback: move backing_dev_info->state into bdi_writeback
writeback: move backing_dev_info->bdi_stat[] into bdi_writeback
writeback: move bandwidth related fields from backing_dev_info into bdi_writeback
writeback: s/bdi/wb/ in mm/page-writeback.c
writeback: move backing_dev_info->wb_lock and ->worklist into bdi_writeback
writeback: reorganize mm/backing-dev.c
writeback: separate out include/linux/backing-dev-defs.h
bdi: make inode_to_bdi() inline
writeback: add @gfp to wb_init()
bdi: separate out congested state into a separate struct
writeback: add {CONFIG|BDI_CAP|FS}_CGROUP_WRITEBACK
writeback: make backing_dev_info host cgroup-specific bdi_writebacks
writeback, blkcg: associate each blkcg_gq with the corresponding bdi_writeback_congested
writeback: attribute stats to the matching per-cgroup bdi_writeback
writeback: let balance_dirty_pages() work on the matching cgroup bdi_writeback
writeback: make congestion functions per bdi_writeback
writeback, blkcg: restructure blk_{set|clear}_queue_congested()
writeback, blkcg: propagate non-root blkcg congestion state
writeback: implement and use inode_congested()
writeback: implement WB_has_dirty_io wb_state flag
writeback: implement backing_dev_info->tot_write_bandwidth
writeback: make bdi_has_dirty_io() take multiple bdi_writeback's into account
writeback: don't issue wb_writeback_work if clean
writeback: make bdi->min/max_ratio handling cgroup writeback aware
writeback: implement bdi_for_each_wb()
writeback: remove bdi_start_writeback()
writeback: make laptop_mode_timer_fn() handle multiple bdi_writeback's
writeback: make writeback_in_progress() take bdi_writeback instead of backing_dev_info
writeback: make bdi_start_background_writeback() take bdi_writeback instead of backing_dev_info
writeback: make wakeup_flusher_threads() handle multiple bdi_writeback's
writeback: make wakeup_dirtytime_writeback() handle multiple bdi_writeback's
writeback: add wb_writeback_work->auto_free
writeback: implement bdi_wait_for_completion()
writeback: implement wb_wait_for_single_work()
writeback: restructure try_writeback_inodes_sb[_nr]()
writeback: make writeback initiation functions handle multiple bdi_writeback's
writeback: dirty inodes against their matching cgroup bdi_writeback's
buffer, writeback: make __block_write_full_page() honor cgroup writeback
mpage: make __mpage_writepage() honor cgroup writeback
ext2: enable cgroup writeback support
memcg: make mem_cgroup_read_{stat|event}() iterate possible cpus instead of online
writeback: clean up wb_dirty_limit()
writeback: reorganize [__]wb_update_bandwidth()
writeback: implement wb_domain
writeback: move global_dirty_limit into wb_domain
writeback: consolidate dirty throttle parameters into dirty_throttle_control
writeback: add dirty_throttle_control->wb_bg_thresh
writeback: make __wb_calc_thresh() take dirty_throttle_control
writeback: add dirty_throttle_control->pos_ratio
writeback: add dirty_throttle_control->wb_completions
writeback: add dirty_throttle_control->dom
writeback: make __wb_writeout_inc() and hard_dirty_limit() take wb_domaas a parameter
writeback: separate out domain_dirty_limits()
writeback: move over_bground_thresh() to mm/page-writeback.c
writeback: update wb_over_bg_thresh() to use wb_domain aware operations
writeback: implement memcg wb_domain
writeback: reset wb_domain->dirty_limit[_tstmp] when memcg domain size changes
writeback: implement memcg writeback domain based throttling
mm: vmscan: disable memcg direct reclaim stalling if cgroup writeback support is in use
writeback: relocate wb[_try]_get(), wb_put(), inode_{attach|detach}_wb()
writeback: make writeback_control track the inode being written back
writeback: implement foreign cgroup inode detection
writeback: implement [locked_]inode_to_wb_and_lock_list()
writeback: implement unlocked_inode_to_wb transaction and use it for stat updates
writeback: use unlocked_inode_to_wb transaction in inode_congested()
writeback: add lockdep annotation to inode_to_wb()
writeback: implement foreign cgroup inode bdi_writeback switching
writeback: disassociate inodes from dying bdi_writebacks
bdi: fix wrong error return value in cgwb_create()
v9fs: fix error handling in v9fs_session_init()
writeback: do foreign inode detection iff cgroup writeback is enabled
vfs, writeback: replace FS_CGROUP_WRITEBACK with SB_I_CGROUPWB
writeback, blkio: add documentation for cgroup writeback support
Documentation/cgroups/blkio-controller.txt | 83 +-
Documentation/cgroups/memory.txt | 1 +
block/bio.c | 35 +-
block/blk-cgroup.c | 124 +-
block/blk-core.c | 70 +-
block/blk-integrity.c | 1 +
block/blk-sysfs.c | 3 +-
block/blk-throttle.c | 2 +-
block/bounce.c | 1 +
block/cfq-iosched.c | 2 +-
block/elevator.c | 2 +-
block/genhd.c | 1 +
drivers/block/drbd/drbd_int.h | 1 +
drivers/block/drbd/drbd_main.c | 10 +-
drivers/block/pktcdvd.c | 1 +
drivers/char/raw.c | 1 +
drivers/md/bcache/request.c | 1 +
drivers/md/dm.c | 2 +-
drivers/md/dm.h | 1 +
drivers/md/md.h | 1 +
drivers/md/raid1.c | 4 +-
drivers/md/raid10.c | 2 +-
drivers/mtd/devices/block2mtd.c | 1 +
.../lustre/include/linux/lustre_patchless_compat.h | 4 +-
fs/9p/v9fs.c | 50 +-
fs/9p/vfs_super.c | 8 +-
fs/block_dev.c | 9 +-
fs/buffer.c | 64 +-
fs/ext2/super.c | 1 +
fs/ext4/extents.c | 1 +
fs/ext4/mballoc.c | 1 +
fs/ext4/super.c | 1 +
fs/f2fs/node.c | 4 +-
fs/f2fs/segment.h | 3 +-
fs/fat/file.c | 1 +
fs/fat/inode.c | 1 +
fs/fs-writeback.c | 1167 +++++++++++++++----
fs/fuse/file.c | 12 +-
fs/gfs2/super.c | 2 +-
fs/hfs/super.c | 1 +
fs/hfsplus/super.c | 1 +
fs/inode.c | 1 +
fs/mpage.c | 3 +
fs/nfs/filelayout/filelayout.c | 1 +
fs/nfs/internal.h | 2 +-
fs/nfs/write.c | 3 +-
fs/ocfs2/file.c | 1 +
fs/reiserfs/super.c | 1 +
fs/ufs/super.c | 1 +
fs/xfs/xfs_aops.c | 12 +-
fs/xfs/xfs_file.c | 1 +
include/linux/backing-dev-defs.h | 255 ++++
include/linux/backing-dev.h | 557 ++++++---
include/linux/bio.h | 3 +
{block => include/linux}/blk-cgroup.h | 32 +-
include/linux/blkdev.h | 21 +-
include/linux/cgroup.h | 25 +
include/linux/fs.h | 26 +-
include/linux/memcontrol.h | 29 +
include/linux/mm.h | 8 +-
include/linux/pagemap.h | 3 +-
include/linux/writeback.h | 221 +++-
include/trace/events/writeback.h | 15 +-
init/Kconfig | 5 +
mm/backing-dev.c | 649 ++++++++---
mm/fadvise.c | 2 +-
mm/filemap.c | 34 +-
mm/madvise.c | 1 +
mm/memcontrol.c | 223 +++-
mm/page-writeback.c | 1231 +++++++++++++-------
mm/readahead.c | 2 +-
mm/rmap.c | 2 +
mm/truncate.c | 18 +-
mm/vmscan.c | 79 +-
74 files changed, 3898 insertions(+), 1250 deletions(-)
create mode 100644 include/linux/backing-dev-defs.h
rename {block => include/linux}/blk-cgroup.h (96%)
--
Jens Axboe
next reply other threads:[~2015-06-25 14:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 14:44 Jens Axboe [this message]
2015-06-26 9:49 ` [GIT PULL] Cgroup writeback support for 4.2 Geert Uytterhoeven
2015-06-26 13:43 ` Tejun Heo
2015-06-26 13:57 ` Geert Uytterhoeven
2015-06-26 14:28 ` Tejun Heo
2015-06-26 14:56 ` Geert Uytterhoeven
2015-06-26 15:23 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150625144432.GD13739@kernel.dk \
--to=axboe@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.