diff options
| author | Yu Kuai <yukuai@fnnas.com> | 2026-02-03 16:19:43 +0800 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-02-03 07:45:36 -0700 |
| commit | 1db61b0afdd7e8aa9289c423fdff002603b520b5 (patch) | |
| tree | 35f8e7299f29d041b0ffef960d62c3755307c366 /block/mq-deadline.c | |
| parent | 9fc7900b14727d39457bd3724f26e6e3faca3efd (diff) | |
blk-mq-sched: unify elevators checking for async requests
bfq and mq-deadline consider sync writes as async requests and only
reserve tags for sync reads by async_depth, however, kyber doesn't
consider sync writes as async requests for now.
Consider the case there are lots of dirty pages, and user use fsync to
flush dirty pages. In this case sched_tags can be exhausted by sync writes
and sync reads can stuck waiting for tag. Hence let kyber follow what
mq-deadline and bfq did, and unify async requests checking for all
elevators.
Signed-off-by: Yu Kuai <yukuai@fnnas.com>
Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/mq-deadline.c')
| -rw-r--r-- | block/mq-deadline.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/mq-deadline.c b/block/mq-deadline.c index 3e3719093aec..29d00221fbea 100644 --- a/block/mq-deadline.c +++ b/block/mq-deadline.c @@ -495,7 +495,7 @@ static void dd_limit_depth(blk_opf_t opf, struct blk_mq_alloc_data *data) struct deadline_data *dd = data->q->elevator->elevator_data; /* Do not throttle synchronous reads. */ - if (op_is_sync(opf) && !op_is_write(opf)) + if (blk_mq_is_sync_read(opf)) return; /* |
