[PATCH v2 2/2] qemu: forbid a few unsupported things for vhost-user/passt interfaces

Laine Stump posted 2 patches 6 months, 2 weeks ago
[PATCH v2 2/2] qemu: forbid a few unsupported things for vhost-user/passt interfaces
Posted by Laine Stump 6 months, 2 weeks ago
vhost-user with a passt backend doesn't support using multiple queues.

The path of the socket is auto-generated by libvirt for
vhost-user/passt; it can't be set by the user

The passt end of a vhost-user socket is always the server, and the
qemu end is always a client.

Signed-off-by: Laine Stump <laine@redhat.com>
---
Change since V1 - use single quotes instead of escaped double quotes

 src/qemu/qemu_validate.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 2479596628..9a91f92410 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1823,6 +1823,24 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
     if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
         if (qemuValidateDomainDefVhostUserRequireSharedMemory(def, "vhostuser") < 0)
             return -1;
+
+        if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
+            if (net->driver.virtio.queues > 0) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                               _("interface type='vhostuser' backend type='passt' does not support multiple queues"));
+                return -1;
+            }
+            if (net->data.vhostuser->data.nix.path) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                               _("'path' attribute cannot be set for interface type='vhostuser' backend type='passt'"));
+                return -1;
+            }
+            if (net->data.vhostuser->data.nix.listen) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                               _("mode='server' is not supported for interface type='vhostuser' backend type='passt'"));
+                return -1;
+            }
+        }
     }
 
     if (net->type == VIR_DOMAIN_NET_TYPE_VDPA) {
-- 
2.48.1
Re: [PATCH v2 2/2] qemu: forbid a few unsupported things for vhost-user/passt interfaces
Posted by Michal Prívozník 6 months, 2 weeks ago
On 2/21/25 20:05, Laine Stump wrote:
> vhost-user with a passt backend doesn't support using multiple queues.
> 
> The path of the socket is auto-generated by libvirt for
> vhost-user/passt; it can't be set by the user
> 
> The passt end of a vhost-user socket is always the server, and the
> qemu end is always a client.
> 
> Signed-off-by: Laine Stump <laine@redhat.com>
> ---
> Change since V1 - use single quotes instead of escaped double quotes
> 
>  src/qemu/qemu_validate.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Michal