On Tue, Mar 15, 2022 at 11:43:18PM +0900, Suwan Kim
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 at
gmail.com> 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.
>
> 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?
>
> 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?
Same as any other driver parameter, pass it on kernel command line.
>
>
> 2) Does driver polling help for the qemu implementation without polling?
>
> Sorry, I didn't understand your question. Could you please explain more
about?
>
> Regards,
> Suwan Kim