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

Lin Ma posted 1 patch 1 year, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20220908070722.3978-1-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
[libvirt] [PATCH v2] qemu: Remove host-passthrough validation check for host-phys-bits=on
Posted by Lin Ma 1 year, 7 months ago
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
Re: [libvirt] [PATCH v2] qemu: Remove host-passthrough validation check for host-phys-bits=on
Posted by Jim Fehlig 1 year, 7 months ago
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);
Re: [libvirt] [PATCH v2] qemu: Remove host-passthrough validation check for host-phys-bits=on
Posted by Michal Prívozník 1 year, 7 months ago
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