Re: [PATCH] perf: correct SNOOPX field offset

From: peterz
Date: Tue Sep 01 2020 - 13:22:36 EST


On Tue, Sep 01, 2020 at 12:06:30PM -0300, Arnaldo Carvalho de Melo wrote:

> Also you mixed up tools/ with include/ things, the perf part of the
> kernel is maintained by Ingo, PeterZ.

Right, it helps if the right people are on Cc.

> Peter, the patch is the one below, I'll collect the
> tools/include/uapi/linux/perf_event.h bit as it fixes the tooling,
> please consider taking the kernel part.

Al, can you resend with the right people on Cc? Also see below.

> ---
>
> From: Al Grant <al.grant@xxxxxxxxxxxx>
> Subject: [PATCH] perf: correct SNOOPX field offset
> Message-ID: <9974f2d0-bf7f-518e-d9f7-4520e5ff1bb0@xxxxxxxxxxxx>
> Date: Mon, 24 Aug 2020 10:28:34 +0100
>
> perf_event.h has macros that define the field offsets in the
> data_src bitmask in perf records. The SNOOPX and REMOTE offsets
> were both 37. These are distinct fields, and the bitfield layout
> in perf_mem_data_src confirms that SNOOPX should be at offset 38.
>

This needs a Fixes: tag.

> Signed-off-by: Al Grant <al.grant@xxxxxxx>
>
> ---
>
> include/uapi/linux/perf_event.h | 2 +-
> tools/include/uapi/linux/perf_event.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> ---
>
> diff --git a/include/uapi/linux/perf_event.h
> b/include/uapi/linux/perf_event.h
> index 077e7ee69e3d..3e5dcdd48a49 100644
> --- a/include/uapi/linux/perf_event.h
> +++ b/include/uapi/linux/perf_event.h
> @@ -1196,7 +1196,7 @@ union perf_mem_data_src {
>
> #define PERF_MEM_SNOOPX_FWD 0x01 /* forward */
> /* 1 free */
> -#define PERF_MEM_SNOOPX_SHIFT 37
> +#define PERF_MEM_SNOOPX_SHIFT 38
>
> /* locked instruction */
> #define PERF_MEM_LOCK_NA 0x01 /* not available */
> diff --git a/tools/include/uapi/linux/perf_event.h
> b/tools/include/uapi/linux/perf_event.h
> index 077e7ee69e3d..3e5dcdd48a49 100644
> --- a/tools/include/uapi/linux/perf_event.h
> +++ b/tools/include/uapi/linux/perf_event.h
> @@ -1196,7 +1196,7 @@ union perf_mem_data_src {
>
> #define PERF_MEM_SNOOPX_FWD 0x01 /* forward */
> /* 1 free */
> -#define PERF_MEM_SNOOPX_SHIFT 37
> +#define PERF_MEM_SNOOPX_SHIFT 38
>
> /* locked instruction */
> #define PERF_MEM_LOCK_NA 0x01 /* not available */