Thread (18 messages) 18 messages, 3 authors, 2017-01-27

Re: [PATCH 4/5] blk-mq-sched: fix starvation for multiple hardware queues and shared tags

From: Jens Axboe <axboe@fb.com>
Date: 2017-01-26 20:26:31

On 01/26/2017 01:25 PM, Omar Sandoval wrote:
On Thu, Jan 26, 2017 at 12:48:17PM -0700, Jens Axboe wrote:
quoted
If we have both multiple hardware queues and shared tag map between
devices, we need to ensure that we propagate the hardware queue
restart bit higher up. This is because we can get into a situation
where we don't have any IO pending on a hardware queue, yet we fail
getting a tag to start new IO. If that happens, it's not enough to
mark the hardware queue as needing a restart, we need to bubble
that up to the higher level queue as well.
One minor nit below. Otherwise, makes sense.

Reviewed-by: Omar Sandoval <redacted>
quoted
Signed-off-by: Jens Axboe <axboe@fb.com>
---
 block/blk-mq-sched.c   | 28 ++++++++++++++++++++++++++++
 block/blk-mq-sched.h   | 15 +++++++++------
 block/blk-mq.c         |  3 ++-
 block/blk-mq.h         |  1 +
 include/linux/blkdev.h |  1 +
 5 files changed, 41 insertions(+), 7 deletions(-)
quoted
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 25564857f5f8..73bcd201a9b7 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -602,6 +602,7 @@ struct request_queue {
 #define QUEUE_FLAG_FLUSH_NQ    25	/* flush not queueuable */
 #define QUEUE_FLAG_DAX         26	/* device supports DAX */
 #define QUEUE_FLAG_STATS       27	/* track rq completion times */
+#define QUEUE_FLAG_RESTART     28
All of the other queue flags have a comment, could you add one here,
too?
Definitely, I'll add an appropriate comment.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help