scsi: virtio_scsi: Add mq_poll support
authorMike Christie <michael.christie@oracle.com>
Thu, 14 Dec 2023 05:26:49 +0000 (23:26 -0600)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 10 Jan 2024 18:01:37 +0000 (13:01 -0500)
commit95e7249691f082a5178d4d6f60fcdee91da458ab
tree4b88d7aacf8cf19adace6b0b5ac94facbe0acb98
parent35967bdcff325f4572b21b0d0005318da7e03f53
scsi: virtio_scsi: Add mq_poll support

This adds polling support to virtio-scsi. It's based on and works similar
to virtblk support where we add a module param to specify the number of
poll queues then subtract to calculate the IO queues.

When using 8 poll queues and a vhost worker per queue we see 4K IOPs
with fio:

fio --filename=/dev/sda --direct=1 --rw=randread --bs=4k \
--ioengine=io_uring --hipri --iodepth=128  --numjobs=$NUM_JOBS

increase like:

jobs base poll
1 207K 296K
2 392K 552K
3 581K 860K
4 765K 1235K
5 936K 1598K
6 1104K 1880K
7 1253K 2095K
8 1311k 2187K

Signed-off-by: Mike Christie <michael.christie@oracle.com>
Message-Id: <20231214052649.57743-1-michael.christie@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/scsi/virtio_scsi.c