perf branch: Add system error and not in transaction branch types
authorAnshuman Khandual <anshuman.khandual@arm.com>
Wed, 24 Aug 2022 04:48:19 +0000 (10:18 +0530)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 4 Oct 2022 11:55:20 +0000 (08:55 -0300)
This updates the perf tool with generic branch type classification with
two new branch types i.e system error (PERF_BR_SERROR) and not in
transaction (PERF_BR_NO_TX) which got updated earlier in the kernel.

This also updates corresponding branch type strings in
branch_type_name().

Committer notes:

At perf tools merge time this is only on PeterZ's tree, at:

  git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git perf/core

So for testing one has to build a kernel with that branch, then test
the tooling side from:

  git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git perf/core

Reviewed-by: James Clark <james.clark@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220824044822.70230-6-anshuman.khandual@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/include/uapi/linux/perf_event.h
tools/perf/util/branch.c

index 581ed4bdc06219ee7c42516ba48b436b8abcf6c8..146c137ff0c13677db371e4929b82bd565c53e6c 100644 (file)
@@ -253,6 +253,8 @@ enum {
        PERF_BR_COND_RET        = 10,   /* conditional function return */
        PERF_BR_ERET            = 11,   /* exception return */
        PERF_BR_IRQ             = 12,   /* irq */
+       PERF_BR_SERROR          = 13,   /* system error */
+       PERF_BR_NO_TX           = 14,   /* not in transaction */
        PERF_BR_MAX,
 };
 
index a9a909db8cc7fd9f6aa37426b53945db32e9721f..abc673347beee1a32854f921e03d284ee76c5c56 100644 (file)
@@ -51,7 +51,9 @@ const char *branch_type_name(int type)
                "COND_CALL",
                "COND_RET",
                "ERET",
-               "IRQ"
+               "IRQ",
+               "SERROR",
+               "NO_TX"
        };
 
        if (type >= 0 && type < PERF_BR_MAX)