[libvirt PATCH] cpu_map: Remove monitor feature from EPYC-Rome
by Jiri Denemark
The feature is filtered by KVM and never automatically enabled. So even
though QEMU definition of EPYC-Rome contains this feature, the guest
won't see it. Also domain capabilities will show it as disabled for KVM
domains. Thus the feature should not really be included in our
definition of EPYC-Rome.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/cpu_map/x86_EPYC-Rome.xml | 1 -
tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml | 1 -
tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml | 1 -
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 1 -
tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 1 -
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 1 -
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 1 -
11 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/cpu_map/x86_EPYC-Rome.xml b/src/cpu_map/x86_EPYC-Rome.xml
index 99fc015fdd..e54d0a48d8 100644
--- a/src/cpu_map/x86_EPYC-Rome.xml
+++ b/src/cpu_map/x86_EPYC-Rome.xml
@@ -37,7 +37,6 @@
<feature name='misalignsse'/>
<feature name='mmx'/>
<feature name='mmxext'/>
- <feature name='monitor'/>
<feature name='movbe'/>
<feature name='msr'/>
<feature name='mtrr'/>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
index cb2caab6f5..6d95b508b2 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
@@ -2,6 +2,7 @@
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>
<feature policy='require' name='ht'/>
+ <feature policy='require' name='monitor'/>
<feature policy='require' name='osxsave'/>
<feature policy='require' name='cmt'/>
<feature policy='require' name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
index b6784f9eba..65eaeabdd0 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
@@ -3,6 +3,7 @@
<model>EPYC-Rome</model>
<vendor>AMD</vendor>
<feature name='ht'/>
+ <feature name='monitor'/>
<feature name='osxsave'/>
<feature name='cmt'/>
<feature name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
index 86466c0547..febfdfcf2b 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
@@ -17,5 +17,4 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='monitor'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
index cb2caab6f5..6d95b508b2 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
@@ -2,6 +2,7 @@
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>
<feature policy='require' name='ht'/>
+ <feature policy='require' name='monitor'/>
<feature policy='require' name='osxsave'/>
<feature policy='require' name='cmt'/>
<feature policy='require' name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
index b6784f9eba..65eaeabdd0 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
@@ -3,6 +3,7 @@
<model>EPYC-Rome</model>
<vendor>AMD</vendor>
<feature name='ht'/>
+ <feature name='monitor'/>
<feature name='osxsave'/>
<feature name='cmt'/>
<feature name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
index c6aa67b6d5..7629a1b4a8 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
@@ -16,6 +16,5 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='monitor'/>
<feature policy='disable' name='amd-stibp'/>
</cpu>
diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
index 716adab95b..ed2da1f5da 100644
--- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
@@ -54,7 +54,6 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='monitor'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
index dbb828c368..4379ec351d 100644
--- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
@@ -53,7 +53,6 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='monitor'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 71b655dd10..7fa021fcba 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -54,7 +54,6 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='monitor'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index b28dc590c1..953c18a251 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -53,7 +53,6 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='monitor'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes'>qemu64</model>
--
2.28.0
4 years, 2 months
[libvirt PATCH] spec: Install all schemas
by Jiri Denemark
The main spec file was missing basictypes.rng and mingw does not install
cpu.rng. Let's just install all *.rng files in the schemas directory.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
libvirt.spec.in | 24 +-----------------------
mingw-libvirt.spec.in | 24 ++----------------------
2 files changed, 3 insertions(+), 45 deletions(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 52f30be096..6d4eef86ad 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1866,29 +1866,7 @@ exit 0
%dir %{_datadir}/libvirt/schemas/
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
-%{_datadir}/libvirt/schemas/basictypes.rng
-%{_datadir}/libvirt/schemas/capability.rng
-%{_datadir}/libvirt/schemas/cpu.rng
-%{_datadir}/libvirt/schemas/cputypes.rng
-%{_datadir}/libvirt/schemas/domain.rng
-%{_datadir}/libvirt/schemas/domainbackup.rng
-%{_datadir}/libvirt/schemas/domaincaps.rng
-%{_datadir}/libvirt/schemas/domaincheckpoint.rng
-%{_datadir}/libvirt/schemas/domaincommon.rng
-%{_datadir}/libvirt/schemas/domainsnapshot.rng
-%{_datadir}/libvirt/schemas/interface.rng
-%{_datadir}/libvirt/schemas/network.rng
-%{_datadir}/libvirt/schemas/networkcommon.rng
-%{_datadir}/libvirt/schemas/networkport.rng
-%{_datadir}/libvirt/schemas/nodedev.rng
-%{_datadir}/libvirt/schemas/nwfilter.rng
-%{_datadir}/libvirt/schemas/nwfilter_params.rng
-%{_datadir}/libvirt/schemas/nwfilterbinding.rng
-%{_datadir}/libvirt/schemas/secret.rng
-%{_datadir}/libvirt/schemas/storagecommon.rng
-%{_datadir}/libvirt/schemas/storagepool.rng
-%{_datadir}/libvirt/schemas/storagepoolcaps.rng
-%{_datadir}/libvirt/schemas/storagevol.rng
+%{_datadir}/libvirt/schemas/*.rng
%{_datadir}/libvirt/cpu_map/*.xml
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 96c6624ca4..06bb9dfe7f 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -227,28 +227,8 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%dir %{mingw32_datadir}/libvirt/
%dir %{mingw32_datadir}/libvirt/schemas/
-%{mingw32_datadir}/libvirt/schemas/basictypes.rng
-%{mingw32_datadir}/libvirt/schemas/capability.rng
-%{mingw32_datadir}/libvirt/schemas/cputypes.rng
-%{mingw32_datadir}/libvirt/schemas/domain.rng
-%{mingw32_datadir}/libvirt/schemas/domainbackup.rng
-%{mingw32_datadir}/libvirt/schemas/domaincaps.rng
-%{mingw32_datadir}/libvirt/schemas/domaincheckpoint.rng
-%{mingw32_datadir}/libvirt/schemas/domaincommon.rng
-%{mingw32_datadir}/libvirt/schemas/domainsnapshot.rng
-%{mingw32_datadir}/libvirt/schemas/interface.rng
-%{mingw32_datadir}/libvirt/schemas/network.rng
-%{mingw32_datadir}/libvirt/schemas/networkcommon.rng
-%{mingw32_datadir}/libvirt/schemas/networkport.rng
-%{mingw32_datadir}/libvirt/schemas/nodedev.rng
-%{mingw32_datadir}/libvirt/schemas/nwfilter.rng
-%{mingw32_datadir}/libvirt/schemas/nwfilter_params.rng
-%{mingw32_datadir}/libvirt/schemas/nwfilterbinding.rng
-%{mingw32_datadir}/libvirt/schemas/secret.rng
-%{mingw32_datadir}/libvirt/schemas/storagecommon.rng
-%{mingw32_datadir}/libvirt/schemas/storagepool.rng
-%{mingw32_datadir}/libvirt/schemas/storagepoolcaps.rng
-%{mingw32_datadir}/libvirt/schemas/storagevol.rng
+%{mingw32_datadir}/libvirt/schemas/*.rng
+
%dir %{mingw32_datadir}/libvirt/api/
%{mingw32_datadir}/libvirt/api/libvirt-api.xml
%{mingw32_datadir}/libvirt/api/libvirt-lxc-api.xml
--
2.28.0
4 years, 2 months
[PATCH] spec: Add cpu.rng to %files
by Cole Robinson
Fixes: 51v5d325240c645ea6c1a0902c695cf299410b1f90c
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
Pushed as trivial
libvirt.spec.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 933e12f4d2..52f30be096 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1868,6 +1868,7 @@ exit 0
%{_datadir}/libvirt/schemas/basictypes.rng
%{_datadir}/libvirt/schemas/capability.rng
+%{_datadir}/libvirt/schemas/cpu.rng
%{_datadir}/libvirt/schemas/cputypes.rng
%{_datadir}/libvirt/schemas/domain.rng
%{_datadir}/libvirt/schemas/domainbackup.rng
--
2.28.0
4 years, 2 months
[libvirt PATCHv2 00/16] refactor qemuAgentGetInterfaces
by Ján Tomko
v2:
* add new patch separating error checking in qemuAgentGetInterfaceOneAddress
* split out naddrs++ on a separate line
* added documentation for qemuAgentGetInterfaceAddresses
* added qemuAgentGetAllInterfaceAddresses
Ján Tomko (16):
qemu: agent: remove redundant checks
qemu: agent: split out qemuAgentGetInterfaceOneAddress
qemu: agent: remove impossible errors
qemu: agent: reduce scope of addrs_count
qemu: agent: expand addrs upfront
qemu: agent: use g_auto for ifname
qemu: agent: use virHashNew
qemu: agent: simplify access to ifaces_ret
qemu: agent: split out qemuAgentGetInterfaceAddresses
qemu: agent: use GetArray to remove a check
qemu: agent: use g_auto in qemuAgentGetInterfaces
qemu: agent: remove cleanup in qemuAgentGetInterfaces
qemuAgentGetInterfaceAddresses: turn ifname into char*
qemu: agent: rename tmp_iface to iface_obj
qemuAgentGetInterfaceOneAddress: check for errors early
qemu: agent: split out qemuAgentGetAllInterfaceAddresses
src/qemu/qemu_agent.c | 355 +++++++++++++++++++++---------------------
1 file changed, 180 insertions(+), 175 deletions(-)
--
2.26.2
4 years, 2 months
[PATCH v2] qemu: Don't generate '-machine memory-backend' and '-numa memdev'
by Michal Privoznik
In 88957116c9 I've switched to -machine memory-backend=ID and
-object memory-backend-* because QEMU is obsoleting -mem-path
and -mem-prealloc. However, what I did not foresee was that using
-machine memory-backend in combination with -numa is not allowed
in QEMU. This was reported upstream and fortunately not released
yet.
The problem is that if domain has NUMA nodes then we will
generate memory-backend-* objects for NUMA nodes (because if QEMU
is new enough to expose default RAM ID it also supports -numa
memdev=) and adding non-NUMA memory backend is wrong.
Reported-by: Masayoshi Mizuma <msys.mizuma(a)gmail.com>
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_command.c | 32 +++++++++++++++----
.../hugepages-nvdimm.x86_64-latest.args | 6 +---
...memory-default-hugepage.x86_64-latest.args | 5 +--
.../memfd-memory-numa.x86_64-latest.args | 5 +--
...y-hotplug-nvdimm-access.x86_64-latest.args | 4 +--
...ry-hotplug-nvdimm-align.x86_64-latest.args | 4 +--
...ry-hotplug-nvdimm-label.x86_64-latest.args | 4 +--
...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 4 +--
...hotplug-nvdimm-readonly.x86_64-latest.args | 4 +--
.../memory-hotplug-nvdimm.x86_64-latest.args | 4 +--
.../numatune-hmat.x86_64-latest.args | 4 +--
...vhost-user-fs-fd-memory.x86_64-latest.args | 4 +--
...vhost-user-fs-hugepages.x86_64-latest.args | 5 +--
...host-user-gpu-secondary.x86_64-latest.args | 3 +-
.../vhost-user-vga.x86_64-latest.args | 3 +-
15 files changed, 39 insertions(+), 52 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 476cf6972e..c347f80f08 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6829,7 +6829,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
virTristateSwitch vmport = def->features[VIR_DOMAIN_FEATURE_VMPORT];
virTristateSwitch smm = def->features[VIR_DOMAIN_FEATURE_SMM];
virCPUDefPtr cpu = def->cpu;
- const char *defaultRAMid = NULL;
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
size_t i;
@@ -7046,11 +7045,24 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
if (virDomainNumaHasHMAT(def->numa))
virBufferAddLit(&buf, ",hmat=on");
- defaultRAMid = virQEMUCapsGetMachineDefaultRAMid(qemuCaps,
- def->virtType,
- def->os.machine);
- if (defaultRAMid)
- virBufferAsprintf(&buf, ",memory-backend=%s", defaultRAMid);
+ if (!virDomainNumaGetNodeCount(def->numa)) {
+ const char *defaultRAMid = NULL;
+
+ /* QEMU is obsoleting -mem-path and -mem-prealloc. That means we have
+ * to switch to memory-backend-* even for regular RAM and to keep
+ * domain migratable we have to set the same ID as older QEMUs would.
+ * If domain has no NUMA nodes and QEMU is new enough to expose ID of
+ * the default RAM we want to use it for default RAM (construct
+ * memory-backend-* with corresponding attributes instead of obsolete
+ * -mem-path and -mem-prealloc.
+ * This generates only reference for the memory-backend-* object added
+ * later in qemuBuildMemCommandLine() */
+ defaultRAMid = virQEMUCapsGetMachineDefaultRAMid(qemuCaps,
+ def->virtType,
+ def->os.machine);
+ if (defaultRAMid)
+ virBufferAsprintf(&buf, ",memory-backend=%s", defaultRAMid);
+ }
virCommandAddArgBuffer(cmd, &buf);
@@ -7216,7 +7228,13 @@ qemuBuildMemCommandLine(virCommandPtr cmd,
def->os.machine);
if (defaultRAMid) {
- qemuBuildMemCommandLineMemoryDefaultBackend(cmd, def, priv, defaultRAMid);
+ /* As documented in qemuBuildMachineCommandLine() if QEMU is new enough
+ * to expose default RAM ID we must use memory-backend-* even for
+ * regular memory because -mem-path and -mem-prealloc are obsolete.
+ * However, if domain has one or more NUMA nodes then there is no
+ * default RAM and we mustn't generate the memory object. */
+ if (!virDomainNumaGetNodeCount(def->numa))
+ qemuBuildMemCommandLineMemoryDefaultBackend(cmd, def, priv, defaultRAMid);
} else {
if (def->mem.allocation == VIR_DOMAIN_MEMORY_ALLOCATION_IMMEDIATE) {
virCommandAddArgList(cmd, "-mem-prealloc", NULL);
diff --git a/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args b/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args
index 192b033e9e..969bb713b5 100644
--- a/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args
@@ -12,13 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=1048576k,slots=16,maxmem=1099511627776k \
--object memory-backend-file,id=pc.ram,\
-mem-path=/dev/hugepages2M/libvirt/qemu/-1-QEMUGuest1,share=yes,prealloc=yes,\
-size=1073741824 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-file,id=ram-node0,\
diff --git a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args
index b43e7d9c3c..ef15e2e97e 100644
--- a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args
@@ -12,12 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-instance-00000092/master-key.aes \
--machine pc-i440fx-2.3,accel=kvm,usb=off,dump-guest-core=off,\
-memory-backend=pc.ram \
+-machine pc-i440fx-2.3,accel=kvm,usb=off,dump-guest-core=off \
-cpu qemu64 \
-m 14336 \
--object memory-backend-memfd,id=pc.ram,hugetlb=yes,hugetlbsize=2097152,\
-share=yes,prealloc=yes,size=15032385536 \
-overcommit mem-lock=off \
-smp 8,sockets=1,dies=1,cores=8,threads=1 \
-object memory-backend-memfd,id=ram-node0,hugetlb=yes,hugetlbsize=2097152,\
diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args
index b43e7d9c3c..ef15e2e97e 100644
--- a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args
@@ -12,12 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-instance-00000092/master-key.aes \
--machine pc-i440fx-2.3,accel=kvm,usb=off,dump-guest-core=off,\
-memory-backend=pc.ram \
+-machine pc-i440fx-2.3,accel=kvm,usb=off,dump-guest-core=off \
-cpu qemu64 \
-m 14336 \
--object memory-backend-memfd,id=pc.ram,hugetlb=yes,hugetlbsize=2097152,\
-share=yes,prealloc=yes,size=15032385536 \
-overcommit mem-lock=off \
-smp 8,sockets=1,dies=1,cores=8,threads=1 \
-object memory-backend-memfd,id=ram-node0,hugetlb=yes,hugetlbsize=2097152,\
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args
index c5c5befdd5..8d3fa2e867 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=219136k,slots=16,maxmem=1099511627776k \
--object memory-backend-ram,id=pc.ram,size=224395264 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=224395264 \
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args
index 418bf1158d..4f22f78277 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=219136k,slots=16,maxmem=1099511627776k \
--object memory-backend-ram,id=pc.ram,size=224395264 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=224395264 \
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args
index 66477a2b09..53dda234a2 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=219136k,slots=16,maxmem=1099511627776k \
--object memory-backend-ram,id=pc.ram,size=224395264 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=224395264 \
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args
index 759d749c2e..cac02a6f6d 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=219136k,slots=16,maxmem=1099511627776k \
--object memory-backend-ram,id=pc.ram,size=224395264 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=224395264 \
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args
index b195b8625c..5e44496e39 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=219136k,slots=16,maxmem=1099511627776k \
--object memory-backend-ram,id=pc.ram,size=224395264 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=224395264 \
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args
index ae416d7c7f..94f8444d95 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \
-cpu qemu64 \
-m size=1048576k,slots=16,maxmem=1099511627776k \
--object memory-backend-ram,id=pc.ram,size=1073741824 \
-overcommit mem-lock=off \
-smp 2,sockets=2,dies=1,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=1073741824 \
diff --git a/tests/qemuxml2argvdata/numatune-hmat.x86_64-latest.args b/tests/qemuxml2argvdata/numatune-hmat.x86_64-latest.args
index be4a9ed871..c52015caa8 100644
--- a/tests/qemuxml2argvdata/numatune-hmat.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/numatune-hmat.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,hmat=on,\
-memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off,hmat=on \
-cpu qemu64 \
-m 12288 \
--object memory-backend-ram,id=pc.ram,size=12884901888 \
-overcommit mem-lock=off \
-smp 12,sockets=12,cores=1,threads=1 \
-object memory-backend-ram,id=ram-node0,size=2147483648 \
diff --git a/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.x86_64-latest.args b/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.x86_64-latest.args
index 13359c91fe..dd5f68abc5 100644
--- a/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.x86_64-latest.args
@@ -12,11 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-guest/master-key.aes \
--machine pc,accel=kvm,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-machine pc,accel=kvm,usb=off,dump-guest-core=off \
-cpu qemu64 \
-m 14336 \
--object memory-backend-file,id=pc.ram,\
-mem-path=/var/lib/libvirt/qemu/ram/-1-guest/pc.ram,share=yes,size=15032385536 \
-overcommit mem-lock=off \
-smp 2,sockets=2,cores=1,threads=1 \
-object memory-backend-file,id=ram-node0,\
diff --git a/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args b/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args
index 59f45d466b..e4f5db7a63 100644
--- a/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/vhost-user-fs-hugepages.x86_64-latest.args
@@ -12,12 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-guest/master-key.aes \
--machine q35,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-machine q35,accel=tcg,usb=off,dump-guest-core=off \
-cpu qemu64 \
-m 2048 \
--object memory-backend-file,id=pc.ram,\
-mem-path=/dev/hugepages2M/libvirt/qemu/-1-guest,share=yes,prealloc=yes,\
-size=2147483648 \
-overcommit mem-lock=off \
-smp 2,sockets=2,cores=1,threads=1 \
-object memory-backend-file,id=ram-node0,\
diff --git a/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args b/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args
index e7d3315b8f..e99a5342dc 100644
--- a/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args
@@ -12,10 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off \
-cpu qemu64 \
-m 214 \
--object memory-backend-memfd,id=pc.ram,share=yes,size=224395264 \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-object memory-backend-memfd,id=ram-node0,share=yes,size=224395264 \
diff --git a/tests/qemuxml2argvdata/vhost-user-vga.x86_64-latest.args b/tests/qemuxml2argvdata/vhost-user-vga.x86_64-latest.args
index df5b1b481d..277bf8c646 100644
--- a/tests/qemuxml2argvdata/vhost-user-vga.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/vhost-user-vga.x86_64-latest.args
@@ -12,10 +12,9 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,\
file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
--machine pc,accel=tcg,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off \
-cpu qemu64 \
-m 214 \
--object memory-backend-memfd,id=pc.ram,share=yes,size=224395264 \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-object memory-backend-memfd,id=ram-node0,share=yes,size=224395264 \
--
2.26.2
4 years, 2 months
[libvirt PATCH] tools: spell out the type instead of using typeof
by Ján Tomko
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
tools/virsh-completer-domain.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/virsh-completer-domain.c b/tools/virsh-completer-domain.c
index 50a8a31fcd..c657627ac1 100644
--- a/tools/virsh-completer-domain.c
+++ b/tools/virsh-completer-domain.c
@@ -357,7 +357,7 @@ virshDomainInterfaceAddrSourceCompleter(vshControl *ctl G_GNUC_UNUSED,
virCheckFlags(0, NULL);
- ret = g_new0(typeof(*ret), VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST + 1);
+ ret = g_new0(char *, VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST + 1);
for (i = 0; i < VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST; i++)
ret[i] = g_strdup(virshDomainInterfaceAddressesSourceTypeToString(i));
@@ -376,7 +376,7 @@ virshDomainHostnameSourceCompleter(vshControl *ctl G_GNUC_UNUSED,
virCheckFlags(0, NULL);
- ret = g_new0(typeof(*ret), VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST + 1);
+ ret = g_new0(char *, VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST + 1);
for (i = 0; i < VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST; i++)
ret[i] = g_strdup(virshDomainHostnameSourceTypeToString(i));
--
2.26.2
4 years, 2 months
[PATCH] qemu: Add support for -device ati-vga (models: rage128p and rv100)
by Steven Newbury
QEMU since 5.0 has two new video devices rage128p and rv100.
These emulate ATI Rage128 Pro and Radeon GPUs respectively,
at least to some extent. This can be useful for OS without
virtualisation drivers or support for VBE or the old Cirrus
emulation.
Signed-off-by: Steven Newbury <steve(a)snewbury.org.uk>
---
docs/schemas/domaincommon.rng | 2 ++
src/conf/domain_conf.c | 7 +++++++
src/conf/domain_conf.h | 2 ++
src/qemu/qemu_capabilities.c | 6 ++++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 6 ++++++
src/qemu/qemu_domain_address.c | 2 ++
src/qemu/qemu_process.c | 2 ++
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 1 +
12 files changed, 32 insertions(+)
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 7d4b105981..d52eb293a8 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3915,6 +3915,8 @@
<value>none</value>
<value>bochs</value>
<value>ramfb</value>
+ <value>rage128p</value>
+ <value>rv100</value>
</choice>
</attribute>
<group>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index c003b5c030..5d8b6a7611 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -811,6 +811,8 @@ VIR_ENUM_IMPL(virDomainVideo,
"none",
"bochs",
"ramfb",
+ "rage128p",
+ "rv100",
);
VIR_ENUM_IMPL(virDomainVideoVGAConf,
@@ -16016,6 +16018,11 @@ virDomainVideoDefaultRAM(const virDomainDef *def,
/* QEMU use 64M as the minimal video memory for qxl device */
return 64 * 1024;
+ case VIR_DOMAIN_VIDEO_TYPE_RAGE128P:
+ case VIR_DOMAIN_VIDEO_TYPE_RV100:
+ /* The real world devices started at 16M */
+ return 16 * 1024;
+
case VIR_DOMAIN_VIDEO_TYPE_DEFAULT:
case VIR_DOMAIN_VIDEO_TYPE_VBOX:
case VIR_DOMAIN_VIDEO_TYPE_PARALLELS:
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 450686dfb5..b12c7ab00d 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1502,6 +1502,8 @@ typedef enum {
VIR_DOMAIN_VIDEO_TYPE_NONE,
VIR_DOMAIN_VIDEO_TYPE_BOCHS,
VIR_DOMAIN_VIDEO_TYPE_RAMFB,
+ VIR_DOMAIN_VIDEO_TYPE_RAGE128P,
+ VIR_DOMAIN_VIDEO_TYPE_RV100,
VIR_DOMAIN_VIDEO_TYPE_LAST
} virDomainVideoType;
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 38b901a6c4..0b2bd24619 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -600,6 +600,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
/* 380 */
"usb-host.hostdevice",
+ "ati-vga",
);
@@ -1325,6 +1326,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "tcg-accel", QEMU_CAPS_TCG },
{ "pvscsi", QEMU_CAPS_SCSI_PVSCSI },
{ "spapr-tpm-proxy", QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY },
+ { "ati-vga", QEMU_CAPS_DEVICE_ATI_VGA },
};
@@ -6127,6 +6129,10 @@ virQEMUCapsFillDomainDeviceVideoCaps(virQEMUCapsPtr qemuCaps,
VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_BOCHS);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_RAMFB))
VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_RAMFB);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_ATI_VGA)) {
+ VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_RAGE128P);
+ VIR_DOMAIN_CAPS_ENUM_SET(dev->modelType, VIR_DOMAIN_VIDEO_TYPE_RV100);
+ }
}
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 107056ba17..e316bd1532 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -580,6 +580,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
/* 380 */
QEMU_CAPS_USB_HOST_HOSTDEVICE, /* -device usb-host.hostdevice */
+ QEMU_CAPS_DEVICE_ATI_VGA, /* -device ati-vga */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 476cf6972e..b501b8e3e2 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -101,6 +101,8 @@ VIR_ENUM_IMPL(qemuVideo,
"" /* 'none' doesn't make sense here */,
"bochs-display",
"", /* ramfb can't be used with -vga */
+ "rage128p",
+ "rv100",
);
VIR_ENUM_DECL(qemuDeviceVideo);
@@ -120,6 +122,8 @@ VIR_ENUM_IMPL(qemuDeviceVideo,
"" /* 'none' doesn't make sense here */,
"bochs-display",
"ramfb",
+ "ati-vga" /* (rage128p) */,
+ "ati-vga" /* (rv100) */,
);
VIR_ENUM_DECL(qemuDeviceVideoSecondary);
@@ -139,6 +143,8 @@ VIR_ENUM_IMPL(qemuDeviceVideoSecondary,
"" /* 'none' doesn't make sense here */,
"" /* no secondary device for bochs */,
"" /* no secondary device for ramfb */,
+ "" /* no secondary device for ati-vga? (rage128p) */,
+ "" /* no secondary device for ati-vga? (rv100) */,
);
VIR_ENUM_IMPL(qemuSoundCodec,
diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
index dd87915a97..d8273af92f 100644
--- a/src/qemu/qemu_domain_address.c
+++ b/src/qemu/qemu_domain_address.c
@@ -964,6 +964,8 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDefPtr dev,
case VIR_DOMAIN_VIDEO_TYPE_VBOX:
case VIR_DOMAIN_VIDEO_TYPE_QXL:
case VIR_DOMAIN_VIDEO_TYPE_PARALLELS:
+ case VIR_DOMAIN_VIDEO_TYPE_RAGE128P:
+ case VIR_DOMAIN_VIDEO_TYPE_RV100:
return pciFlags;
case VIR_DOMAIN_VIDEO_TYPE_BOCHS:
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 6b5de29fdb..09aac14430 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -3111,6 +3111,8 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver,
case VIR_DOMAIN_VIDEO_TYPE_CIRRUS:
case VIR_DOMAIN_VIDEO_TYPE_XEN:
case VIR_DOMAIN_VIDEO_TYPE_VBOX:
+ case VIR_DOMAIN_VIDEO_TYPE_RAGE128P:
+ case VIR_DOMAIN_VIDEO_TYPE_RV100:
case VIR_DOMAIN_VIDEO_TYPE_LAST:
break;
}
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
index 928af2a01c..30609085e1 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
@@ -199,6 +199,7 @@
<flag name='migration-param.xbzrle-cache-size'/>
<flag name='numa.hmat'/>
<flag name='blockdev-hostdev-scsi'/>
+ <flag name='ati-vga'/>
<version>5000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
index e8668a25a9..254da198b2 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
@@ -208,6 +208,7 @@
<flag name='spapr-tpm-proxy'/>
<flag name='numa.hmat'/>
<flag name='blockdev-hostdev-scsi'/>
+ <flag name='ati-vga'/>
<version>5000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
index 546b9b0422..ae6e66679b 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
@@ -243,6 +243,7 @@
<flag name='intel-iommu.aw-bits'/>
<flag name='numa.hmat'/>
<flag name='blockdev-hostdev-scsi'/>
+ <flag name='ati-vga'/>
<version>5000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100241</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
index 987beb965e..33929735f5 100644
--- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
@@ -243,6 +243,7 @@
<flag name='numa.hmat'/>
<flag name='blockdev-hostdev-scsi'/>
<flag name='usb-host.hostdevice'/>
+ <flag name='ati-vga'/>
<version>5001000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100242</microcodeVersion>
--
2.28.0
4 years, 2 months
[PATCH] wireshark: Fix missing bool_t on macOS
by Roman Bolshakov
The header has to be explicitly added to pull definition of bool_t and a
few other types. Otherwise packet-libvirt.c can't be compiled.
Signed-off-by: Roman Bolshakov <r.bolshakov(a)yadro.com>
---
tools/wireshark/src/packet-libvirt.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c
index 965f1f5482..f43919b05d 100644
--- a/tools/wireshark/src/packet-libvirt.c
+++ b/tools/wireshark/src/packet-libvirt.c
@@ -21,6 +21,7 @@
#include <wireshark/epan/proto.h>
#include <wireshark/epan/packet.h>
#include <wireshark/epan/dissectors/packet-tcp.h>
+#include <rpc/types.h>
#include <rpc/xdr.h>
#include "packet-libvirt.h"
#include "internal.h"
--
2.28.0
4 years, 2 months
[libvirt PATCH] cputest: Update QEMU data for Ryzen 9 3900X
by Jiri Denemark
The CPU should be identified as EPYC-Rome, but the QEMU binary used to
gather the original test data did not support this model. Let's update
the supported models to QEMU 5.1.0.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
tests/cputest.c | 2 +-
...6_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 12 +-
...86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml | 12 +-
.../x86_64-cpuid-Ryzen-9-3900X-12-Core.json | 203 ++++++++++++++++++
4 files changed, 207 insertions(+), 22 deletions(-)
diff --git a/tests/cputest.c b/tests/cputest.c
index b3b143cbf1..bf5ce84aa7 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1254,7 +1254,7 @@ mymain(void)
DO_TEST_CPUID(VIR_ARCH_X86_64, "Pentium-P6100", JSON_NONE);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Phenom-B95", JSON_HOST);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-7-1800X-Eight-Core", JSON_HOST);
- DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-9-3900X-12-Core", JSON_MODELS_REQUIRED);
+ DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-9-3900X-12-Core", JSON_MODELS);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-5110", JSON_NONE);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1225-v5", JSON_MODELS);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1245-v5", JSON_MODELS);
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
index 1320f65a58..cb2caab6f5 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml
@@ -1,12 +1,9 @@
<cpu mode='custom' match='exact'>
- <model fallback='forbid'>EPYC-IBPB</model>
+ <model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>
<feature policy='require' name='ht'/>
<feature policy='require' name='osxsave'/>
<feature policy='require' name='cmt'/>
- <feature policy='require' name='clwb'/>
- <feature policy='require' name='umip'/>
- <feature policy='require' name='rdpid'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='mbm_total'/>
<feature policy='require' name='mbm_local'/>
@@ -17,18 +14,11 @@
<feature policy='require' name='wdt'/>
<feature policy='require' name='tce'/>
<feature policy='require' name='topoext'/>
- <feature policy='require' name='perfctr_core'/>
<feature policy='require' name='perfctr_nb'/>
<feature policy='require' name='invtsc'/>
- <feature policy='require' name='clzero'/>
- <feature policy='require' name='xsaveerptr'/>
- <feature policy='require' name='wbnoinvd'/>
- <feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
- <feature policy='require' name='npt'/>
<feature policy='require' name='lbrv'/>
<feature policy='require' name='svm-lock'/>
- <feature policy='require' name='nrip-save'/>
<feature policy='require' name='tsc-scale'/>
<feature policy='require' name='vmcb-clean'/>
<feature policy='require' name='flushbyasid'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
index fba378e030..c6aa67b6d5 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-json.xml
@@ -1,29 +1,21 @@
<cpu mode='custom' match='exact'>
- <model fallback='forbid'>EPYC-IBPB</model>
+ <model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>
<feature policy='require' name='x2apic'/>
<feature policy='require' name='tsc-deadline'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='tsc_adjust'/>
- <feature policy='require' name='clwb'/>
- <feature policy='require' name='umip'/>
- <feature policy='require' name='rdpid'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='cmp_legacy'/>
- <feature policy='require' name='perfctr_core'/>
- <feature policy='require' name='clzero'/>
- <feature policy='require' name='xsaveerptr'/>
- <feature policy='require' name='wbnoinvd'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='virt-ssbd'/>
- <feature policy='require' name='npt'/>
- <feature policy='require' name='nrip-save'/>
<feature policy='require' name='rdctl-no'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
<feature policy='disable' name='monitor'/>
+ <feature policy='disable' name='amd-stibp'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core.json b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core.json
index fbdf1a794a..07c0ba0b05 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core.json
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core.json
@@ -698,6 +698,28 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "Skylake-Server-v4",
+ "typename": "Skylake-Server-v4-x86_64-cpu",
+ "unavailable-features": [
+ "pcid",
+ "erms",
+ "invpcid",
+ "avx512f",
+ "avx512dq",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "pku",
+ "spec-ctrl",
+ "avx512f",
+ "avx512f",
+ "avx512f",
+ "pku"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "Skylake-Server-v3",
"typename": "Skylake-Server-v3-x86_64-cpu",
@@ -1173,6 +1195,74 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "Icelake-Server-v4",
+ "typename": "Icelake-Server-v4-x86_64-cpu",
+ "unavailable-features": [
+ "pcid",
+ "erms",
+ "invpcid",
+ "avx512f",
+ "avx512dq",
+ "avx512ifma",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "avx512vbmi",
+ "pku",
+ "avx512vbmi2",
+ "gfni",
+ "vaes",
+ "vpclmulqdq",
+ "avx512vnni",
+ "avx512bitalg",
+ "avx512-vpopcntdq",
+ "la57",
+ "fsrm",
+ "spec-ctrl",
+ "avx512f",
+ "avx512f",
+ "avx512f",
+ "pku",
+ "ibrs-all",
+ "taa-no"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Icelake-Server-v3",
+ "typename": "Icelake-Server-v3-x86_64-cpu",
+ "unavailable-features": [
+ "pcid",
+ "erms",
+ "invpcid",
+ "avx512f",
+ "avx512dq",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "avx512vbmi",
+ "pku",
+ "avx512vbmi2",
+ "gfni",
+ "vaes",
+ "vpclmulqdq",
+ "avx512vnni",
+ "avx512bitalg",
+ "avx512-vpopcntdq",
+ "la57",
+ "spec-ctrl",
+ "avx512f",
+ "avx512f",
+ "avx512f",
+ "pku",
+ "ibrs-all",
+ "taa-no"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "Icelake-Server-v2",
"typename": "Icelake-Server-v2-x86_64-cpu",
@@ -1501,6 +1591,13 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "EPYC-v3",
+ "typename": "EPYC-v3-x86_64-cpu",
+ "unavailable-features": [],
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "EPYC-v2",
"typename": "EPYC-v2-x86_64-cpu",
@@ -1515,6 +1612,21 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "EPYC-Rome-v1",
+ "typename": "EPYC-Rome-v1-x86_64-cpu",
+ "unavailable-features": [],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "EPYC-Rome",
+ "typename": "EPYC-Rome-x86_64-cpu",
+ "unavailable-features": [],
+ "alias-of": "EPYC-Rome-v1",
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "EPYC-IBPB",
"typename": "EPYC-IBPB-x86_64-cpu",
@@ -1546,6 +1658,16 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "Denverton-v2",
+ "typename": "Denverton-v2-x86_64-cpu",
+ "unavailable-features": [
+ "erms",
+ "spec-ctrl"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "Denverton-v1",
"typename": "Denverton-v1-x86_64-cpu",
@@ -1573,6 +1695,63 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "Cooperlake-v1",
+ "typename": "Cooperlake-v1-x86_64-cpu",
+ "unavailable-features": [
+ "pcid",
+ "hle",
+ "erms",
+ "invpcid",
+ "rtm",
+ "avx512f",
+ "avx512dq",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "pku",
+ "avx512vnni",
+ "spec-ctrl",
+ "avx512-bf16",
+ "avx512f",
+ "avx512f",
+ "avx512f",
+ "pku",
+ "ibrs-all",
+ "taa-no"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Cooperlake",
+ "typename": "Cooperlake-x86_64-cpu",
+ "unavailable-features": [
+ "pcid",
+ "hle",
+ "erms",
+ "invpcid",
+ "rtm",
+ "avx512f",
+ "avx512dq",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "pku",
+ "avx512vnni",
+ "spec-ctrl",
+ "avx512-bf16",
+ "avx512f",
+ "avx512f",
+ "avx512f",
+ "pku",
+ "ibrs-all",
+ "taa-no"
+ ],
+ "alias-of": "Cooperlake-v1",
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "Conroe-v1",
"typename": "Conroe-v1-x86_64-cpu",
@@ -1588,6 +1767,30 @@
"static": false,
"migration-safe": true
},
+ {
+ "name": "Cascadelake-Server-v4",
+ "typename": "Cascadelake-Server-v4-x86_64-cpu",
+ "unavailable-features": [
+ "pcid",
+ "erms",
+ "invpcid",
+ "avx512f",
+ "avx512dq",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "pku",
+ "avx512vnni",
+ "spec-ctrl",
+ "avx512f",
+ "avx512f",
+ "avx512f",
+ "pku",
+ "ibrs-all"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
{
"name": "Cascadelake-Server-v3",
"typename": "Cascadelake-Server-v3-x86_64-cpu",
--
2.28.0
4 years, 2 months
[PATCH v2 0/4] cpu_map: Add EPYC-Rome model
by Markus Schade
this patch series adds testdata from an AMD EPYC 7502 system,
defines and enables the qemu EPYC-Rome model and changes
the existing Ryzen 9 host definition to the new model
Markus Schade (4):
Add testdata for AMD EPYC 7502
cpu_map: Defined and enable EPYC-Rome model
Update generated testdata for EPYC 7502 after adding EPYC-Rome model
Update cputestdata for Ryzen 9 to EPYC-Rome model
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_EPYC-Rome.xml | 81 +
tests/cputest.c | 3 +-
...86_64-cpuid-EPYC-7502-32-Core-disabled.xml | 9 +
...x86_64-cpuid-EPYC-7502-32-Core-enabled.xml | 11 +
.../x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 35 +
.../x86_64-cpuid-EPYC-7502-32-Core-host.xml | 36 +
.../x86_64-cpuid-EPYC-7502-32-Core-json.xml | 24 +
.../x86_64-cpuid-EPYC-7502-32-Core.json | 1866 +++++++++++++++++
.../x86_64-cpuid-EPYC-7502-32-Core.sig | 4 +
.../x86_64-cpuid-EPYC-7502-32-Core.xml | 66 +
...86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 9 +-
13 files changed, 2137 insertions(+), 9 deletions(-)
create mode 100644 src/cpu_map/x86_EPYC-Rome.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled=
.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-enabled.=
xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core.json
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core.sig
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core.xml
--=20
2.26.2
4 years, 2 months