diff options
author | Tejun Heo <tj@kernel.org> | 2019-06-27 13:39:52 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-07-10 09:00:57 -0600 |
commit | d3f77dfdc71835f8db71ca57d272b1fbec9dfc18 (patch) | |
tree | ced59cee416b39c3c2f80c647c736a2d378772e3 /include/linux/backing-dev.h | |
parent | 653c45c6b90c9659facbef10546d1f3a8e37d0cf (diff) | |
download | linux-d3f77dfdc71835f8db71ca57d272b1fbec9dfc18.tar.gz linux-d3f77dfdc71835f8db71ca57d272b1fbec9dfc18.tar.bz2 linux-d3f77dfdc71835f8db71ca57d272b1fbec9dfc18.zip |
blkcg: implement REQ_CGROUP_PUNT
When a shared kthread needs to issue a bio for a cgroup, doing so
synchronously can lead to priority inversions as the kthread can be
trapped waiting for that cgroup. This patch implements
REQ_CGROUP_PUNT flag which makes submit_bio() punt the actual issuing
to a dedicated per-blkcg work item to avoid such priority inversions.
This will be used to fix priority inversions in btrfs compression and
should be generally useful as we grow filesystem support for
comprehensive IO control.
Cc: Chris Mason <clm@fb.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/backing-dev.h')
-rw-r--r-- | include/linux/backing-dev.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index f9b029180241..35b31d176f74 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -48,6 +48,7 @@ extern spinlock_t bdi_lock; extern struct list_head bdi_list; extern struct workqueue_struct *bdi_wq; +extern struct workqueue_struct *bdi_async_bio_wq; static inline bool wb_has_dirty_io(struct bdi_writeback *wb) { |