[PATCH] qemu: fix qemu command for pci hostdevs and ramfb='off'

Jonathon Jongsma posted 1 patch 6 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20240516215704.1032051-1-jjongsma@redhat.com
src/qemu/qemu_command.c                                     | 2 +-
.../hostdev-pci-display-ramfb.x86_64-latest.args            | 1 +
.../hostdev-pci-display-ramfb.x86_64-latest.xml             | 6 ++++++
tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml         | 5 +++++
4 files changed, 13 insertions(+), 1 deletion(-)
[PATCH] qemu: fix qemu command for pci hostdevs and ramfb='off'
Posted by Jonathon Jongsma 6 months, 1 week ago
There was no test for this and we mistakenly used 'B' rather than 'T'
when constructing the json value for this parameter. Thus, a value of
'off' was VIR_TRISTATE_SWITCH_OFF=2, which was translated to a boolean
value of 'true'.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
---
 src/qemu/qemu_command.c                                     | 2 +-
 .../hostdev-pci-display-ramfb.x86_64-latest.args            | 1 +
 .../hostdev-pci-display-ramfb.x86_64-latest.xml             | 6 ++++++
 tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml         | 5 +++++
 4 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 63bfeb790e..2d0eddc79e 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4798,7 +4798,7 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def,
                               "p:bootindex", dev->info->effectiveBootIndex,
                               "S:failover_pair_id", failover_pair_id,
                               "S:display", qemuOnOffAuto(pcisrc->display),
-                              "B:ramfb", pcisrc->ramfb,
+                              "T:ramfb", pcisrc->ramfb,
                               NULL) < 0)
         return NULL;
 
diff --git a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args
index 6a3bfbe6fb..e6e538ef1c 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.args
@@ -29,5 +29,6 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest2/.config \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -vnc 127.0.0.1:0,audiodev=audio1 \
 -device '{"driver":"vfio-pci-nohotplug","host":"0000:06:12.5","id":"hostdev0","display":"on","ramfb":true,"bus":"pci.0","addr":"0x2"}' \
+-device '{"driver":"vfio-pci","host":"0000:06:13.6","id":"hostdev1","display":"off","ramfb":false,"bus":"pci.0","addr":"0x3"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.xml b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.xml
index 16e8a1dee2..18b9bfb5bf 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.x86_64-latest.xml
@@ -39,6 +39,12 @@
       </source>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
     </hostdev>
+    <hostdev mode='subsystem' type='pci' managed='no' display='off' ramfb='off'>
+      <source>
+        <address domain='0x0000' bus='0x06' slot='0x13' function='0x6'/>
+      </source>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+    </hostdev>
     <memballoon model='none'/>
   </devices>
 </domain>
diff --git a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml
index 39c84da7e1..d263342b1d 100644
--- a/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml
+++ b/tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml
@@ -25,6 +25,11 @@
         <address domain='0x0000' bus='0x06' slot='0x12' function='0x5'/>
       </source>
     </hostdev>
+    <hostdev mode='subsystem' type='pci' display='off' ramfb='off'>
+      <source>
+        <address domain='0x0000' bus='0x06' slot='0x13' function='0x6'/>
+      </source>
+    </hostdev>
     <video>
       <model type='none'/>
     </video>
-- 
2.45.0
Re: [PATCH] qemu: fix qemu command for pci hostdevs and ramfb='off'
Posted by Peter Krempa 6 months, 1 week ago
On Thu, May 16, 2024 at 16:57:04 -0500, Jonathon Jongsma wrote:
> There was no test for this and we mistakenly used 'B' rather than 'T'
> when constructing the json value for this parameter. Thus, a value of
> 'off' was VIR_TRISTATE_SWITCH_OFF=2, which was translated to a boolean
> value of 'true'.
> 
> Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
> ---
>  src/qemu/qemu_command.c                                     | 2 +-
>  .../hostdev-pci-display-ramfb.x86_64-latest.args            | 1 +
>  .../hostdev-pci-display-ramfb.x86_64-latest.xml             | 6 ++++++
>  tests/qemuxmlconfdata/hostdev-pci-display-ramfb.xml         | 5 +++++
>  4 files changed, 13 insertions(+), 1 deletion(-)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>