[libvirt] [PATCH v2] qemu: Remove host-passthrough validation check for host-phys-bits=on

Besides the -cpu host, The host-phys-bits=on applies to custom or max cpu model, So the host-passthrough validation check is unnecessary for maxphysaddr with mode='passthrough'. Signed-off-by: Lin Ma <lma@suse.com> --- src/qemu/qemu_validate.c | 7 ------- .../cpu-phys-bits-passthrough2.err | 2 +- .../cpu-phys-bits-passthrough2.xml | 4 ++-- .../cpu-phys-bits-passthrough3.err | 1 - .../cpu-phys-bits-passthrough3.xml | 20 ------------------- tests/qemuxml2argvtest.c | 1 - 6 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err delete mode 100644 tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 3327f6e24f..34fa10ae32 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -344,13 +344,6 @@ qemuValidateDomainDefCpu(virQEMUDriver *driver, switch (addr->mode) { case VIR_CPU_MAX_PHYS_ADDR_MODE_PASSTHROUGH: - if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("CPU maximum physical address bits mode '%s' can only be used with '%s' CPUs"), - virCPUMaxPhysAddrModeTypeToString(addr->mode), - virCPUModeTypeToString(VIR_CPU_MODE_HOST_PASSTHROUGH)); - return -1; - } if (addr->bits != -1) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("CPU maximum physical address bits number specification cannot be used with mode='%s'"), diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err index 22009cc6e6..28f2e43432 100644 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err +++ b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err @@ -1 +1 @@ -unsupported configuration: CPU maximum physical address bits mode 'passthrough' can only be used with 'host-passthrough' CPUs +unsupported configuration: CPU maximum physical address bits number specification cannot be used with mode='passthrough' diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml index 511bbf9949..a94e567dcb 100644 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml +++ b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml @@ -8,8 +8,8 @@ <type arch='x86_64' machine='pc'>hvm</type> <boot dev='hd'/> </os> - <cpu mode='host-model'> - <maxphysaddr mode='passthrough'/> + <cpu mode='host-passthrough'> + <maxphysaddr mode='passthrough' bits='42'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err deleted file mode 100644 index 28f2e43432..0000000000 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err +++ /dev/null @@ -1 +0,0 @@ -unsupported configuration: CPU maximum physical address bits number specification cannot be used with mode='passthrough' diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml deleted file mode 100644 index a94e567dcb..0000000000 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml +++ /dev/null @@ -1,20 +0,0 @@ -<domain type='kvm'> - <name>foo</name> - <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> - <memory unit='KiB'>219136</memory> - <currentMemory unit='KiB'>219136</currentMemory> - <vcpu placement='static'>1</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='hd'/> - </os> - <cpu mode='host-passthrough'> - <maxphysaddr mode='passthrough' bits='42'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>destroy</on_crash> - <devices> - </devices> -</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index b7c3bc0e2d..c8b69bbd7a 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3240,7 +3240,6 @@ mymain(void) DO_TEST("cpu-phys-bits-emulate2", QEMU_CAPS_KVM); DO_TEST_PARSE_ERROR("cpu-phys-bits-emulate3", QEMU_CAPS_KVM); DO_TEST_PARSE_ERROR("cpu-phys-bits-passthrough2", QEMU_CAPS_KVM); - DO_TEST_PARSE_ERROR("cpu-phys-bits-passthrough3", QEMU_CAPS_KVM); if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL) virFileDeleteTree(fakerootdir); -- 2.26.2

On 9/8/22 01:07, Lin Ma wrote:
Besides the -cpu host, The host-phys-bits=on applies to custom or max cpu model, So the host-passthrough validation check is unnecessary for maxphysaddr with mode='passthrough'.
Signed-off-by: Lin Ma <lma@suse.com> --- src/qemu/qemu_validate.c | 7 ------- .../cpu-phys-bits-passthrough2.err | 2 +- .../cpu-phys-bits-passthrough2.xml | 4 ++-- .../cpu-phys-bits-passthrough3.err | 1 - .../cpu-phys-bits-passthrough3.xml | 20 ------------------- tests/qemuxml2argvtest.c | 1 - 6 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err delete mode 100644 tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml
Hi Lin, Reviewed-by: Jim Fehlig <jfehlig@suse.com> Sorry for the delay. I forgot to review your patch before taking some days off, which is unfortunate since it would be nice to have in the 8.8.0 release. Perhaps Jiri will allow an exception. @Jiri, would it be ok to push this patch for 8.8.0? It's boarder-line bug fix and fine to push after the release if you prefer. Regards, Jim
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 3327f6e24f..34fa10ae32 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -344,13 +344,6 @@ qemuValidateDomainDefCpu(virQEMUDriver *driver,
switch (addr->mode) { case VIR_CPU_MAX_PHYS_ADDR_MODE_PASSTHROUGH: - if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("CPU maximum physical address bits mode '%s' can only be used with '%s' CPUs"), - virCPUMaxPhysAddrModeTypeToString(addr->mode), - virCPUModeTypeToString(VIR_CPU_MODE_HOST_PASSTHROUGH)); - return -1; - } if (addr->bits != -1) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("CPU maximum physical address bits number specification cannot be used with mode='%s'"), diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err index 22009cc6e6..28f2e43432 100644 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err +++ b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.err @@ -1 +1 @@ -unsupported configuration: CPU maximum physical address bits mode 'passthrough' can only be used with 'host-passthrough' CPUs +unsupported configuration: CPU maximum physical address bits number specification cannot be used with mode='passthrough' diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml index 511bbf9949..a94e567dcb 100644 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml +++ b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough2.xml @@ -8,8 +8,8 @@ <type arch='x86_64' machine='pc'>hvm</type> <boot dev='hd'/> </os> - <cpu mode='host-model'> - <maxphysaddr mode='passthrough'/> + <cpu mode='host-passthrough'> + <maxphysaddr mode='passthrough' bits='42'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err deleted file mode 100644 index 28f2e43432..0000000000 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err +++ /dev/null @@ -1 +0,0 @@ -unsupported configuration: CPU maximum physical address bits number specification cannot be used with mode='passthrough' diff --git a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml b/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml deleted file mode 100644 index a94e567dcb..0000000000 --- a/tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml +++ /dev/null @@ -1,20 +0,0 @@ -<domain type='kvm'> - <name>foo</name> - <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> - <memory unit='KiB'>219136</memory> - <currentMemory unit='KiB'>219136</currentMemory> - <vcpu placement='static'>1</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='hd'/> - </os> - <cpu mode='host-passthrough'> - <maxphysaddr mode='passthrough' bits='42'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>destroy</on_crash> - <devices> - </devices> -</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index b7c3bc0e2d..c8b69bbd7a 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3240,7 +3240,6 @@ mymain(void) DO_TEST("cpu-phys-bits-emulate2", QEMU_CAPS_KVM); DO_TEST_PARSE_ERROR("cpu-phys-bits-emulate3", QEMU_CAPS_KVM); DO_TEST_PARSE_ERROR("cpu-phys-bits-passthrough2", QEMU_CAPS_KVM); - DO_TEST_PARSE_ERROR("cpu-phys-bits-passthrough3", QEMU_CAPS_KVM);
if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL) virFileDeleteTree(fakerootdir);

On 9/28/22 19:07, Jim Fehlig wrote:
On 9/8/22 01:07, Lin Ma wrote:
Besides the -cpu host, The host-phys-bits=on applies to custom or max cpu model, So the host-passthrough validation check is unnecessary for maxphysaddr with mode='passthrough'.
Signed-off-by: Lin Ma <lma@suse.com> --- src/qemu/qemu_validate.c | 7 ------- .../cpu-phys-bits-passthrough2.err | 2 +- .../cpu-phys-bits-passthrough2.xml | 4 ++-- .../cpu-phys-bits-passthrough3.err | 1 - .../cpu-phys-bits-passthrough3.xml | 20 ------------------- tests/qemuxml2argvtest.c | 1 - 6 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.err delete mode 100644 tests/qemuxml2argvdata/cpu-phys-bits-passthrough3.xml
Hi Lin,
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
Sorry for the delay. I forgot to review your patch before taking some days off, which is unfortunate since it would be nice to have in the 8.8.0 release. Perhaps Jiri will allow an exception.
@Jiri, would it be ok to push this patch for 8.8.0? It's boarder-line bug fix and fine to push after the release if you prefer.
Though I'm not Jiri, I think it's okay. It is a bugfix in my book. Michal
participants (3)
-
Jim Fehlig
-
Lin Ma
-
Michal Prívozník