Commit 73e59d3e authored by hexue's avatar hexue Committed by Jens Axboe

block: avoid polling configuration errors

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: default avatarhexue <xue01.he@samsung.com>
Link: https://lore.kernel.org/r/20240718070817.1031494-1-xue01.he@samsung.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 8a47e33f
...@@ -791,8 +791,11 @@ void submit_bio_noacct(struct bio *bio) ...@@ -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); bio_clear_polled(bio);
goto not_supported;
}
switch (bio_op(bio)) { switch (bio_op(bio)) {
case REQ_OP_READ: case REQ_OP_READ:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment