]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_x86: Drop noTSX hint for incompatible CPUs
authorJiri Denemark <jdenemar@redhat.com>
Tue, 24 Mar 2020 22:35:44 +0000 (23:35 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Wed, 8 Apr 2020 15:41:00 +0000 (17:41 +0200)
The hint was introduced a long time ago when broken TSX implementation
was found in Haswell and Broadwell CPUs. Since then many more CPUs with
TSX were introduced and and disabled due to TAA vulnerability.

Thus the hint is not very useful and I think removing it is a better
choice then updating it to cover all current noTSX models.

This partially reverts:
commit 7f127ded657b24e0e55cd5f3539ef5b2dc935908
    cpu: Rework cpuCompare* APIs

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/cpu/cpu_x86.c

index ce15bb045495612fd18538ba9e195d091fc1e5c8..08749f87b907887690e2db6dbb2e8e4d19951402 100644 (file)
@@ -1937,8 +1937,6 @@ virCPUx86Compare(virCPUDefPtr host,
                  bool failIncompatible)
 {
     virCPUCompareResult ret = VIR_CPU_COMPARE_ERROR;
-    virCPUx86MapPtr map;
-    virCPUx86ModelPtr model = NULL;
     char *message = NULL;
 
     if (!host || !host->model) {
@@ -1954,46 +1952,16 @@ virCPUx86Compare(virCPUDefPtr host,
 
     ret = x86Compute(host, cpu, NULL, &message);
 
-    if (ret == VIR_CPU_COMPARE_INCOMPATIBLE) {
-        bool noTSX = false;
-
-        if (STREQ_NULLABLE(cpu->model, "Haswell") ||
-            STREQ_NULLABLE(cpu->model, "Broadwell")) {
-            if (!(map = virCPUx86GetMap()))
-                goto cleanup;
-
-            if (!(model = x86ModelFromCPU(cpu, map, -1)))
-                goto cleanup;
-
-            noTSX = !x86FeatureInData("hle", &model->data, map) ||
-                    !x86FeatureInData("rtm", &model->data, map);
-        }
-
-        if (failIncompatible) {
-            ret = VIR_CPU_COMPARE_ERROR;
-            if (message) {
-                if (noTSX) {
-                    virReportError(VIR_ERR_CPU_INCOMPATIBLE,
-                                   _("%s; try using '%s-noTSX' CPU model"),
-                                   message, cpu->model);
-                } else {
-                    virReportError(VIR_ERR_CPU_INCOMPATIBLE, "%s", message);
-                }
-            } else {
-                if (noTSX) {
-                    virReportError(VIR_ERR_CPU_INCOMPATIBLE,
-                                   _("try using '%s-noTSX' CPU model"),
-                                   cpu->model);
-                } else {
-                    virReportError(VIR_ERR_CPU_INCOMPATIBLE, NULL);
-                }
-            }
-        }
+    if (ret == VIR_CPU_COMPARE_INCOMPATIBLE && failIncompatible) {
+        ret = VIR_CPU_COMPARE_ERROR;
+        if (message)
+            virReportError(VIR_ERR_CPU_INCOMPATIBLE, "%s", message);
+        else
+            virReportError(VIR_ERR_CPU_INCOMPATIBLE, NULL);
     }
 
  cleanup:
     VIR_FREE(message);
-    x86ModelFree(model);
     return ret;
 }