[libvirt PATCH] qemu: require memfd memory for virtio 'blob' support

Michal Prívozník mprivozn at redhat.com
Wed Jul 19 07:47:52 UTC 2023


On 7/18/23 16:48, Jonathon Jongsma wrote:
> The virtio-gpu 'blob' support was insufficiently validated. Qemu
> requires a memfd memory backing in order to use udmabuf and enable blob
> support. Example error:
> 
>     $ virsh start rhel9
>     error: Failed to start domain 'rhel9'
>     error: internal error: qemu unexpectedly closed the monitor: 2023-07-18T02:33:57.083178Z qemu-kvm: -device {"driver":"virtio-vga","id":"video0","max_outputs":1,"blob":true,"bus":"pcie.0","addr":"0x1"}: cannot enable blob resources without udmabuf
> 
> Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
> ---
>  src/qemu/qemu_validate.c | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
> 

You forgot to update tests. Squash this in:


diff --git i/tests/qemuxml2argvdata/video-virtio-blob-on.x86_64-latest.args w/tests/qemuxml2argvdata/video-virtio-blob-on.x86_64-latest.args
index ef37e32e5e..577422426b 100644
--- i/tests/qemuxml2argvdata/video-virtio-blob-on.x86_64-latest.args
+++ w/tests/qemuxml2argvdata/video-virtio-blob-on.x86_64-latest.args
@@ -14,7 +14,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -accel tcg \
 -cpu qemu64 \
 -m size=1048576k \
--object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
+-object '{"qom-type":"memory-backend-memfd","id":"pc.ram","x-use-canonical-path-for-ramblock-id":false,"size":1073741824}' \
 -overcommit mem-lock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
 -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
diff --git i/tests/qemuxml2argvdata/video-virtio-blob-on.xml w/tests/qemuxml2argvdata/video-virtio-blob-on.xml
index 2b8a913f49..96ccf13079 100644
--- i/tests/qemuxml2argvdata/video-virtio-blob-on.xml
+++ w/tests/qemuxml2argvdata/video-virtio-blob-on.xml
@@ -3,6 +3,9 @@
   <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
+  <memoryBacking>
+    <source type='memfd'/>
+  </memoryBacking>
   <vcpu placement='static'>1</vcpu>
   <os>
     <type arch='x86_64' machine='pc'>hvm</type>
diff --git i/tests/qemuxml2xmloutdata/video-virtio-blob-on.x86_64-latest.xml w/tests/qemuxml2xmloutdata/video-virtio-blob-on.x86_64-latest.xml
index 410db67592..40f40b4132 100644
--- i/tests/qemuxml2xmloutdata/video-virtio-blob-on.x86_64-latest.xml
+++ w/tests/qemuxml2xmloutdata/video-virtio-blob-on.x86_64-latest.xml
@@ -3,6 +3,9 @@
   <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
+  <memoryBacking>
+    <source type='memfd'/>
+  </memoryBacking>
   <vcpu placement='static'>1</vcpu>
   <os>
     <type arch='x86_64' machine='pc'>hvm</type>


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

Michal



More information about the libvir-list mailing list