Skip to content

Commit

Permalink
block: avoid polling configuration errors
Browse files Browse the repository at this point in the history
This patch adds a poll queue check, aiming to help users use polled IO
accurately.

If users do polled IO but the device doesn't have poll queues, they will
get suboptimal performance data and waste CPU resources. Add a poll queue
check batching this. If users don't have the device properly configured,
or if it simply doesn't support polled IO, it will error the IO with
-EOPNOTSUPP. This is similar to what we used to do for sync polled IO,
which is no longer supported.

Signed-off-by: hexue <xue01.he@samsung.com>
Link: https://lore.kernel.org/r/20240718070817.1031494-1-xue01.he@samsung.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
hexue authored and Jens Axboe committed Jul 19, 2024
1 parent 8a47e33 commit 73e59d3
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -791,8 +791,11 @@ void submit_bio_noacct(struct bio *bio)
}
}

if (!(q->limits.features & BLK_FEAT_POLL))
if (!(q->limits.features & BLK_FEAT_POLL) &&
(bio->bi_opf & REQ_POLLED)) {
bio_clear_polled(bio);
goto not_supported;
}

switch (bio_op(bio)) {
case REQ_OP_READ:
Expand Down

0 comments on commit 73e59d3

Please sign in to comment.