Hi Peter, any comments on the host perf changes? Hi Paolo, any comments on the kvm changes? Isn't this feature interesting to you? Just kindly ping. Thanks, Like Xu On 2020/3/13 10:16, Like Xu wrote:
Hi all, Please help review your interesting parts in this stable version, e.g. the first four patches involve the perf event subsystem and the fifth patch concerns the KVM userspace interface.
v8->v9 Changelog: - using guest_lbr_constraint to create guest LBR event without hw counter; (please check perf changes in patch 0003) - rename 'cpuc->vcpu_lbr' to 'cpuc->guest_lbr_enabled'; (please check host LBR changes in patch 0004) - replace 'pmu->lbr_used' mechanism with lazy release kvm_pmu_lbr_cleanup(); - refactor IA32_PERF_CAPABILITIES trap via get_perf_capabilities(); - refactor kvm_pmu_lbr_enable() with kvm_pmu_lbr_setup(); - simplify model-specific LBR functionality check; - rename x86_perf_get_lbr_stack to x86_perf_get_lbr; - rename intel_pmu_lbr_confirm() to kvm_pmu_availability_check(); Previous: https://lore.kernel.org/lkml/1565075774-26671-1-git-send-email-wei.w.wang@xxxxxxxxx/ Like Xu (7): perf/x86/lbr: Add interface to get basic information about LBR stack perf/x86: Add constraint to create guest LBR event without hw counter perf/x86: Keep LBR stack unchanged on the host for guest LBR event KVM: x86: Add KVM_CAP_X86_GUEST_LBR interface to dis/enable LBR feature KVM: x86/pmu: Add LBR feature emulation via guest LBR event KVM: x86/pmu: Release guest LBR event via vPMU lazy release mechanism KVM: x86: Expose MSR_IA32_PERF_CAPABILITIES to guest for LBR record format Wei Wang (3): perf/x86: Fix msr variable type for the LBR msrs KVM: x86/pmu: Tweak kvm_pmu_get_msr to pass 'struct msr_data' in KVM: x86: Remove the common trap handler of the MSR_IA32_DEBUGCTLMSR Documentation/virt/kvm/api.rst | 28 +++ arch/x86/events/core.c | 9 +- arch/x86/events/intel/core.c | 29 +++ arch/x86/events/intel/lbr.c | 55 +++++- arch/x86/events/perf_event.h | 21 ++- arch/x86/include/asm/kvm_host.h | 7 + arch/x86/include/asm/perf_event.h | 24 ++- arch/x86/kvm/cpuid.c | 3 +- arch/x86/kvm/pmu.c | 28 ++- arch/x86/kvm/pmu.h | 26 ++- arch/x86/kvm/pmu_amd.c | 7 +- arch/x86/kvm/vmx/pmu_intel.c | 291 ++++++++++++++++++++++++++++-- arch/x86/kvm/vmx/vmx.c | 4 +- arch/x86/kvm/vmx/vmx.h | 2 + arch/x86/kvm/x86.c | 42 +++-- include/linux/perf_event.h | 7 + include/uapi/linux/kvm.h | 1 + kernel/events/core.c | 7 - tools/include/uapi/linux/kvm.h | 1 + 19 files changed, 540 insertions(+), 52 deletions(-)