[libvirt] [PATCH 2/4] cpu_conf: Don't format empty model for host-model CPUs

Jiri Denemark jdenemar at redhat.com
Thu Nov 14 15:44:56 UTC 2019


Most likely for historical reasons our CPU def formatting code is
happily adding useless <model fallback='allow'/> for host-model CPUs. We
can just drop it.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 src/conf/cpu_conf.c                              | 16 +++++-----------
 .../cputestdata/ppc64-host+guest-compat-none.xml |  4 +---
 .../cpu-check-default-partial.xml                |  4 +---
 .../cpu-host-model-features.xml                  |  1 -
 4 files changed, 7 insertions(+), 18 deletions(-)

diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 3641b5ef4c..4542bcb7bd 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -751,16 +751,12 @@ virCPUDefFormatBuf(virBufferPtr buf,
 {
     size_t i;
     bool formatModel;
-    bool formatFallback;
 
     if (!def)
         return 0;
 
     formatModel = (def->mode == VIR_CPU_MODE_CUSTOM ||
                    def->mode == VIR_CPU_MODE_HOST_MODEL);
-    formatFallback = (def->type == VIR_CPU_TYPE_GUEST &&
-                      (def->mode == VIR_CPU_MODE_HOST_MODEL ||
-                       (def->mode == VIR_CPU_MODE_CUSTOM && def->model)));
 
     if (!def->model && def->mode == VIR_CPU_MODE_CUSTOM && def->nfeatures) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -768,9 +764,10 @@ virCPUDefFormatBuf(virBufferPtr buf,
         return -1;
     }
 
-    if ((formatModel && def->model) || formatFallback) {
+    if (formatModel && def->model) {
         virBufferAddLit(buf, "<model");
-        if (formatFallback) {
+
+        if (def->type == VIR_CPU_TYPE_GUEST) {
             const char *fallback;
 
             fallback = virCPUFallbackTypeToString(def->fallback);
@@ -784,11 +781,8 @@ virCPUDefFormatBuf(virBufferPtr buf,
             if (def->vendor_id)
                 virBufferEscapeString(buf, " vendor_id='%s'", def->vendor_id);
         }
-        if (formatModel && def->model) {
-            virBufferEscapeString(buf, ">%s</model>\n", def->model);
-        } else {
-            virBufferAddLit(buf, "/>\n");
-        }
+
+        virBufferEscapeString(buf, ">%s</model>\n", def->model);
     }
 
     if (formatModel && def->vendor)
diff --git a/tests/cputestdata/ppc64-host+guest-compat-none.xml b/tests/cputestdata/ppc64-host+guest-compat-none.xml
index 188ebebb72..fd50c03a79 100644
--- a/tests/cputestdata/ppc64-host+guest-compat-none.xml
+++ b/tests/cputestdata/ppc64-host+guest-compat-none.xml
@@ -1,3 +1 @@
-<cpu mode='host-model'>
-  <model fallback='allow'/>
-</cpu>
+<cpu mode='host-model'/>
diff --git a/tests/qemuxml2xmloutdata/cpu-check-default-partial.xml b/tests/qemuxml2xmloutdata/cpu-check-default-partial.xml
index 4e5fa44832..b64a1f0ef7 100644
--- a/tests/qemuxml2xmloutdata/cpu-check-default-partial.xml
+++ b/tests/qemuxml2xmloutdata/cpu-check-default-partial.xml
@@ -8,9 +8,7 @@
     <type arch='x86_64' machine='pc'>hvm</type>
     <boot dev='network'/>
   </os>
-  <cpu mode='host-model' check='partial'>
-    <model fallback='allow'/>
-  </cpu>
+  <cpu mode='host-model' check='partial'/>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>
diff --git a/tests/qemuxml2xmloutdata/cpu-host-model-features.xml b/tests/qemuxml2xmloutdata/cpu-host-model-features.xml
index a5de9ea38d..6480bd5494 100644
--- a/tests/qemuxml2xmloutdata/cpu-host-model-features.xml
+++ b/tests/qemuxml2xmloutdata/cpu-host-model-features.xml
@@ -14,7 +14,6 @@
     <boot dev='hd'/>
   </os>
   <cpu mode='host-model' check='partial'>
-    <model fallback='allow'/>
     <feature policy='require' name='abm'/>
     <feature policy='force' name='ds'/>
     <feature policy='disable' name='invtsc'/>
-- 
2.24.0




More information about the libvir-list mailing list