bfq: ignore oom_bfqq in bfq_check_waker
authorKhazhismel Kumykov <khazhy@chromium.org>
Tue, 8 Nov 2022 18:10:30 +0000 (10:10 -0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 9 Nov 2022 19:42:26 +0000 (12:42 -0700)
oom_bfqq is just a fallback bfqq, so shouldn't be used with waker
detection.

Suggested-by: Jan Kara <jack@suse.cz>
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20221108181030.1611703-2-khazhy@google.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c

index 7b610e9..a72304c 100644 (file)
@@ -2083,7 +2083,9 @@ 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)
+           now_ns - bfqd->last_completion >= 4 * NSEC_PER_MSEC ||
+           bfqd->last_completed_rq_bfqq == &bfqd->oom_bfqq ||
+           bfqq == &bfqd->oom_bfqq)
                return;
 
        /*