summaryrefslogtreecommitdiffstats
path: root/block/blk-mq-tag.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2017-01-19 10:59:07 -0700
committerJens Axboe <axboe@fb.com>2017-01-20 09:05:53 -0700
commit70f36b6001bf596eb411c4b302e84c4824ae8730 (patch)
tree2ff2d5af758f0185f486bcdc0645986a4a9b204a /block/blk-mq-tag.h
parent7e79dadce222e06e0c30a77280f3426014bee185 (diff)
downloadlinux-stable-70f36b6001bf596eb411c4b302e84c4824ae8730.tar.gz
linux-stable-70f36b6001bf596eb411c4b302e84c4824ae8730.tar.bz2
linux-stable-70f36b6001bf596eb411c4b302e84c4824ae8730.zip
blk-mq: allow resize of scheduler requests
Add support for growing the tags associated with a hardware queue, for the scheduler tags. Currently we only support resizing within the limits of the original depth, change that so we can grow it as well by allocating and replacing the existing scheduler tag set. This is similar to how we could increase the software queue depth with the legacy IO stack and schedulers. Signed-off-by: Jens Axboe <axboe@fb.com> Reviewed-by: Omar Sandoval <osandov@fb.com>
Diffstat (limited to 'block/blk-mq-tag.h')
-rw-r--r--block/blk-mq-tag.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/blk-mq-tag.h b/block/blk-mq-tag.h
index 41cd15fd1afd..ac22878462e7 100644
--- a/block/blk-mq-tag.h
+++ b/block/blk-mq-tag.h
@@ -29,7 +29,9 @@ extern void blk_mq_put_tag(struct blk_mq_hw_ctx *hctx, struct blk_mq_tags *tags,
struct blk_mq_ctx *ctx, unsigned int tag);
extern bool blk_mq_has_free_tags(struct blk_mq_tags *tags);
extern ssize_t blk_mq_tag_sysfs_show(struct blk_mq_tags *tags, char *page);
-extern int blk_mq_tag_update_depth(struct blk_mq_tags *tags, unsigned int depth);
+extern int blk_mq_tag_update_depth(struct blk_mq_hw_ctx *hctx,
+ struct blk_mq_tags **tags,
+ unsigned int depth, bool can_grow);
extern void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool);
void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn,
void *priv);