summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorKhazhismel Kumykov <khazhy@chromium.org>2022-11-08 19:10:30 +0100
committerJens Axboe <axboe@kernel.dk>2022-11-09 20:42:26 +0100
commit99771d73ff4539f2337b84917f4792abf0d8931b (patch)
tree957cea2b0417a63188d975e320c0d9a5962aa123 /block
parentbfq: fix waker_bfqq inconsistency crash (diff)
downloadlinux-99771d73ff4539f2337b84917f4792abf0d8931b.tar.xz
linux-99771d73ff4539f2337b84917f4792abf0d8931b.zip
bfq: ignore oom_bfqq in bfq_check_waker
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>
Diffstat (limited to 'block')
-rw-r--r--block/bfq-iosched.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 7b610e91127e..a72304c728fc 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -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;
/*