Disable LBR virtualization if the CPU (or I guess perf) doesn't support LBR callstacks, as KVM unconditionally creates the associated perf LBR event with PERF_SAMPLE_BRANCH_CALL_STACK. That results in perf rejecting the event, and cause LBR virtualization to silently fail. This was detected by running vmx_pmu_caps_test on older hardware. I didn't tag it for stable because I can't imagine anyone is trying to use KVM's LBR virtualization on pre-HSW. Sean Christopherson (3): KVM: VMX: Snapshot LBR capabilities during module initialization perf/x86/intel: Expose existence of callback support to KVM KVM: VMX: Disable LBR virtualization if the CPU doesn't support LBR callstacks arch/x86/events/intel/lbr.c | 1 + arch/x86/include/asm/perf_event.h | 1 + arch/x86/kvm/vmx/pmu_intel.c | 2 +- arch/x86/kvm/vmx/vmx.c | 17 +++++++++++++---- arch/x86/kvm/vmx/vmx.h | 2 ++ 5 files changed, 18 insertions(+), 5 deletions(-) base-commit: 0c64952fec3ea01cb5b09f00134200f3e7ab40d5 -- 2.44.0.278.ge034bb2e1d-goog