From: Arnaldo Carvalho de Melo <acme@kernel.org> To: Anshuman Khandual <anshuman.khandual@arm.com> Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, peterz@infradead.org, alexander.shishkin@linux.intel.com, jolsa@redhat.com, mark.rutland@arm.com, Robin Murphy <robin.murphy@arm.com>, Suzuki Poulose <suzuki.poulose@arm.com>, James Clark <james.clark@arm.com>, Ingo Molnar <mingo@redhat.com>, Namhyung Kim <namhyung@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Will Deacon <will@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH V7 6/8] perf/tools: Extend branch type classification Date: Fri, 2 Sep 2022 14:31:34 -0300 [thread overview] Message-ID: <YxI99uLvpgAZjm2r@kernel.org> (raw) In-Reply-To: <9b1a8ebd-0562-f104-7439-308282f7fb52@arm.com> Em Thu, Sep 01, 2022 at 10:37:24AM +0530, Anshuman Khandual escreveu: > > > On 8/31/22 02:41, Arnaldo Carvalho de Melo wrote: > > Em Wed, Aug 24, 2022 at 10:18:20AM +0530, Anshuman Khandual escreveu: > >> This updates the perf tool with generic branch type classification with new > >> ABI extender place holder i.e PERF_BR_EXTEND_ABI, the new 4 bit branch type > >> field i.e perf_branch_entry.new_type, new generic page fault related branch > >> types and some arch specific branch types as added earlier in the kernel. > >> > >> Cc: Peter Zijlstra <peterz@infradead.org> > >> Cc: Ingo Molnar <mingo@redhat.com> > >> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> > >> Cc: Mark Rutland <mark.rutland@arm.com> > >> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > >> Cc: Jiri Olsa <jolsa@redhat.com> > >> Cc: Namhyung Kim <namhyung@kernel.org> > >> Cc: Thomas Gleixner <tglx@linutronix.de> > >> Cc: Will Deacon <will@kernel.org> > >> Cc: linux-arm-kernel@lists.infradead.org > >> Cc: linux-perf-users@vger.kernel.org > >> Cc: linux-kernel@vger.kernel.org > >> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > >> --- > >> tools/include/uapi/linux/perf_event.h | 16 ++++++++- > >> tools/perf/builtin-script.c | 2 +- > >> tools/perf/util/branch.c | 52 ++++++++++++++++++++++++++- > >> tools/perf/util/branch.h | 6 +++- > >> tools/perf/util/session.c | 2 +- > >> 5 files changed, 73 insertions(+), 5 deletions(-) > >> > >> diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h > >> index 146c137ff0c1..0f7c7ce29899 100644 > >> --- a/tools/include/uapi/linux/perf_event.h > >> +++ b/tools/include/uapi/linux/perf_event.h > >> @@ -255,9 +255,22 @@ enum { > >> PERF_BR_IRQ = 12, /* irq */ > >> PERF_BR_SERROR = 13, /* system error */ > >> PERF_BR_NO_TX = 14, /* not in transaction */ > >> + PERF_BR_EXTEND_ABI = 15, /* extend ABI */ > >> PERF_BR_MAX, > >> }; > >> > >> +enum { > >> + PERF_BR_NEW_FAULT_ALGN = 0, /* Alignment fault */ > >> + PERF_BR_NEW_FAULT_DATA = 1, /* Data fault */ > >> + PERF_BR_NEW_FAULT_INST = 2, /* Inst fault */ > >> + PERF_BR_NEW_ARCH_1 = 3, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_2 = 4, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_3 = 5, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_4 = 6, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_5 = 7, /* Architecture specific */ > >> + PERF_BR_NEW_MAX, > >> +}; > >> + > >> #define PERF_SAMPLE_BRANCH_PLM_ALL \ > >> (PERF_SAMPLE_BRANCH_USER|\ > >> PERF_SAMPLE_BRANCH_KERNEL|\ > >> @@ -1375,7 +1388,8 @@ struct perf_branch_entry { > >> abort:1, /* transaction abort */ > >> cycles:16, /* cycle count to last branch */ > >> type:4, /* branch type */ > >> - reserved:40; > >> + new_type:4, /* additional branch type */ > >> + reserved:36; > >> }; > >> > >> union perf_sample_weight { > >> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c > >> index 13580a9c50b8..585171479876 100644 > >> --- a/tools/perf/builtin-script.c > >> +++ b/tools/perf/builtin-script.c > >> @@ -877,7 +877,7 @@ static int print_bstack_flags(FILE *fp, struct branch_entry *br) > >> br->flags.in_tx ? 'X' : '-', > >> br->flags.abort ? 'A' : '-', > >> br->flags.cycles, > >> - br->flags.type ? branch_type_name(br->flags.type) : "-"); > >> + get_branch_type(br)); > >> } > >> > >> static int perf_sample__fprintf_brstack(struct perf_sample *sample, > >> diff --git a/tools/perf/util/branch.c b/tools/perf/util/branch.c > >> index abc673347bee..6d962b0a4532 100644 > >> --- a/tools/perf/util/branch.c > >> +++ b/tools/perf/util/branch.c > >> @@ -21,7 +21,10 @@ void branch_type_count(struct branch_type_stat *st, struct branch_flags *flags, > >> if (flags->type == PERF_BR_UNKNOWN || from == 0) > >> return; > >> > >> - st->counts[flags->type]++; > >> + if (flags->type == PERF_BR_EXTEND_ABI) > >> + st->new_counts[flags->new_type]++; > >> + else > >> + st->counts[flags->type]++; > >> > >> if (flags->type == PERF_BR_COND) { > >> if (to > from) > >> @@ -36,6 +39,25 @@ void branch_type_count(struct branch_type_stat *st, struct branch_flags *flags, > >> st->cross_4k++; > >> } > >> > >> +const char *branch_new_type_name(int new_type) > >> +{ > >> + const char *branch_new_names[PERF_BR_NEW_MAX] = { > >> + "FAULT_ALGN", > >> + "FAULT_DATA", > >> + "FAULT_INST", > >> + "ARCH_1", > >> + "ARCH_2", > >> + "ARCH_3", > >> + "ARCH_4", > >> + "ARCH_5" > >> + }; > >> + > >> + if (new_type >= 0 && new_type < PERF_BR_NEW_MAX) > >> + return branch_new_names[new_type]; > >> + > >> + return NULL; > >> +} > >> + > >> const char *branch_type_name(int type) > >> { > >> const char *branch_names[PERF_BR_MAX] = { > >> @@ -62,6 +84,17 @@ const char *branch_type_name(int type) > >> return NULL; > >> } > >> > >> +const char *get_branch_type(struct branch_entry *e) > >> +{ > >> + if (e->flags.type == PERF_BR_UNKNOWN) > >> + return ""; > >> + > >> + if (e->flags.type == PERF_BR_EXTEND_ABI) > >> + return branch_new_type_name(e->flags.new_type); > >> + > >> + return branch_type_name(e->flags.type); > >> +} > >> + > >> void branch_type_stat_display(FILE *fp, struct branch_type_stat *st) > >> { > >> u64 total = 0; > >> @@ -108,6 +141,15 @@ void branch_type_stat_display(FILE *fp, struct branch_type_stat *st) > >> 100.0 * > >> (double)st->counts[i] / (double)total); > >> } > >> + > >> + for (i = 0; i < PERF_BR_NEW_MAX; i++) { > >> + if (st->new_counts[i] > 0) > >> + fprintf(fp, "\n%8s: %5.1f%%", > >> + branch_new_type_name(i), > >> + 100.0 * > >> + (double)st->new_counts[i] / (double)total); > >> + } > >> + > > Strange: > > > > 75 8.89 ubuntu:20.04-x-powerpc64el : FAIL gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.04) > > inlined from 'branch_type_stat_display' at util/branch.c:152:4: > > /usr/powerpc64le-linux-gnu/include/bits/stdio2.h:100:10: error: '%8s' directive argument is null [-Werror=format-overflow=] > > 100 | return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 101 | __va_arg_pack ()); > > | ~~~~~~~~~~~~~~~~~ > > > > Indeed. But this new code block here looks exact same like the previous and existing one > i.e with branch_new_name() and PERF_BR_NEW_MAX. The complain is that - '%8s' directive > argument is NULL. This warning might just be a false positive [1], because of a compiler > problem on powerpc64el ? But please do let me know if something needs to be changed here > to avoid this warning. > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90036 > So, I tried not returning NULL in the functions that are ultimately called, but that didn't help, so I'll try just disabling that specific warning for this specific file. The patch that didn't help is below. - Arnaldo commit 07c96060c410db6d10dbbdffb22bb46afebfe2c0 Author: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Wed Aug 31 13:26:22 2022 -0300 perf branch: Don't return NULL on function that is used in a %s printf format To address this warning: In file included from /usr/include/stdio.h:866, from /home/sfr/next/next/tools/perf/util/branch.h:9, from util/branch.c:2: In function 'fprintf', inlined from 'branch_type_stat_display' at util/branch.c:152:4: /usr/include/powerpc64le-linux-gnu/bits/stdio2.h:105:10: error: '%8s' directive argument is null [-Werror=format-overflow=] 105 | return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 106 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors Fixes: 9781e500dcb87eeb ("perf branch: Extend branch type classification") Cc: Anshuman Khandual <anshuman.khandual@arm.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> diff --git a/tools/perf/util/branch.c b/tools/perf/util/branch.c index d40776c44b060b7e..f30366999f01e5e7 100644 --- a/tools/perf/util/branch.c +++ b/tools/perf/util/branch.c @@ -68,7 +68,7 @@ const char *branch_new_type_name(int new_type) if (new_type >= 0 && new_type < PERF_BR_NEW_MAX) return branch_new_names[new_type]; - return NULL; + return "<<INVALID>>"; } const char *branch_type_name(int type) @@ -94,7 +94,7 @@ const char *branch_type_name(int type) if (type >= 0 && type < PERF_BR_MAX) return branch_names[type]; - return NULL; + return "<<INVALID>>"; } const char *get_branch_type(struct branch_entry *e)
WARNING: multiple messages have this Message-ID (diff)
From: Arnaldo Carvalho de Melo <acme@kernel.org> To: Anshuman Khandual <anshuman.khandual@arm.com> Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, peterz@infradead.org, alexander.shishkin@linux.intel.com, jolsa@redhat.com, mark.rutland@arm.com, Robin Murphy <robin.murphy@arm.com>, Suzuki Poulose <suzuki.poulose@arm.com>, James Clark <james.clark@arm.com>, Ingo Molnar <mingo@redhat.com>, Namhyung Kim <namhyung@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Will Deacon <will@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH V7 6/8] perf/tools: Extend branch type classification Date: Fri, 2 Sep 2022 14:31:34 -0300 [thread overview] Message-ID: <YxI99uLvpgAZjm2r@kernel.org> (raw) In-Reply-To: <9b1a8ebd-0562-f104-7439-308282f7fb52@arm.com> Em Thu, Sep 01, 2022 at 10:37:24AM +0530, Anshuman Khandual escreveu: > > > On 8/31/22 02:41, Arnaldo Carvalho de Melo wrote: > > Em Wed, Aug 24, 2022 at 10:18:20AM +0530, Anshuman Khandual escreveu: > >> This updates the perf tool with generic branch type classification with new > >> ABI extender place holder i.e PERF_BR_EXTEND_ABI, the new 4 bit branch type > >> field i.e perf_branch_entry.new_type, new generic page fault related branch > >> types and some arch specific branch types as added earlier in the kernel. > >> > >> Cc: Peter Zijlstra <peterz@infradead.org> > >> Cc: Ingo Molnar <mingo@redhat.com> > >> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> > >> Cc: Mark Rutland <mark.rutland@arm.com> > >> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > >> Cc: Jiri Olsa <jolsa@redhat.com> > >> Cc: Namhyung Kim <namhyung@kernel.org> > >> Cc: Thomas Gleixner <tglx@linutronix.de> > >> Cc: Will Deacon <will@kernel.org> > >> Cc: linux-arm-kernel@lists.infradead.org > >> Cc: linux-perf-users@vger.kernel.org > >> Cc: linux-kernel@vger.kernel.org > >> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > >> --- > >> tools/include/uapi/linux/perf_event.h | 16 ++++++++- > >> tools/perf/builtin-script.c | 2 +- > >> tools/perf/util/branch.c | 52 ++++++++++++++++++++++++++- > >> tools/perf/util/branch.h | 6 +++- > >> tools/perf/util/session.c | 2 +- > >> 5 files changed, 73 insertions(+), 5 deletions(-) > >> > >> diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h > >> index 146c137ff0c1..0f7c7ce29899 100644 > >> --- a/tools/include/uapi/linux/perf_event.h > >> +++ b/tools/include/uapi/linux/perf_event.h > >> @@ -255,9 +255,22 @@ enum { > >> PERF_BR_IRQ = 12, /* irq */ > >> PERF_BR_SERROR = 13, /* system error */ > >> PERF_BR_NO_TX = 14, /* not in transaction */ > >> + PERF_BR_EXTEND_ABI = 15, /* extend ABI */ > >> PERF_BR_MAX, > >> }; > >> > >> +enum { > >> + PERF_BR_NEW_FAULT_ALGN = 0, /* Alignment fault */ > >> + PERF_BR_NEW_FAULT_DATA = 1, /* Data fault */ > >> + PERF_BR_NEW_FAULT_INST = 2, /* Inst fault */ > >> + PERF_BR_NEW_ARCH_1 = 3, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_2 = 4, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_3 = 5, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_4 = 6, /* Architecture specific */ > >> + PERF_BR_NEW_ARCH_5 = 7, /* Architecture specific */ > >> + PERF_BR_NEW_MAX, > >> +}; > >> + > >> #define PERF_SAMPLE_BRANCH_PLM_ALL \ > >> (PERF_SAMPLE_BRANCH_USER|\ > >> PERF_SAMPLE_BRANCH_KERNEL|\ > >> @@ -1375,7 +1388,8 @@ struct perf_branch_entry { > >> abort:1, /* transaction abort */ > >> cycles:16, /* cycle count to last branch */ > >> type:4, /* branch type */ > >> - reserved:40; > >> + new_type:4, /* additional branch type */ > >> + reserved:36; > >> }; > >> > >> union perf_sample_weight { > >> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c > >> index 13580a9c50b8..585171479876 100644 > >> --- a/tools/perf/builtin-script.c > >> +++ b/tools/perf/builtin-script.c > >> @@ -877,7 +877,7 @@ static int print_bstack_flags(FILE *fp, struct branch_entry *br) > >> br->flags.in_tx ? 'X' : '-', > >> br->flags.abort ? 'A' : '-', > >> br->flags.cycles, > >> - br->flags.type ? branch_type_name(br->flags.type) : "-"); > >> + get_branch_type(br)); > >> } > >> > >> static int perf_sample__fprintf_brstack(struct perf_sample *sample, > >> diff --git a/tools/perf/util/branch.c b/tools/perf/util/branch.c > >> index abc673347bee..6d962b0a4532 100644 > >> --- a/tools/perf/util/branch.c > >> +++ b/tools/perf/util/branch.c > >> @@ -21,7 +21,10 @@ void branch_type_count(struct branch_type_stat *st, struct branch_flags *flags, > >> if (flags->type == PERF_BR_UNKNOWN || from == 0) > >> return; > >> > >> - st->counts[flags->type]++; > >> + if (flags->type == PERF_BR_EXTEND_ABI) > >> + st->new_counts[flags->new_type]++; > >> + else > >> + st->counts[flags->type]++; > >> > >> if (flags->type == PERF_BR_COND) { > >> if (to > from) > >> @@ -36,6 +39,25 @@ void branch_type_count(struct branch_type_stat *st, struct branch_flags *flags, > >> st->cross_4k++; > >> } > >> > >> +const char *branch_new_type_name(int new_type) > >> +{ > >> + const char *branch_new_names[PERF_BR_NEW_MAX] = { > >> + "FAULT_ALGN", > >> + "FAULT_DATA", > >> + "FAULT_INST", > >> + "ARCH_1", > >> + "ARCH_2", > >> + "ARCH_3", > >> + "ARCH_4", > >> + "ARCH_5" > >> + }; > >> + > >> + if (new_type >= 0 && new_type < PERF_BR_NEW_MAX) > >> + return branch_new_names[new_type]; > >> + > >> + return NULL; > >> +} > >> + > >> const char *branch_type_name(int type) > >> { > >> const char *branch_names[PERF_BR_MAX] = { > >> @@ -62,6 +84,17 @@ const char *branch_type_name(int type) > >> return NULL; > >> } > >> > >> +const char *get_branch_type(struct branch_entry *e) > >> +{ > >> + if (e->flags.type == PERF_BR_UNKNOWN) > >> + return ""; > >> + > >> + if (e->flags.type == PERF_BR_EXTEND_ABI) > >> + return branch_new_type_name(e->flags.new_type); > >> + > >> + return branch_type_name(e->flags.type); > >> +} > >> + > >> void branch_type_stat_display(FILE *fp, struct branch_type_stat *st) > >> { > >> u64 total = 0; > >> @@ -108,6 +141,15 @@ void branch_type_stat_display(FILE *fp, struct branch_type_stat *st) > >> 100.0 * > >> (double)st->counts[i] / (double)total); > >> } > >> + > >> + for (i = 0; i < PERF_BR_NEW_MAX; i++) { > >> + if (st->new_counts[i] > 0) > >> + fprintf(fp, "\n%8s: %5.1f%%", > >> + branch_new_type_name(i), > >> + 100.0 * > >> + (double)st->new_counts[i] / (double)total); > >> + } > >> + > > Strange: > > > > 75 8.89 ubuntu:20.04-x-powerpc64el : FAIL gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.04) > > inlined from 'branch_type_stat_display' at util/branch.c:152:4: > > /usr/powerpc64le-linux-gnu/include/bits/stdio2.h:100:10: error: '%8s' directive argument is null [-Werror=format-overflow=] > > 100 | return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > 101 | __va_arg_pack ()); > > | ~~~~~~~~~~~~~~~~~ > > > > Indeed. But this new code block here looks exact same like the previous and existing one > i.e with branch_new_name() and PERF_BR_NEW_MAX. The complain is that - '%8s' directive > argument is NULL. This warning might just be a false positive [1], because of a compiler > problem on powerpc64el ? But please do let me know if something needs to be changed here > to avoid this warning. > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90036 > So, I tried not returning NULL in the functions that are ultimately called, but that didn't help, so I'll try just disabling that specific warning for this specific file. The patch that didn't help is below. - Arnaldo commit 07c96060c410db6d10dbbdffb22bb46afebfe2c0 Author: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Wed Aug 31 13:26:22 2022 -0300 perf branch: Don't return NULL on function that is used in a %s printf format To address this warning: In file included from /usr/include/stdio.h:866, from /home/sfr/next/next/tools/perf/util/branch.h:9, from util/branch.c:2: In function 'fprintf', inlined from 'branch_type_stat_display' at util/branch.c:152:4: /usr/include/powerpc64le-linux-gnu/bits/stdio2.h:105:10: error: '%8s' directive argument is null [-Werror=format-overflow=] 105 | return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 106 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors Fixes: 9781e500dcb87eeb ("perf branch: Extend branch type classification") Cc: Anshuman Khandual <anshuman.khandual@arm.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> diff --git a/tools/perf/util/branch.c b/tools/perf/util/branch.c index d40776c44b060b7e..f30366999f01e5e7 100644 --- a/tools/perf/util/branch.c +++ b/tools/perf/util/branch.c @@ -68,7 +68,7 @@ const char *branch_new_type_name(int new_type) if (new_type >= 0 && new_type < PERF_BR_NEW_MAX) return branch_new_names[new_type]; - return NULL; + return "<<INVALID>>"; } const char *branch_type_name(int type) @@ -94,7 +94,7 @@ const char *branch_type_name(int type) if (type >= 0 && type < PERF_BR_MAX) return branch_names[type]; - return NULL; + return "<<INVALID>>"; } const char *get_branch_type(struct branch_entry *e) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-09-02 17:31 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-08-24 4:48 [PATCH V7 0/8] perf: Expand perf_branch_entry Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 1/8] perf: Add system error and not in transaction branch types Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-26 22:15 ` [tip: perf/core] " tip-bot2 for Anshuman Khandual 2022-08-29 7:50 ` tip-bot2 for Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 2/8] perf: Extend branch type classification Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-26 22:15 ` [tip: perf/core] " tip-bot2 for Anshuman Khandual 2022-08-29 7:50 ` tip-bot2 for Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 3/8] perf: Capture branch privilege information Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-26 22:15 ` [tip: perf/core] " tip-bot2 for Anshuman Khandual 2022-08-29 7:50 ` tip-bot2 for Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 4/8] perf: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-26 22:15 ` [tip: perf/core] " tip-bot2 for Anshuman Khandual 2022-08-29 7:49 ` tip-bot2 for Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 5/8] perf/tools: Add system error and not in transaction branch types Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 6/8] perf/tools: Extend branch type classification Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-30 21:11 ` Arnaldo Carvalho de Melo 2022-08-30 21:11 ` Arnaldo Carvalho de Melo 2022-09-01 5:07 ` Anshuman Khandual 2022-09-01 5:07 ` Anshuman Khandual 2022-09-02 17:31 ` Arnaldo Carvalho de Melo [this message] 2022-09-02 17:31 ` Arnaldo Carvalho de Melo 2022-09-02 17:46 ` Arnaldo Carvalho de Melo 2022-09-02 17:46 ` Arnaldo Carvalho de Melo 2022-09-05 8:00 ` Anshuman Khandual 2022-09-05 8:00 ` Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 7/8] perf/tools: Add branch privilege information request flag Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-24 4:48 ` [PATCH V7 8/8] perf/tools: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform Anshuman Khandual 2022-08-24 4:48 ` Anshuman Khandual 2022-08-25 10:22 ` [PATCH V7 0/8] perf: Expand perf_branch_entry Peter Zijlstra 2022-08-25 10:22 ` Peter Zijlstra 2022-08-29 4:12 ` Anshuman Khandual 2022-08-29 4:12 ` Anshuman Khandual
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=YxI99uLvpgAZjm2r@kernel.org \ --to=acme@kernel.org \ --cc=alexander.shishkin@linux.intel.com \ --cc=anshuman.khandual@arm.com \ --cc=catalin.marinas@arm.com \ --cc=james.clark@arm.com \ --cc=jolsa@redhat.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-perf-users@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=mingo@redhat.com \ --cc=namhyung@kernel.org \ --cc=peterz@infradead.org \ --cc=robin.murphy@arm.com \ --cc=suzuki.poulose@arm.com \ --cc=tglx@linutronix.de \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.