Re: [PATCH v4 3/7] perf/x86/amd/core: Detect PerfMonV2 support

From: Sandipan Das
Date: Tue May 10 2022 - 04:37:03 EST


Hi Peter,

On 5/9/2022 6:41 PM, Peter Zijlstra wrote:
> On Mon, May 09, 2022 at 06:38:19PM +0530, Sandipan Das wrote:
>>
>> On 5/9/2022 6:31 PM, Like Xu wrote:
>>> On 27/4/2022 7:31 pm, Sandipan Das wrote:
>>>
>>>>       x86_pmu.num_counters    = AMD64_NUM_COUNTERS_CORE;
>>>
>>> Thus boot_cpu_has(X86_FEATURE_PERFCTR_CORE) is true.
>>>
>>>> +
>>>> +    /* Check for Performance Monitoring v2 support */
>>>> +    if (boot_cpu_has(X86_FEATURE_PERFMON_V2)) {
>>>> +        /* Update PMU version for later usage */
>>>> +        x86_pmu.version = 2;
>>>
>>> Is it safe to assume that once AMD CPU has the PERFMON_V2 (or further) bit,
>>>
>>> it must also have the PERFCTR_CORE bit set ?
>>>
>>
>> Yes, always. There won't be a case where PERFCTR_CORE is absent
>> but PERFMON_V2 is present.
>
> Let me introduce you to this dodgy virt stuff :-) Best put a sanity
> check on it.

I see that amd_core_pmu_init() returns if X86_FEATURE_PERFCTR_CORE is
not found right after entry. Is there anywhere else that you feel should
have an additional sanity check?

I also noticed a bug in the X86_FEATURE_PERFCTR_CORE feature check where
it should have returned something like -ENODEV instead of 0. Will send
out a fix for it.


- Sandipan