[PATCH v2 00/19] blk-cgroup: convert to use blkcg_mutex for protection

Yu Kuai posted 19 patches 4 months ago
block/bfq-cgroup.c        |  27 +-
block/bfq-iosched.c       |  13 +-
block/blk-cgroup-rwstat.c |   4 +-
block/blk-cgroup.c        | 552 +++++++++++---------------------------
block/blk-cgroup.h        |  51 +++-
block/blk-iocost.c        |  61 +++--
block/blk-iolatency.c     |  23 +-
block/blk-throttle.c      |  73 +++--
mm/page_io.c              |   7 +-
9 files changed, 302 insertions(+), 509 deletions(-)
[PATCH v2 00/19] blk-cgroup: convert to use blkcg_mutex for protection
Posted by Yu Kuai 4 months ago
From: Yu Kuai <yukuai3@huawei.com>

Changes in v2:
 - add patch 2 to delay freeing policy data, otherwise patch 3 is not
   safe;
 - add patch 13-19 to cleanup blkcg configuration apis;

patch 1-8 is prep patches to make sure queue_lock is not nested under
rcu and other spinlocks in blk-cgroup;
patch 9 convert blk-cgroup to use blkcg_mutex to protect blkgs;
patch 10,11 are follow cleanups;
patch 12 fix deadlock in blk-throttle;
patch 13-19 cleanup blkcg configuration helpers;

Yu Kuai (19):
  blk-cgroup: protect iterating blkgs with blkcg->lock in
    blkcg_print_stat()
  blk-cgroup: delay freeing policy data after rcu grace period
  blk-cgroup: don't nest queue_lock under rcu in blkcg_print_blkgs()
  blk-cgroup: don't nest queue_lock under rcu in blkg_lookup_create()
  blk-cgroup: don't nest queu_lock under rcu in bio_associate_blkg()
  blk-cgroup: don't nest queue_lock under blkcg->lock in
    blkcg_destroy_blkgs()
  mm/page_io: don't nest queue_lock under rcu in
    bio_associate_blkg_from_page()
  block, bfq: don't grab queue_lock to initialize bfq
  blk-cgroup: convert to protect blkgs with blkcg_mutex
  blk-cgroup: remove radix_tree_preload()
  blk-cgroup: remove preallocate blkg for blkg_create()
  blk-throttle: fix possible deadlock due to queue_lock in timer
  blk-cgroup: add new blkg configuration helpers
  blk-cgroup: factor out a helper __blkg_activate_policy()
  blk-throttle: convert to use blkg_conf_{start, end}
  block, bfq: convert to use blkg_conf_{start, end}
  blk-iolatency: convert to use blkg_conf_{start, end}
  blk-iocost: convert to use blkg_conf_{start, end}
  blk-cgroup: remove unsed blkg configuration helpers

 block/bfq-cgroup.c        |  27 +-
 block/bfq-iosched.c       |  13 +-
 block/blk-cgroup-rwstat.c |   4 +-
 block/blk-cgroup.c        | 552 +++++++++++---------------------------
 block/blk-cgroup.h        |  51 +++-
 block/blk-iocost.c        |  61 +++--
 block/blk-iolatency.c     |  23 +-
 block/blk-throttle.c      |  73 +++--
 mm/page_io.c              |   7 +-
 9 files changed, 302 insertions(+), 509 deletions(-)

-- 
2.51.0