Re: [PATCH v5 1/2] perf tools: Sync perf_event_attr::config3 addition

From: Arnaldo Carvalho de Melo
Date: Sat Feb 18 2023 - 08:22:21 EST


Em Fri, Feb 17, 2023 at 04:32:10PM -0600, Rob Herring escreveu:
> Arm SPEv1.2 adds another 64-bits of event filtering control. As the
> existing perf_event_attr::configN fields are all used up for SPE PMU, an
> additional field is needed. Add a new 'config3' field.
>
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> ---
> This matches commit 09519ec3b19e ("perf: Add perf_event_attr::config3")
> for the kernel queued in linux-next.

When you mention linux-next where was it that it picked this from?

For me to get this merged into the perf tools "next" (perf/core) it must
already have been merged in the kernel counterpart (tip/perf/core).

Ok so it is not in tip/perf/core, but got in next yesterday, and PeterZ
acked it, good, will process it soon.

- Arnaldo

⬢[acme@toolbox perf]$ git show 09519ec3b19e
commit 09519ec3b19e4144b5f6e269c54fbb9c294a9fcb
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Mon Jan 9 13:26:23 2023 -0600

perf: Add perf_event_attr::config3

Arm SPEv1.2 adds another 64-bits of event filtering control. As the
existing perf_event_attr::configN fields are all used up for SPE PMU, an
additional field is needed. Add a new 'config3' field.

Tested-by: James Clark <james.clark@xxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20220825-arm-spe-v8-7-v4-7-327f860daf28@xxxxxxxxxx
Signed-off-by: Will Deacon <will@xxxxxxxxxx>

diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index ccb7f5dad59be96b..37675437b76860ae 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -374,6 +374,7 @@ enum perf_event_read_format {
#define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */
#define PERF_ATTR_SIZE_VER6 120 /* add: aux_sample_size */
#define PERF_ATTR_SIZE_VER7 128 /* add: sig_data */
+#define PERF_ATTR_SIZE_VER8 136 /* add: config3 */

/*
* Hardware event_id to monitor via a performance monitoring event:
@@ -515,6 +516,8 @@ struct perf_event_attr {
* truncated accordingly on 32 bit architectures.
*/
__u64 sig_data;
+
+ __u64 config3; /* extension of config2 */
};

/*
⬢[acme@toolbox perf]$
⬢[acme@toolbox perf]$
⬢[acme@toolbox perf]$
⬢[acme@toolbox perf]$
⬢[acme@toolbox perf]$ git tag --contains 09519ec3b19e4144b5f6e269c54fbb9c294a9fcb
next-20230217
⬢[acme@toolbox perf]$


> ---
> tools/include/uapi/linux/perf_event.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
> index ea6defacc1a7..a38814ce9485 100644
> --- a/tools/include/uapi/linux/perf_event.h
> +++ b/tools/include/uapi/linux/perf_event.h
> @@ -365,6 +365,7 @@ enum perf_event_read_format {
> #define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */
> #define PERF_ATTR_SIZE_VER6 120 /* add: aux_sample_size */
> #define PERF_ATTR_SIZE_VER7 128 /* add: sig_data */
> +#define PERF_ATTR_SIZE_VER8 136 /* add: config3 */
>
> /*
> * Hardware event_id to monitor via a performance monitoring event:
> @@ -506,6 +507,8 @@ struct perf_event_attr {
> * truncated accordingly on 32 bit architectures.
> */
> __u64 sig_data;
> +
> + __u64 config3; /* extension of config2 */
> };
>
> /*
>
> --
> 2.39.1
>