[libvirt PATCH] conf: allow virtio driver attributes for vhostuser disk

Pavel Hrdina phrdina at redhat.com
Mon Feb 8 11:22:39 UTC 2021


On Sun, Feb 07, 2021 at 01:42:33PM +0800, Han Han wrote:
> On Fri, Feb 5, 2021 at 8:08 PM Pavel Hrdina <phrdina at redhat.com> wrote:
> 
> > All of these options are actually supported by vhostuser disk so
> > we should allow them to be usable.
> >
> > Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> >  src/conf/domain_validate.c                    | 20 -------------------
> >  .../disk-vhostuser.x86_64-latest.args         |  4 ++--
> >  tests/qemuxml2argvdata/disk-vhostuser.xml     |  2 +-
> >  .../disk-vhostuser.x86_64-latest.xml          |  2 +-
> >  4 files changed, 4 insertions(+), 24 deletions(-)
> >
> > diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
> > index 222a9386f6..6b3e892332 100644
> > --- a/src/conf/domain_validate.c
> > +++ b/src/conf/domain_validate.c
> > @@ -322,26 +322,6 @@ virDomainDiskVhostUserValidate(const virDomainDiskDef
> > *disk)
> >
> >      /* Unsupported driver elements */
> >
> > -    if (disk->virtio) {
> > -        if (disk->virtio->iommu != VIR_TRISTATE_SWITCH_ABSENT) {
> > -            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> > -                           _("iommu is not supported with vhostuser
> > disk"));
> > -            return -1;
> > -        }
> > -
> > -        if (disk->virtio->ats != VIR_TRISTATE_SWITCH_ABSENT) {
> > -            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> > -                           _("ats is not supported with vhostuser disk"));
> > -            return -1;
> > -        }
> > -
> > -        if (disk->virtio->packed != VIR_TRISTATE_SWITCH_ABSENT) {
> > -            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> > -                           _("packed is not supported with vhostuser
> > disk"));
> > -            return -1;
> > -        }
> > -    }
> > -
> >
>  Tested on qemu-5.2.0-5.fc34.1.x86_64 libvirt v7.0.0-337-ga58edc602e
> VM could be start with the virtio properties of vhostuser-blk:
> <disk type="vhostuser" device="disk" model="virtio-non-transitional"
> snapshot="no">
>       <driver name="qemu" type="raw" iommu="on" ats="on" packed="on"/>
>       <source type="unix" path="/tmp/vhost-user-blk0.sock">
>         <reconnect enabled="yes" timeout="10"/>
>       </source>
>       <target dev="vdb" bus="virtio"/>
>       <address type="pci" domain="0x0000" bus="0x00" slot="0x0b"
> function="0x0"/>
>     </disk>
> 
> Note that the model="virtio-non-transitional" should be set otherwise it
> will report an error:
> 2021-02-07T05:33:25.737469Z qemu-system-x86_64: -device
> vhost-user-blk-pci,iommu_platform=on,ats=on,packed=on,bus=pci.0,addr=0xb,chardev=chr-vu-virtio-disk1,id=virtio-disk1:
> VIRTIO_F_IOMMU_P
> LATFORM was supported by neither legacy nor transitional device

This is not exclusive to vhostuser disk. The same happens with disk
type='file' and my guess is that it will happen to other
virtio/vhost-user devices. This is a separate issue that would be
probably nice to fix but I guess it's not critical because QEMU gives
reasonable error message.

Thanks for testing.

Pavel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210208/ae785a45/attachment-0001.sig>


More information about the libvir-list mailing list