OSDN Git Service

KVM: x86/pmu: Drop event_type and rename "struct kvm_event_hw_type_mapping"
authorLike Xu <likexu@tencent.com>
Mon, 5 Dec 2022 12:20:48 +0000 (20:20 +0800)
committerSean Christopherson <seanjc@google.com>
Thu, 26 Jan 2023 22:13:44 +0000 (14:13 -0800)
After commit ("02791a5c362b KVM: x86/pmu: Use PERF_TYPE_RAW
to merge reprogram_{gp,fixed}counter()"), vPMU starts to directly
use the hardware event eventsel and unit_mask to reprogram perf_event,
and the event_type field in the "struct kvm_event_hw_type_mapping"
is simply no longer being used.

Convert the struct into an anonymous struct as the current name is
obsolete as the structure no longer has any mapping semantics, and
placing the struct definition directly above its sole user makes its
easier to understand what the array is filling in.

Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20221205122048.16023-1-likexu@tencent.com
[sean: drop new comment, use anonymous struct]
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/pmu.h
arch/x86/kvm/vmx/pmu_intel.c

index 30bfccc..080a3bb 100644 (file)
 #define VMWARE_BACKDOOR_PMC_REAL_TIME          0x10001
 #define VMWARE_BACKDOOR_PMC_APPARENT_TIME      0x10002
 
-struct kvm_event_hw_type_mapping {
-       u8 eventsel;
-       u8 unit_mask;
-       unsigned event_type;
-};
-
 struct kvm_pmu_ops {
        bool (*hw_event_available)(struct kvm_pmc *pmc);
        bool (*pmc_is_enabled)(struct kvm_pmc *pmc);
index 7980fda..ef24d25 100644 (file)
 
 #define MSR_PMC_FULL_WIDTH_BIT      (MSR_IA32_PMC0 - MSR_IA32_PERFCTR0)
 
-static struct kvm_event_hw_type_mapping intel_arch_events[] = {
-       [0] = { 0x3c, 0x00, PERF_COUNT_HW_CPU_CYCLES },
-       [1] = { 0xc0, 0x00, PERF_COUNT_HW_INSTRUCTIONS },
-       [2] = { 0x3c, 0x01, PERF_COUNT_HW_BUS_CYCLES  },
-       [3] = { 0x2e, 0x4f, PERF_COUNT_HW_CACHE_REFERENCES },
-       [4] = { 0x2e, 0x41, PERF_COUNT_HW_CACHE_MISSES },
-       [5] = { 0xc4, 0x00, PERF_COUNT_HW_BRANCH_INSTRUCTIONS },
-       [6] = { 0xc5, 0x00, PERF_COUNT_HW_BRANCH_MISSES },
+static struct {
+       u8 eventsel;
+       u8 unit_mask;
+} const intel_arch_events[] = {
+       [0] = { 0x3c, 0x00 },
+       [1] = { 0xc0, 0x00 },
+       [2] = { 0x3c, 0x01 },
+       [3] = { 0x2e, 0x4f },
+       [4] = { 0x2e, 0x41 },
+       [5] = { 0xc4, 0x00 },
+       [6] = { 0xc5, 0x00 },
        /* The above index must match CPUID 0x0A.EBX bit vector */
-       [7] = { 0x00, 0x03, PERF_COUNT_HW_REF_CPU_CYCLES },
+       [7] = { 0x00, 0x03 },
 };
 
 /* mapping between fixed pmc index and intel_arch_events array */