On 3/16/2022 4:02 AM, Jason Wang wrote:
On Tue, Mar 15, 2022 at 10:43 PM Suwan Kim <suwan.kim027@xxxxxxxxx> wrote:
On Tue, Mar 15, 2022 at 04:59:23PM +0800, Jason Wang wrote:
On Mon, Mar 14, 2022 at 8:33 PM Suwan Kim <suwan.kim027@xxxxxxxxx> wrote:
On Mon, Mar 14, 2022 at 02:14:53PM +0800, Jason Wang wrote:
在 2022/3/11 下午11:28, Suwan Kim 写道:
diff --git a/include/uapi/linux/virtio_blk.h
b/include/uapi/linux/virtio_blk.h
index d888f013d9ff..3fcaf937afe1 100644
--- a/include/uapi/linux/virtio_blk.h
+++ b/include/uapi/linux/virtio_blk.h
@@ -119,8 +119,9 @@ struct virtio_blk_config {
* deallocation of one or more of the sectors.
*/
__u8 write_zeroes_may_unmap;
+ __u8 unused1;
- __u8 unused1[3];
+ __virtio16 num_poll_queues;
} __attribute__((packed));
This looks like a implementation specific (virtio-blk-pci) optimization,
how
about other implementation like vhost-user-blk?
I didn’t consider vhost-user-blk yet. But does vhost-user-blk also
use vritio_blk_config as kernel-qemu interface?
Yes, but see below.
Does vhost-user-blk need additional modification to support polling
in kernel side?
No, but the issue is, things like polling looks not a good candidate for
the attributes belonging to the device but the driver. So I have more
questions:
1) what does it really mean for hardware virtio block devices?
2) Does driver polling help for the qemu implementation without polling?
3) Using blk_config means we can only get the benefit from the new device
1) what does it really mean for hardware virtio block devices?
3) Using blk_config means we can only get the benefit from the new device
This patch adds dedicated HW queue for polling purpose to virtio
block device.
So I think it can be a new hw feature. And it can be a new device
that supports hw poll queue.
One possible issue is that the "poll" looks more like a
software/driver concept other than the device/hardware.
Agree. Device/SPEC should give a possibility to create virtqueues
with/without IRQs and it does.
The driver should use this capability.
I don't see any change in the virtio blk config space needed.
BTW, I have other idea about it.
How about adding “num-poll-queues" property as a driver parameter
like NVMe driver, not to QEMU virtio-blk-pci property?
It should be fine, but we need to listen to others.
If then, we don’t need to modify virtio_blk_config.
And we can apply the polling feature only to virtio-blk-pci.
But can QEMU pass “num-poll-queues" to virtio-blk driver param?
As Michael said we can leave this to guest kernel / administrator.
2) Does driver polling help for the qemu implementation without polling?
Sorry, I didn't understand your question. Could you please explain more about?
I mean does the polling work for the ordinary qemu block device
without busy polling?
Thanks
Regards,
Suwan Kim