lkml.org 
[lkml]   [2019]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.2 12/76] rq-qos: don't reset has_sleepers on spurious wakeups
    Date
    From: Josef Bacik <josef@toxicpanda.com>

    [ Upstream commit 64e7ea875ef63b2801be7954cf7257d1bfccc266 ]

    If we raced with somebody else getting an inflight counter we could fail
    to get an inflight counter with no sleepers on the list, and thus need
    to go to sleep. In this case has_sleepers should be true because we are
    now relying on the waker to get our inflight counter for us. And in the
    case of spurious wakeups we'd still want this to be the case. So set
    has_sleepers to true if we went to sleep to make sure we're woken up the
    proper way.

    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    block/blk-rq-qos.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/block/blk-rq-qos.c b/block/blk-rq-qos.c
    index 659ccb8b693fa..e5d75280b431e 100644
    --- a/block/blk-rq-qos.c
    +++ b/block/blk-rq-qos.c
    @@ -260,7 +260,7 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data,
    break;
    }
    io_schedule();
    - has_sleeper = false;
    + has_sleeper = true;
    } while (1);
    finish_wait(&rqw->wait, &data.wq);
    }
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-08-02 15:21    [W:4.136 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site