blk-cgroup: prevent rcu_sched detected stalls warnings while iterating blkgs
authorYu Kuai <yukuai3@huawei.com>
Wed, 7 Jul 2021 01:56:49 +0000 (09:56 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 7 Jul 2021 15:36:36 +0000 (09:36 -0600)
commita731763fc479a9c64456e0643d0ccf64203100c9
tree95e194d57e6bf16885e164006d023d1605204ab9
parentd80c228d44640f0b47b57a2ca4afa26ef87e16b0
blk-cgroup: prevent rcu_sched detected stalls warnings while iterating blkgs

We run a test that create millions of cgroups and blkgs, and then trigger
blkg_destroy_all(). blkg_destroy_all() will hold spin lock for a long
time in such situation. Thus release the lock when a batch of blkgs are
destroyed.

blkcg_activate_policy() and blkcg_deactivate_policy() might have the
same problem, however, as they are basically only called from module
init/exit paths, let's leave them alone for now.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20210707015649.1929797-1-yukuai3@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-cgroup.c