From 03de6917bd11c0591867607ce74ef658f76eabb9 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Wed, 15 Dec 2021 23:46:19 +0100 Subject: [PATCH] elf: Fix tst-cpu-features-cpuinfo for KVM guests on some AMD systems [BZ #28704] On KVM guests running on some AMD systems, the IBRS feature is reported as a synthetic feature using the Intel feature, while the cpuinfo entry keeps the same. Handle that by first checking the presence of the Intel feature on AMD systems. Fixes bug 28704. (cherry picked from commit 94058f6cde8b887178885954740ac6c866d25eab) --- NEWS | 1 + sysdeps/x86/tst-cpu-features-cpuinfo.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 6864af471ce..1214ec47276 100644 --- a/NEWS +++ b/NEWS @@ -24,6 +24,7 @@ The following bugs are resolved with this release: [28532] powerpc64[le]: CFI for assembly templated syscalls is incorrect [28678] nptl/tst-create1 hangs sporadically [28700] "dns [!UNAVAIL=return] files" NSS default for hosts is not useful + [28704] elf/tst-cpu-features-cpuinfo fails for KVM guests on some AMD systems Version 2.34 diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c index 2d4927f5e52..830aaca2eca 100644 --- a/sysdeps/x86/tst-cpu-features-cpuinfo.c +++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c @@ -169,7 +169,14 @@ do_test (int argc, char **argv) else if (cpu_features->basic.kind == arch_kind_amd) { fails += CHECK_PROC (ibpb, AMD_IBPB); - fails += CHECK_PROC (ibrs, AMD_IBRS); + + /* The IBRS feature on AMD processors is reported using the Intel feature + * on KVM guests (synthetic bit). In both cases the cpuinfo entry is the + * same. */ + if (HAS_CPU_FEATURE (IBRS_IBPB)) + fails += CHECK_PROC (ibrs, IBRS_IBPB); + else + fails += CHECK_PROC (ibrs, AMD_IBRS); fails += CHECK_PROC (stibp, AMD_STIBP); } fails += CHECK_PROC (ibt, IBT); -- 2.47.2