Hello Guys, Based on Christoph's bio based polling model[1], implement DM bio polling with one very simple approach. Patch 1 adds helper of blk_queue_poll(). Patch 2 adds .bio_poll() callback to block_device_operations, so bio driver can implement its own logic for io polling. Patch 3 implements bio polling for device mapper. V3: - patch style change as suggested by Christoph(2/3) - fix kernel panic issue caused by nested dm polling, which is found & figured out by Jeffle Xu (3/3) - re-organize setup polling code (3/3) - remove RFC V2: - drop patch to add new fields into bio - support io polling for dm native bio splitting - add comment Ming Lei (3): block: add helper of blk_queue_poll block: add ->poll_bio to block_device_operations dm: support bio polling block/blk-core.c | 18 +++--- block/blk-sysfs.c | 4 +- block/genhd.c | 2 + drivers/md/dm-table.c | 24 +++++++ drivers/md/dm.c | 131 ++++++++++++++++++++++++++++++++++++++- drivers/nvme/host/core.c | 2 +- include/linux/blkdev.h | 2 + 7 files changed, 170 insertions(+), 13 deletions(-) -- 2.31.1