]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86/pmu: Avoid exposing Intel BTS feature
authorLike Xu <likexu@tencent.com>
Wed, 1 Jun 2022 03:19:25 +0000 (11:19 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Jun 2022 17:06:16 +0000 (13:06 -0400)
commitcfc75f4796b9ec3076b655490c2a78bafddaad56
tree9b477c84af96c667a5a4264fd7c628a55a7d5abf
parent08d79099403a4b573c3e0add64b46a3fe03ee8b1
KVM: x86/pmu: Avoid exposing Intel BTS feature

The BTS feature (including the ability to set the BTS and BTINT
bits in the DEBUGCTL MSR) is currently unsupported on KVM.

But we may try using the BTS facility on a PEBS enabled guest like this:
    perf record -e branches:u -c 1 -d ls
and then we would encounter the following call trace:

 [] unchecked MSR access error: WRMSR to 0x1d9 (tried to write 0x00000000000003c0)
        at rIP: 0xffffffff810745e4 (native_write_msr+0x4/0x20)
 [] Call Trace:
 []  intel_pmu_enable_bts+0x5d/0x70
 []  bts_event_add+0x54/0x70
 []  event_sched_in+0xee/0x290

As it lacks any CPUID indicator or perf_capabilities valid bit
fields to prompt for this information, the platform would hint
the Intel BTS feature unavailable to guest by setting the
BTS_UNAVAIL bit in the IA32_MISC_ENABLE.

Signed-off-by: Like Xu <likexu@tencent.com>
Message-Id: <20220601031925.59693-3-likexu@tencent.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/pmu.h
arch/x86/kvm/vmx/pmu_intel.c
arch/x86/kvm/x86.c