Mask off reserved bits when stuffing PMCs with full-width writes in the forced emulation subtest, otherwise the test may fail due to attempting to set reserved bits. Cc: Like Xu <like.xu.linux@xxxxxxxxx> Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> --- x86/pmu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/x86/pmu.c b/x86/pmu.c index 72c2c9cf..d92bd8ad 100644 --- a/x86/pmu.c +++ b/x86/pmu.c @@ -498,6 +498,11 @@ static void check_emulated_instr(void) brnch_start = -EXPECTED_BRNCH; instr_start = -EXPECTED_INSTR; + + if (pmu_use_full_writes()) { + brnch_start &= (1ull << pmu.gp_counter_width) - 1; + instr_start &= (1ull << pmu.gp_counter_width) - 1; + } wrmsr(MSR_GP_COUNTERx(0), brnch_start); wrmsr(MSR_GP_COUNTERx(1), instr_start); // KVM_FEP is a magic prefix that forces emulation so base-commit: 02d8befe99f8205d4caea402d8b0800354255681 -- 2.41.0.162.gfafddb0af9-goog