-
- Downloads
block: switch polling to be bio based
Replace the blk_poll interface that requires the caller to keep a queue and cookie from the submissions with polling based on the bio. Polling for the bio itself leads to a few advantages: - the cookie construction can made entirely private in blk-mq.c - the caller does not need to remember the request_queue and cookie separately and thus sidesteps their lifetime issues - keeping the device and the cookie inside the bio allows to trivially support polling BIOs remapping by stacking drivers - a lot of code to propagate the cookie back up the submission path can be removed entirely. Signed-off-by:Christoph Hellwig <hch@lst.de> Tested-by:
Mark Wunderlich <mark.wunderlich@intel.com> Link: https://lore.kernel.org/r/20211012111226.760968-15-hch@lst.de Signed-off-by:
Jens Axboe <axboe@kernel.dk>
Showing
- arch/m68k/emu/nfblock.c 1 addition, 2 deletionsarch/m68k/emu/nfblock.c
- arch/xtensa/platforms/iss/simdisk.c 1 addition, 2 deletionsarch/xtensa/platforms/iss/simdisk.c
- block/bio.c 1 addition, 0 deletionsblock/bio.c
- block/blk-core.c 95 additions, 32 deletionsblock/blk-core.c
- block/blk-exec.c 8 additions, 2 deletionsblock/blk-exec.c
- block/blk-mq.c 23 additions, 49 deletionsblock/blk-mq.c
- block/blk-mq.h 2 additions, 0 deletionsblock/blk-mq.h
- block/fops.c 8 additions, 17 deletionsblock/fops.c
- drivers/block/brd.c 5 additions, 7 deletionsdrivers/block/brd.c
- drivers/block/drbd/drbd_int.h 1 addition, 1 deletiondrivers/block/drbd/drbd_int.h
- drivers/block/drbd/drbd_req.c 1 addition, 2 deletionsdrivers/block/drbd/drbd_req.c
- drivers/block/n64cart.c 5 additions, 7 deletionsdrivers/block/n64cart.c
- drivers/block/null_blk/main.c 1 addition, 2 deletionsdrivers/block/null_blk/main.c
- drivers/block/pktcdvd.c 3 additions, 4 deletionsdrivers/block/pktcdvd.c
- drivers/block/ps3vram.c 2 additions, 4 deletionsdrivers/block/ps3vram.c
- drivers/block/rsxx/dev.c 3 additions, 4 deletionsdrivers/block/rsxx/dev.c
- drivers/block/zram/zram_drv.c 3 additions, 7 deletionsdrivers/block/zram/zram_drv.c
- drivers/md/bcache/request.c 5 additions, 8 deletionsdrivers/md/bcache/request.c
- drivers/md/bcache/request.h 2 additions, 2 deletionsdrivers/md/bcache/request.h
- drivers/md/dm.c 10 additions, 18 deletionsdrivers/md/dm.c
Loading
Please register or sign in to comment