Hi, The first one (patch 01) is to fix my childish code about the disallowed fixed ctr3. The second one (patch 02) is to fix the aged inconsistent behaviour about CPUID 0AH.EBX. The third one (patch 03/04) is to avoid perf_event creation for unavailable Intel CPUID events. Finally a new way is proposed to fix amd_event_mapping[] for new AMD platforms. Please check each commit message for more details and let me know if there is any room for improvement, Thanks. Like Xu (7): KVM: x86/pmu: Make top-down.slots event unavailable in supported leaf KVM: x86/pmu: Fix available_event_types check for REF_CPU_CYCLES event KVM: x86/pmu: Pass "struct kvm_pmu *" to the find_fixed_event() KVM: x86/pmu: Avoid perf_event creation for invalid counter config KVM: x86/pmu: Refactor pmu->available_event_types field using BITMAP perf: x86/core: Add interface to query perfmon_event_map[] directly KVM: x86/pmu: Setup the {inte|amd}_event_mapping[] when hardware_setup arch/x86/events/core.c | 9 +++ arch/x86/include/asm/kvm_host.h | 2 +- arch/x86/include/asm/perf_event.h | 5 ++ arch/x86/kvm/cpuid.c | 14 ++++ arch/x86/kvm/pmu.c | 35 +++++++++- arch/x86/kvm/pmu.h | 4 +- arch/x86/kvm/svm/pmu.c | 24 ++----- arch/x86/kvm/vmx/pmu_intel.c | 106 +++++++++++++++++++++++------- arch/x86/kvm/x86.c | 1 + 9 files changed, 153 insertions(+), 47 deletions(-) -- 2.33.0