aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2017-01-17 08:03:22 -0500
committerJens Axboe <axboe@fb.com>2017-01-17 12:04:20 -0500
commitbd166ef183c263c5ced656d49ef19c7da4adc774 (patch)
tree449bbd3b4e671b370b96e3846b2281116e7089e9 /include/linux/blkdev.h
parent2af8cbe30531eca73c8f3ba277f155fc0020b01a (diff)
blk-mq-sched: add framework for MQ capable IO schedulers
This adds a set of hooks that intercepts the blk-mq path of allocating/inserting/issuing/completing requests, allowing us to develop a scheduler within that framework. We reuse the existing elevator scheduler API on the registration side, but augment that with the scheduler flagging support for the blk-mq interfce, and with a separate set of ops hooks for MQ devices. We split driver and scheduler tags, so we can run the scheduling independently of device queue depth. Signed-off-by: Jens Axboe <axboe@fb.com> Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Omar Sandoval <osandov@fb.com>
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 2e99d659b0f1..25564857f5f8 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -154,6 +154,7 @@ struct request {
154 154
155 /* the following two fields are internal, NEVER access directly */ 155 /* the following two fields are internal, NEVER access directly */
156 unsigned int __data_len; /* total data len */ 156 unsigned int __data_len; /* total data len */
157 int tag;
157 sector_t __sector; /* sector cursor */ 158 sector_t __sector; /* sector cursor */
158 159
159 struct bio *bio; 160 struct bio *bio;
@@ -220,9 +221,10 @@ struct request {
220 221
221 unsigned short ioprio; 222 unsigned short ioprio;
222 223
224 int internal_tag;
225
223 void *special; /* opaque pointer available for LLD use */ 226 void *special; /* opaque pointer available for LLD use */
224 227
225 int tag;
226 int errors; 228 int errors;
227 229
228 /* 230 /*