[kvm-unit-tests PATCH 08/16] x86/pmu: Rename gp_counter_mask_length to arch_event_mask_length
Mi, Dapeng
dapeng1.mi at linux.intel.com
Tue Jun 10 00:22:38 PDT 2025
On 5/30/2025 6:19 AM, Sean Christopherson wrote:
> Rename gp_counter_mask_length to arch_event_mask_length to reflect what
> the field actually tracks. The availablity of architectural events has
> nothing to do with the GP counters themselves.
>
> No functional change intended.
>
> Signed-off-by: Sean Christopherson <seanjc at google.com>
> ---
> lib/x86/pmu.c | 4 ++--
> lib/x86/pmu.h | 2 +-
> x86/pmu.c | 2 +-
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/lib/x86/pmu.c b/lib/x86/pmu.c
> index 599168ac..b97e2c4a 100644
> --- a/lib/x86/pmu.c
> +++ b/lib/x86/pmu.c
> @@ -18,7 +18,7 @@ void pmu_init(void)
>
> pmu.nr_gp_counters = (cpuid_10.a >> 8) & 0xff;
> pmu.gp_counter_width = (cpuid_10.a >> 16) & 0xff;
> - pmu.gp_counter_mask_length = (cpuid_10.a >> 24) & 0xff;
> + pmu.arch_event_mask_length = (cpuid_10.a >> 24) & 0xff;
>
> /* CPUID.0xA.EBX bit is '1' if a counter is NOT available. */
> pmu.arch_event_available = ~cpuid_10.b;
Better to change to "pmu.arch_event_available = ~cpuid_10.b &
(BIT(pmu.arch_event_mask_length) - 1)" to follow SDM. Some newly introduced
architectural events like topdown metrics events doesn't exist on older
platforms.
> @@ -50,7 +50,7 @@ void pmu_init(void)
> pmu.msr_gp_event_select_base = MSR_K7_EVNTSEL0;
> }
> pmu.gp_counter_width = PMC_DEFAULT_WIDTH;
> - pmu.gp_counter_mask_length = pmu.nr_gp_counters;
> + pmu.arch_event_mask_length = pmu.nr_gp_counters;
> pmu.arch_event_available = (1u << pmu.nr_gp_counters) - 1;
>
> if (this_cpu_has_perf_global_status()) {
> diff --git a/lib/x86/pmu.h b/lib/x86/pmu.h
> index d0ad280a..c7dc68c1 100644
> --- a/lib/x86/pmu.h
> +++ b/lib/x86/pmu.h
> @@ -63,7 +63,7 @@ struct pmu_caps {
> u8 fixed_counter_width;
> u8 nr_gp_counters;
> u8 gp_counter_width;
> - u8 gp_counter_mask_length;
> + u8 arch_event_mask_length;
> u32 arch_event_available;
> u32 msr_gp_counter_base;
> u32 msr_gp_event_select_base;
> diff --git a/x86/pmu.c b/x86/pmu.c
> index 0ce34433..63eae3db 100644
> --- a/x86/pmu.c
> +++ b/x86/pmu.c
> @@ -992,7 +992,7 @@ int main(int ac, char **av)
> printf("PMU version: %d\n", pmu.version);
> printf("GP counters: %d\n", pmu.nr_gp_counters);
> printf("GP counter width: %d\n", pmu.gp_counter_width);
> - printf("Mask length: %d\n", pmu.gp_counter_mask_length);
> + printf("Event Mask length: %d\n", pmu.arch_event_mask_length);
> printf("Fixed counters: %d\n", pmu.nr_fixed_counters);
> printf("Fixed counter width: %d\n", pmu.fixed_counter_width);
>
More information about the kvm-riscv
mailing list