On Fri, Nov 20, 2020 at 12:19 PM Leo Yan leo.yan@linaro.org wrote:
On Fri, Nov 20, 2020 at 10:54:22AM +0100, Andrey Zhizhikin wrote:
On Fri, Nov 20, 2020 at 8:39 AM Salvatore Bonaccorso carnil@debian.org wrote:
This reverts commit 168200b6d6ea0cb5765943ec5da5b8149701f36a upstream. (but only from 4.19.y)
This revert would fail the build of 4.19.y with gcc10, I believe the original commit was introduced to address exactly this case. If this is intended behavior that 4.19.y is not compiled with newer gcc versions - then this revert is OK.
The original commit has a dependency for commit 95c6fe970a01 ("perf cs-etm: Change tuple from traceID-CPU# to traceID-metadata"). If the commit 95c6fe970a01 is not backported on v4.19.y, then I think reverting in this patch is the right way to do.
Commit 95c6fe970a01 (perf cs-etm: Change tuple from traceID-CPU# to traceID-metadata) did not change a definition of traceid_list in tools/perf/util/cs-etm.h header file rather a comment above it.
Definition of traceid_list in tools/perf/util/cs-etm.h header file was done in commit cd8bfd8c973ea (perf tools: Add processing of coresight metadata) which appears in all branches starting from linux-4.16.y.
The issue with this definition of traceid_list in header file would break perf builds with newer gcc versions if this commit would be reverted, so I believe that than rather reverting - commit 95c6fe970a01 ("perf cs-etm: Change tuple from traceID-CPU# to traceID-metadata") should be backported onto 4.19.y instead.
Or am I missing something else here?
Thanks, Leo
The original commit introduces a build failure as seen on Debian buster when compiled with gcc (Debian 8.3.0-6) 8.3.0:
$ LC_ALL=C.UTF-8 ARCH=x86 make perf [...] Warning: Kernel ABI header at 'tools/include/uapi/linux/bpf.h' differs from latest version at 'include/uapi/linux/bpf.h' CC util/cs-etm-decoder/cs-etm-decoder.o CC util/intel-pt.o util/cs-etm-decoder/cs-etm-decoder.c: In function 'cs_etm_decoder__buffer_packet': util/cs-etm-decoder/cs-etm-decoder.c:287:24: error: 'traceid_list' undeclared (first use in this function); did you mean 'trace_event'? inode = intlist__find(traceid_list, trace_chan_id); ^~~~~~~~~~~~ trace_event util/cs-etm-decoder/cs-etm-decoder.c:287:24: note: each undeclared identifier is reported only once for each function it appears in make[6]: *** [/build/linux-stable/tools/build/Makefile.build:97: util/cs-etm-decoder/cs-etm-decoder.o] Error 1 make[5]: *** [/build/linux-stable/tools/build/Makefile.build:139: cs-etm-decoder] Error 2 make[5]: *** Waiting for unfinished jobs.... make[4]: *** [/build/linux-stable/tools/build/Makefile.build:139: util] Error 2 make[3]: *** [Makefile.perf:633: libperf-in.o] Error 2 make[2]: *** [Makefile.perf:206: sub-make] Error 2 make[1]: *** [Makefile:70: all] Error 2 make: *** [Makefile:77: perf] Error 2
Link: https://lore.kernel.org/stable/20201114083501.GA468764@eldamar.lan/ Cc: Leo Yan leo.yan@linaro.org Cc: Alexander Shishkin alexander.shishkin@linux.intel.com Cc: Jiri Olsa jolsa@redhat.com Cc: Mark Rutland mark.rutland@arm.com Cc: Namhyung Kim namhyung@kernel.org Cc: Peter Zijlstra peterz@infradead.org Cc: Suzuki Poulouse suzuki.poulose@arm.com Cc: Tor Jeremiassen tor@ti.com Cc: linux-arm-kernel@lists.infradead.org Cc: Arnaldo Carvalho de Melo acme@redhat.com Cc: Guenter Roeck linux@roeck-us.net Cc: Greg Kroah-Hartman gregkh@linuxfoundation.org Cc: stable@vger.kernel.org # 4.19.y Signed-off-by: Salvatore Bonaccorso carnil@debian.org
tools/perf/util/cs-etm.c | 3 --- tools/perf/util/cs-etm.h | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index ad33b99f5d21..7b5e15cc6b71 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -87,9 +87,6 @@ struct cs_etm_queue { struct cs_etm_packet *packet; };
-/* RB tree for quick conversion between traceID and metadata pointers */ -static struct intlist *traceid_list;
static int cs_etm__update_queues(struct cs_etm_auxtrace *etm); static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm, pid_t tid, u64 time_); diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h index c7ef97b198c7..37f8d48179ca 100644 --- a/tools/perf/util/cs-etm.h +++ b/tools/perf/util/cs-etm.h @@ -53,6 +53,9 @@ enum { CS_ETMV4_PRIV_MAX, };
+/* RB tree for quick conversion between traceID and CPUs */ +struct intlist *traceid_list;
#define KiB(x) ((x) * 1024) #define MiB(x) ((x) * 1024 * 1024)
-- 2.29.2
-- Regards, Andrey.
-- Regards, Andrey.