cpu_x86: Drop noTSX hint for incompatible CPUs

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 7f127ded65
    cpu: Rework cpuCompare* APIs

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Jiri Denemark 2020-03-24 23:35:44 +01:00
parent d9a48d766a
commit 8452779049

View 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;
}