diff mbox series

[4/4] perf: Remove unused PERF_PMU_CAP_HETEROGENEOUS_CPUS capability

Message ID 20230710122138.1450930-5-james.clark@arm.com (mailing list archive)
State New, archived
Headers show
Series arm_pmu: Add PERF_PMU_CAP_EXTENDED_HW_TYPE capability | expand

Commit Message

James Clark July 10, 2023, 12:21 p.m. UTC
Since commit bd2756811766 ("perf: Rewrite core context handling") the
relationship between perf_event_context and PMUs has changed so that
the error scenario that PERF_PMU_CAP_HETEROGENEOUS_CPUS originally
silenced no longer exists.

Remove the capability to avoid confusion that it actually influences
any perf core behavior. This change should be a no-op.

Signed-off-by: James Clark <james.clark@arm.com>
---
 include/linux/perf_event.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ian Rogers July 10, 2023, 4:09 p.m. UTC | #1
On Mon, Jul 10, 2023 at 5:22 AM James Clark <james.clark@arm.com> wrote:
>
> Since commit bd2756811766 ("perf: Rewrite core context handling") the
> relationship between perf_event_context and PMUs has changed so that
> the error scenario that PERF_PMU_CAP_HETEROGENEOUS_CPUS originally
> silenced no longer exists.
>
> Remove the capability to avoid confusion that it actually influences
> any perf core behavior. This change should be a no-op.
>
> Signed-off-by: James Clark <james.clark@arm.com>

Acked-by: Ian Rogers <irogers@google.com>

Thanks,
Ian

> ---
>  include/linux/perf_event.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> index d5628a7b5eaa..3f4d941fd6c5 100644
> --- a/include/linux/perf_event.h
> +++ b/include/linux/perf_event.h
> @@ -288,7 +288,7 @@ struct perf_event_pmu_context;
>  #define PERF_PMU_CAP_EXTENDED_REGS             0x0008
>  #define PERF_PMU_CAP_EXCLUSIVE                 0x0010
>  #define PERF_PMU_CAP_ITRACE                    0x0020
> -#define PERF_PMU_CAP_HETEROGENEOUS_CPUS                0x0040
> +/* Unused                                      0x0040 */
>  #define PERF_PMU_CAP_NO_EXCLUDE                        0x0080
>  #define PERF_PMU_CAP_AUX_OUTPUT                        0x0100
>  #define PERF_PMU_CAP_EXTENDED_HW_TYPE          0x0200
> --
> 2.34.1
>
Anshuman Khandual July 11, 2023, 12:10 p.m. UTC | #2
On 7/10/23 17:51, James Clark wrote:
> Since commit bd2756811766 ("perf: Rewrite core context handling") the
> relationship between perf_event_context and PMUs has changed so that
> the error scenario that PERF_PMU_CAP_HETEROGENEOUS_CPUS originally
> silenced no longer exists.
> 
> Remove the capability to avoid confusion that it actually influences
> any perf core behavior. This change should be a no-op.
> 
> Signed-off-by: James Clark <james.clark@arm.com>
> ---
>  include/linux/perf_event.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> index d5628a7b5eaa..3f4d941fd6c5 100644
> --- a/include/linux/perf_event.h
> +++ b/include/linux/perf_event.h
> @@ -288,7 +288,7 @@ struct perf_event_pmu_context;
>  #define PERF_PMU_CAP_EXTENDED_REGS		0x0008
>  #define PERF_PMU_CAP_EXCLUSIVE			0x0010
>  #define PERF_PMU_CAP_ITRACE			0x0020
> -#define PERF_PMU_CAP_HETEROGENEOUS_CPUS		0x0040
> +/* Unused					0x0040 */

Small nit, "Unused" marking might not be required here.

>  #define PERF_PMU_CAP_NO_EXCLUDE			0x0080
>  #define PERF_PMU_CAP_AUX_OUTPUT			0x0100
>  #define PERF_PMU_CAP_EXTENDED_HW_TYPE		0x0200
James Clark July 11, 2023, 2:15 p.m. UTC | #3
On 11/07/2023 13:10, Anshuman Khandual wrote:
> 
> 
> On 7/10/23 17:51, James Clark wrote:
>> Since commit bd2756811766 ("perf: Rewrite core context handling") the
>> relationship between perf_event_context and PMUs has changed so that
>> the error scenario that PERF_PMU_CAP_HETEROGENEOUS_CPUS originally
>> silenced no longer exists.
>>
>> Remove the capability to avoid confusion that it actually influences
>> any perf core behavior. This change should be a no-op.
>>
>> Signed-off-by: James Clark <james.clark@arm.com>
>> ---
>>  include/linux/perf_event.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
>> index d5628a7b5eaa..3f4d941fd6c5 100644
>> --- a/include/linux/perf_event.h
>> +++ b/include/linux/perf_event.h
>> @@ -288,7 +288,7 @@ struct perf_event_pmu_context;
>>  #define PERF_PMU_CAP_EXTENDED_REGS		0x0008
>>  #define PERF_PMU_CAP_EXCLUSIVE			0x0010
>>  #define PERF_PMU_CAP_ITRACE			0x0020
>> -#define PERF_PMU_CAP_HETEROGENEOUS_CPUS		0x0040
>> +/* Unused					0x0040 */
> 
> Small nit, "Unused" marking might not be required here.
> 

But then it would be very easy to miss that there is a free bit if I
don't leave the comment. Is it really better without it?

I could shift all the following ones down by one bit, but it would be a
lot of work to make sure that nobody has hard coded some check for one
of the bits instead of using the define somewhere.

>>  #define PERF_PMU_CAP_NO_EXCLUDE			0x0080
>>  #define PERF_PMU_CAP_AUX_OUTPUT			0x0100
>>  #define PERF_PMU_CAP_EXTENDED_HW_TYPE		0x0200
Anshuman Khandual July 13, 2023, 7:30 a.m. UTC | #4
On 7/11/23 19:45, James Clark wrote:
> 
> 
> On 11/07/2023 13:10, Anshuman Khandual wrote:
>>
>>
>> On 7/10/23 17:51, James Clark wrote:
>>> Since commit bd2756811766 ("perf: Rewrite core context handling") the
>>> relationship between perf_event_context and PMUs has changed so that
>>> the error scenario that PERF_PMU_CAP_HETEROGENEOUS_CPUS originally
>>> silenced no longer exists.
>>>
>>> Remove the capability to avoid confusion that it actually influences
>>> any perf core behavior. This change should be a no-op.
>>>
>>> Signed-off-by: James Clark <james.clark@arm.com>
>>> ---
>>>  include/linux/perf_event.h | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
>>> index d5628a7b5eaa..3f4d941fd6c5 100644
>>> --- a/include/linux/perf_event.h
>>> +++ b/include/linux/perf_event.h
>>> @@ -288,7 +288,7 @@ struct perf_event_pmu_context;
>>>  #define PERF_PMU_CAP_EXTENDED_REGS		0x0008
>>>  #define PERF_PMU_CAP_EXCLUSIVE			0x0010
>>>  #define PERF_PMU_CAP_ITRACE			0x0020
>>> -#define PERF_PMU_CAP_HETEROGENEOUS_CPUS		0x0040
>>> +/* Unused					0x0040 */
>>
>> Small nit, "Unused" marking might not be required here.
>>
> 
> But then it would be very easy to miss that there is a free bit if I
> don't leave the comment. Is it really better without it?
> 
> I could shift all the following ones down by one bit, but it would be a

Sounds as a better option IMHO.

> lot of work to make sure that nobody has hard coded some check for one
> of the bits instead of using the define somewhere.

These are not user visible ABI and hence defined in include/linux/perf_event.h
to be used by drivers registering a PMU for capability enumeration. I am just
wondering why they might have been hard coded any where ?

> 
>>>  #define PERF_PMU_CAP_NO_EXCLUDE			0x0080
>>>  #define PERF_PMU_CAP_AUX_OUTPUT			0x0100
>>>  #define PERF_PMU_CAP_EXTENDED_HW_TYPE		0x0200
James Clark July 13, 2023, 9:15 a.m. UTC | #5
On 13/07/2023 08:30, Anshuman Khandual wrote:
> 
> 
> On 7/11/23 19:45, James Clark wrote:
>>
>>
>> On 11/07/2023 13:10, Anshuman Khandual wrote:
>>>
>>>
>>> On 7/10/23 17:51, James Clark wrote:
>>>> Since commit bd2756811766 ("perf: Rewrite core context handling") the
>>>> relationship between perf_event_context and PMUs has changed so that
>>>> the error scenario that PERF_PMU_CAP_HETEROGENEOUS_CPUS originally
>>>> silenced no longer exists.
>>>>
>>>> Remove the capability to avoid confusion that it actually influences
>>>> any perf core behavior. This change should be a no-op.
>>>>
>>>> Signed-off-by: James Clark <james.clark@arm.com>
>>>> ---
>>>>  include/linux/perf_event.h | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
>>>> index d5628a7b5eaa..3f4d941fd6c5 100644
>>>> --- a/include/linux/perf_event.h
>>>> +++ b/include/linux/perf_event.h
>>>> @@ -288,7 +288,7 @@ struct perf_event_pmu_context;
>>>>  #define PERF_PMU_CAP_EXTENDED_REGS		0x0008
>>>>  #define PERF_PMU_CAP_EXCLUSIVE			0x0010
>>>>  #define PERF_PMU_CAP_ITRACE			0x0020
>>>> -#define PERF_PMU_CAP_HETEROGENEOUS_CPUS		0x0040
>>>> +/* Unused					0x0040 */
>>>
>>> Small nit, "Unused" marking might not be required here.
>>>
>>
>> But then it would be very easy to miss that there is a free bit if I
>> don't leave the comment. Is it really better without it?
>>
>> I could shift all the following ones down by one bit, but it would be a
> 
> Sounds as a better option IMHO.
> 
>> lot of work to make sure that nobody has hard coded some check for one
>> of the bits instead of using the define somewhere.
> 
> These are not user visible ABI and hence defined in include/linux/perf_event.h
> to be used by drivers registering a PMU for capability enumeration. I am just
> wondering why they might have been hard coded any where ?
> 

You never know, I've seen worse! I suppose we'll find out if I change it
and anything breaks. It will probably be fine though, I'll make the
change on the next version.

>>
>>>>  #define PERF_PMU_CAP_NO_EXCLUDE			0x0080
>>>>  #define PERF_PMU_CAP_AUX_OUTPUT			0x0100
>>>>  #define PERF_PMU_CAP_EXTENDED_HW_TYPE		0x0200
diff mbox series

Patch

diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index d5628a7b5eaa..3f4d941fd6c5 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -288,7 +288,7 @@  struct perf_event_pmu_context;
 #define PERF_PMU_CAP_EXTENDED_REGS		0x0008
 #define PERF_PMU_CAP_EXCLUSIVE			0x0010
 #define PERF_PMU_CAP_ITRACE			0x0020
-#define PERF_PMU_CAP_HETEROGENEOUS_CPUS		0x0040
+/* Unused					0x0040 */
 #define PERF_PMU_CAP_NO_EXCLUDE			0x0080
 #define PERF_PMU_CAP_AUX_OUTPUT			0x0100
 #define PERF_PMU_CAP_EXTENDED_HW_TYPE		0x0200