[PATCHSET v2] cgroup, writeback, btrfs: make sure btrfs issues metadata IOs from the root cgroup

From: Tejun Heo
Date: Tue Oct 10 2017 - 11:54:55 EST


Hello,

Changes from the last version are

* blkcg_root_css exported to fix build breakage on modular btrfs.

* Use ext4_should_journal_data() test instead of
EXT4_MOUNT_JOURNAL_DATA.

* Separated out create_bh_bio() and used it to implement
submit_bh_blkcg_css() as suggested by Jan.

btrfs has different ways to issue metadata IOs and may end up issuing
metadata or otherwise shared IOs from a non-root cgroup, which can
lead to priority inversion and ineffective IO isolation.

This patchset makes sure that btrfs issues all metadata and shared IOs
from the root cgroup by exempting btree_inodes from cgroup writeback
and explicitly associating shared IOs with the root cgroup.

This patchset containst he following three patches

[PATCH 1/5] blkcg: export blkcg_root_css
[PATCH 2/5] cgroup, writeback: replace SB_I_CGROUPWB with per-inode
[PATCH 3/5] buffer_head: separate out create_bh_bio() from
[PATCH 4/5] cgroup, buffer_head: implement submit_bh_blkcg_css()
[PATCH 5/5] btrfs: ensure that metadata and flush are issued from the

and is also available in the following git branch

git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup-btrfs-metadata-v2

diffstat follows. Thanks.

block/blk-cgroup.c | 1 +
fs/block_dev.c | 3 +--
fs/btrfs/check-integrity.c | 2 +-
fs/btrfs/disk-io.c | 4 ++++
fs/btrfs/ioctl.c | 6 +++++-
fs/btrfs/super.c | 1 -
fs/buffer.c | 42 ++++++++++++++++++++++++++++++++++--------
fs/ext2/inode.c | 3 ++-
fs/ext2/super.c | 1 -
fs/ext4/inode.c | 5 ++++-
fs/ext4/super.c | 2 --
include/linux/backing-dev.h | 2 +-
include/linux/buffer_head.h | 3 +++
include/linux/fs.h | 3 ++-
14 files changed, 58 insertions(+), 20 deletions(-)

--
tejun