Re: [PATCH] perf: Fix interpretation of branch records

From: Sandipan Das
Date: Thu Dec 01 2022 - 04:04:10 EST


On 11/30/2022 10:21 PM, James Clark wrote:
> Commit 93315e46b000 ("perf/core: Add speculation info to branch
> entries") added a new field in between type and new_type. Perf has
> its own copy of this struct so update it to match the kernel side.
>
> This doesn't currently cause any issues because new_type is only used
> by the Arm BRBE driver which isn't merged yet.
>
> Fixes: 93315e46b000 ("perf/core: Add speculation info to branch entries")

Technically, in the kernel sources, commit 93315e46b000 ("perf/core: Add
speculation info to branch entries") landed before commit b190bc4ac9e6
("perf: Extend branch type classification").

So I think the Fixes tag should instead have commit 0ddea8e2a0c2
("perf branch: Extend branch type classification") which added the
UAPI changes to the perf tool headers.

Aside from that, the patch looks good to me.

> Signed-off-by: James Clark <james.clark@xxxxxxx>
> ---
> tools/perf/util/branch.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/branch.h b/tools/perf/util/branch.h
> index d6017c9b1872..3ed792db1125 100644
> --- a/tools/perf/util/branch.h
> +++ b/tools/perf/util/branch.h
> @@ -22,9 +22,10 @@ struct branch_flags {
> u64 abort:1;
> u64 cycles:16;
> u64 type:4;
> + u64 spec:2;
> u64 new_type:4;
> u64 priv:3;
> - u64 reserved:33;
> + u64 reserved:31;
> };
> };
> };