OSDN Git Service

kyber-iosched: update shallow depth when setting up hardware queue
authorJens Axboe <axboe@kernel.dk>
Wed, 9 May 2018 19:55:14 +0000 (13:55 -0600)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 May 2018 17:27:46 +0000 (11:27 -0600)
We don't expect the async depth to be smaller than the wake batch
count for sbitmap, but just in case, inform sbitmap of what shallow
depth kyber may use.

Acked-by: Paolo Valente <paolo.valente@linaro.org>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/kyber-iosched.c

index 564967f..5b33dc3 100644 (file)
@@ -378,6 +378,7 @@ static void kyber_exit_sched(struct elevator_queue *e)
 
 static int kyber_init_hctx(struct blk_mq_hw_ctx *hctx, unsigned int hctx_idx)
 {
+       struct kyber_queue_data *kqd = hctx->queue->elevator->elevator_data;
        struct kyber_hctx_data *khd;
        int i;
 
@@ -400,6 +401,8 @@ static int kyber_init_hctx(struct blk_mq_hw_ctx *hctx, unsigned int hctx_idx)
        khd->batching = 0;
 
        hctx->sched_data = khd;
+       sbitmap_queue_min_shallow_depth(&hctx->sched_tags->bitmap_tags,
+                                       kqd->async_depth);
 
        return 0;
 }