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