lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 423/772] bfq: Allow current waker to defend against a tentative one
    Date
    From: Jan Kara <jack@suse.cz>

    [ Upstream commit c5ac56bb6110e42e79d3106866658376b2e48ab9 ]

    The code in bfq_check_waker() ignores wake up events from the current
    waker. This makes it more likely we select a new tentative waker
    although the current one is generating more wake up events. Treat
    current waker the same way as any other process and allow it to reset
    the waker detection logic.

    Fixes: 71217df39dc6 ("block, bfq: make waker-queue detection more robust")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20220519105235.31397-2-jack@suse.cz
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    block/bfq-iosched.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
    index 047368c23984..31f430d9023d 100644
    --- a/block/bfq-iosched.c
    +++ b/block/bfq-iosched.c
    @@ -2133,8 +2133,7 @@ static void bfq_check_waker(struct bfq_data *bfqd, struct bfq_queue *bfqq,
    if (!bfqd->last_completed_rq_bfqq ||
    bfqd->last_completed_rq_bfqq == bfqq ||
    bfq_bfqq_has_short_ttime(bfqq) ||
    - now_ns - bfqd->last_completion >= 4 * NSEC_PER_MSEC ||
    - bfqd->last_completed_rq_bfqq == bfqq->waker_bfqq)
    + now_ns - bfqd->last_completion >= 4 * NSEC_PER_MSEC)
    return;

    /*
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 23:18    [W:4.050 / U:0.388 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site