lkml.org 
[lkml]   [2018]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.15 098/122] blk-mq: dont call io scheds .requeue_request when requeueing rq to ->dispatch
    Date
    4.15-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ming Lei <ming.lei@redhat.com>

    commit 105976f517791aed3b11f8f53b308a2069d42055 upstream.

    __blk_mq_requeue_request() covers two cases:

    - one is that the requeued request is added to hctx->dispatch, such as
    blk_mq_dispatch_rq_list()

    - another case is that the request is requeued to io scheduler, such as
    blk_mq_requeue_request().

    We should call io sched's .requeue_request callback only for the 2nd
    case.

    Cc: Paolo Valente <paolo.valente@linaro.org>
    Cc: Omar Sandoval <osandov@fb.com>
    Fixes: bd166ef183c2 ("blk-mq-sched: add framework for MQ capable IO schedulers")
    Cc: stable@vger.kernel.org
    Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
    Acked-by: Paolo Valente <paolo.valente@linaro.org>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    block/blk-mq.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    --- a/block/blk-mq.c
    +++ b/block/blk-mq.c
    @@ -655,7 +655,6 @@ static void __blk_mq_requeue_request(str

    trace_block_rq_requeue(q, rq);
    wbt_requeue(q->rq_wb, &rq->issue_stat);
    - blk_mq_sched_requeue_request(rq);

    if (test_and_clear_bit(REQ_ATOM_STARTED, &rq->atomic_flags)) {
    if (q->dma_drain_size && blk_rq_bytes(rq))
    @@ -667,6 +666,9 @@ void blk_mq_requeue_request(struct reque
    {
    __blk_mq_requeue_request(rq);

    + /* this request will be re-inserted to io scheduler queue */
    + blk_mq_sched_requeue_request(rq);
    +
    BUG_ON(blk_queued_rq(rq));
    blk_mq_add_to_requeue_list(rq, true, kick_requeue_list);
    }

    \
     
     \ /
      Last update: 2018-03-07 21:25    [W:4.230 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site