Message ID | 20220406153207.163134-1-suwan.kim027@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | virtio-blk: support polling I/O and mq_ops->queue_rqs() | expand |
On 4/6/22 08:32, Suwan Kim wrote: > This patch serise adds support for polling I/O and mq_ops->queue_rqs() > to virtio-blk driver. > Thanks for doing this work, can you please add a blktests [1] for this so it will get tested by different ppl under different environment by various backend for each release ? Please CC me and Omar for blktests I'll be happy to review. -ck [1] https://github.com/osandov/blktests.git
On Thu, Apr 07, 2022 at 07:36:00PM +0000, Chaitanya Kulkarni wrote: > On 4/6/22 08:32, Suwan Kim wrote: > > This patch serise adds support for polling I/O and mq_ops->queue_rqs() > > to virtio-blk driver. > > > > Thanks for doing this work, can you please add a blktests [1] > for this so it will get tested by different ppl under different > environment by various backend for each release ? > > Please CC me and Omar for blktests I'll be happy to review. > > -ck > > [1] https://github.com/osandov/blktests.git > > Hi Chaitanya, Sure. I will do. Do I need to add a new test script about vdN device IO polling to blktests/tests/block/? Regards, Suwan Kim
> > Hi Chaitanya, > > Sure. I will do. > Do I need to add a new test script about vdN device IO polling > to blktests/tests/block/? > That will create confusion as block category testcases are different than virtio-blk. So you need to create a new category virtio-blk and add testcases to that one. -ck > Regards, > Suwan Kim >
On Thu, Apr 07, 2022 at 12:32:05AM +0900, Suwan Kim wrote: > This patch serise adds support for polling I/O and mq_ops->queue_rqs() > to virtio-blk driver. > > Changes > > v5 -> v6 > - patch1 : virtblk_poll > - Remove memset in init_vq() > - Fix space indent in init_vq() > - Replace if condition with positive check in virtblk_map_queues() > if (i == HCTX_TYPE_POLL) > blk_mq_map_queues(&set->map[i]); > else > blk_mq_virtio_map_queues(&set->map[i], vblk->vdev, 0); > - Add Reviewed-by tags > > - patch2 : virtio_queue_rqs > - Add Reviewed-by tags > > v4 -> v5 > - patch1 : virtblk_poll > - Replace "req_done" with "found" in virtblk_poll() > - Split for loop into two distinct for loop in init_vq() > that sets callback function for each default/poll queues > - Replace "if (i == HCTX_TYPE_DEFAULT)" with "i != HCTX_TYPE_POLL" > in virtblk_map_queues() > - Replace "virtblk_unmap_data(req, vbr);" with > "virtblk_unmap_data(req, blk_mq_rq_to_pdu(req);" > in virtblk_complete_batch() > > - patch2 : virtio_queue_rqs > - Instead of using vbr.sg_num field, use vbr->sg_table.nents. > So, remove sg_num field in struct virtblk_req > - Drop the unnecessary argument of virtblk_add_req() because it > doens't need "data_sg" and "have_data". It can be derived from "vbr" > argument. > - Add Reviewed-by tag from Stefan > > v3 -> v4 > - patch1 : virtblk_poll > - Add print the number of default/read/poll queues in init_vq() > - Add blk_mq_start_stopped_hw_queues() to virtblk_poll() > virtblk_poll() > ... > if (req_done) > blk_mq_start_stopped_hw_queues(vblk->disk->queue, true); > ... > > - patch2 : virtio_queue_rqs > - Modify virtio_queue_rqs() to hold lock only once when it adds > requests to virtqueue just before virtqueue notify. > It will guarantee that virtio_queue_rqs() will not use > previous req again. > > v2 -> v3 > - Fix warning by kernel test robot > > static int virtblk_poll() > ... > if (!blk_mq_add_to_batch(req, iob, virtblk_result(vbr), > -> vbr->status, > > v1 -> v2 > - To receive the number of poll queues from user, > use module parameter instead of QEMU uapi change. > > - Add the comment about virtblk_map_queues(). > > - Add support for mq_ops->queue_rqs() to implement submit side > batch. > > Suwan Kim (2): > virtio-blk: support polling I/O > virtio-blk: support mq_ops->queue_rqs() > > drivers/block/virtio_blk.c | 220 +++++++++++++++++++++++++++++++++---- > 1 file changed, 201 insertions(+), 19 deletions(-) > > -- > 2.26.3 Hi Michael, Can these patches be merged to your branch? Regards, Suwan Kim