mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-19 13:22:03 +00:00
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>
This commit is contained in:
parent
2af8cbe305
commit
bd166ef183
17 changed files with 983 additions and 193 deletions
|
@ -154,6 +154,7 @@ struct request {
|
|||
|
||||
/* the following two fields are internal, NEVER access directly */
|
||||
unsigned int __data_len; /* total data len */
|
||||
int tag;
|
||||
sector_t __sector; /* sector cursor */
|
||||
|
||||
struct bio *bio;
|
||||
|
@ -220,9 +221,10 @@ struct request {
|
|||
|
||||
unsigned short ioprio;
|
||||
|
||||
int internal_tag;
|
||||
|
||||
void *special; /* opaque pointer available for LLD use */
|
||||
|
||||
int tag;
|
||||
int errors;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue