perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
PATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
Adds bit definitions and function to remap this value to the correct ETMv4 CONFIGR bit values for all selected options.
---
Changes for v1:
- Added more people to the recipient list.
include/linux/coresight-pmu.h | 5 +++++ tools/include/linux/coresight-pmu.h | 5 +++++ tools/perf/arch/arm/util/cs-etm.c | 28 +++++++++++++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-)
include/linux/coresight-pmu.h +5 -0
@@ -26,6 +26,11 @@#define ETM_OPT_TS 28#define ETM_OPT_RETSTK 29 +/* ETMv4 CONFIGR programming bits for the ETM OPTs */ +#define ETM4_CFG_BIT_CYCACC 4 +#define ETM4_CFG_BIT_TS 11 +#define ETM4_CFG_BIT_RETSTK 12 +static inline int coresight_get_trace_id (int cpu) {/*
tools/include/linux/coresight-pmu.h +5 -0
@@ -26,6 +26,11 @@#define ETM_OPT_TS 28#define ETM_OPT_RETSTK 29 +/* ETMv4 CONFIGR programming bits for the ETM OPTs */ +#define ETM4_CFG_BIT_CYCACC 4 +#define ETM4_CFG_BIT_TS 11 +#define ETM4_CFG_BIT_RETSTK 12 +static inline int coresight_get_trace_id (int cpu) {/*
tools/perf/arch/arm/util/cs-etm.c +27 -1
@@ -266,6 +266,32 @@ static u64 cs_etm_get_config(struct auxtrace_record *itr)return config; } +#ifndef BIT +#define BIT (N ) (1UL << (N)) +#endif + +static u64 cs_etmv4_get_config (struct auxtrace_record *itr) +{ +u64 config =0 ; +u64 config_opts =0 ; + +/* +* The perf event variable config bits represent both +* the command line options and register programming +* bits in ETMv3/PTM. For ETMv4 we must remap options +* to real bits +*/ + config_opts =cs_etm_get_config (itr); +if (config_opts &BIT (ETM_OPT_CYCACC )) + config |=BIT (ETM4_CFG_BIT_CYCACC ); +if (config_opts &BIT (ETM_OPT_TS )) + config |=BIT (ETM4_CFG_BIT_TS ); +if (config_opts &BIT (ETM_OPT_RETSTK )) + config |=BIT (ETM4_CFG_BIT_RETSTK ); + +return config; +} +static size_t cs_etm_info_priv_size (struct auxtrace_record *itr__maybe_unused ,struct perf_evlist *evlist__maybe_unused )
@@ -363,7 +389,7 @@ static void cs_etm_get_metadata(int cpu, u32 *offset, magic = __perf_cs_etmv4_magic;/* Get trace configuration register */ info->priv[*offset +CS_ETMV4_TRCCONFIGR ] = -cs_etm_get_config (itr); +cs_etmv4_get_config (itr);/* Get traceID from the framework */ info->priv[*offset +CS_ETMV4_TRCTRACEIDR ] =coresight_get_trace_id (cpu);
Signature · 1 line
2.7.4
PATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Quoted 95 lines · Mike Leach
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
Adds bit definitions and function to remap this value to the correct ETMv4 CONFIGR bit values for all selected options.
Signed-off-by Mike Leach <[email protected]>---
Changes for v1:
- Added more people to the recipient list.include/linux/coresight-pmu.h | 5 +++++ tools/include/linux/coresight-pmu.h | 5 +++++ tools/perf/arch/arm/util/cs-etm.c | 28 +++++++++++++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-)include/linux/coresight-pmu.h +5
-0@@ -26,6 +26,11 @@#define ETM_OPT_TS 28#define ETM_OPT_RETSTK 29 +/* ETMv4 CONFIGR programming bits for the ETM OPTs */ +#define ETM4_CFG_BIT_CYCACC 4 +#define ETM4_CFG_BIT_TS 11 +#define ETM4_CFG_BIT_RETSTK 12 +static inline int coresight_get_trace_id (int cpu) {/* tools/include/linux/coresight-pmu.h +5
-0@@ -26,6 +26,11 @@#define ETM_OPT_TS 28#define ETM_OPT_RETSTK 29 +/* ETMv4 CONFIGR programming bits for the ETM OPTs */ +#define ETM4_CFG_BIT_CYCACC 4 +#define ETM4_CFG_BIT_TS 11 +#define ETM4_CFG_BIT_RETSTK 12 +static inline int coresight_get_trace_id (int cpu) {/* tools/perf/arch/arm/util/cs-etm.c +27
-2@@ -266,6 +266,32 @@ static u64 cs_etm_get_config(struct auxtrace_record *itr)return config; } +#ifndef BIT +#define BIT (N ) (1UL << (N)) +#endif + +static u64 cs_etmv4_get_config (struct auxtrace_record *itr) +{ +u64 config =0 ; +u64 config_opts =0 ; + +/* +* The perf event variable config bits represent both +* the command line options and register programming +* bits in ETMv3/PTM. For ETMv4 we must remap options +* to real bits +*/ + config_opts =cs_etm_get_config (itr); +if (config_opts &BIT (ETM_OPT_CYCACC )) + config |=BIT (ETM4_CFG_BIT_CYCACC ); +if (config_opts &BIT (ETM_OPT_TS )) + config |=BIT (ETM4_CFG_BIT_TS ); +if (config_opts &BIT (ETM_OPT_RETSTK )) + config |=BIT (ETM4_CFG_BIT_RETSTK ); + +return config; +} +static size_t cs_etm_info_priv_size (struct auxtrace_record *itr__maybe_unused ,struct perf_evlist *evlist__maybe_unused )@@ -363,7 +389,7 @@ static void cs_etm_get_metadata(int cpu, u32 *offset, magic = __perf_cs_etmv4_magic;/* Get trace configuration register */ info->priv[*offset +CS_ETMV4_TRCCONFIGR ] = -cs_etm_get_config (itr); +cs_etmv4_get_config (itr);/* Get traceID from the framework */ info->priv[*offset +CS_ETMV4_TRCTRACEIDR ] =coresight_get_trace_id (cpu); --
Quoted 2 lines
2.7.4
PATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
In reply to Mike LeachQuoted 86 lines · Mike Leach
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
Adds bit definitions and function to remap this value to the correct ETMv4 CONFIGR bit values for all selected options.
Signed-off-by Mike Leach <[email protected]>---
Changes for v1:
- Added more people to the recipient list.include/linux/coresight-pmu.h | 5 +++++ tools/include/linux/coresight-pmu.h | 5 +++++ tools/perf/arch/arm/util/cs-etm.c | 28 +++++++++++++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-)include/linux/coresight-pmu.h +5
-0@@ -26,6 +26,11 @@#define ETM_OPT_TS 28#define ETM_OPT_RETSTK 29 +/* ETMv4 CONFIGR programming bits for the ETM OPTs */ +#define ETM4_CFG_BIT_CYCACC 4 +#define ETM4_CFG_BIT_TS 11 +#define ETM4_CFG_BIT_RETSTK 12 +static inline int coresight_get_trace_id (int cpu) {/* tools/include/linux/coresight-pmu.h +5
-0@@ -26,6 +26,11 @@#define ETM_OPT_TS 28#define ETM_OPT_RETSTK 29 +/* ETMv4 CONFIGR programming bits for the ETM OPTs */ +#define ETM4_CFG_BIT_CYCACC 4 +#define ETM4_CFG_BIT_TS 11 +#define ETM4_CFG_BIT_RETSTK 12 +static inline int coresight_get_trace_id (int cpu) {/* tools/perf/arch/arm/util/cs-etm.c +26
-0@@ -266,6 +266,32 @@ static u64 cs_etm_get_config(struct auxtrace_record *itr)return config; } +#ifndef BIT +#define BIT (N ) (1UL << (N)) +#endif + +static u64 cs_etmv4_get_config (struct auxtrace_record *itr) +{ +u64 config =0 ; +u64 config_opts =0 ; + +/* +* The perf event variable config bits represent both +* the command line options and register programming +* bits in ETMv3/PTM. For ETMv4 we must remap options +* to real bits +*/ + config_opts =cs_etm_get_config (itr); +if (config_opts &BIT (ETM_OPT_CYCACC )) + config |=BIT (ETM4_CFG_BIT_CYCACC ); +if (config_opts &BIT (ETM_OPT_TS )) + config |=BIT (ETM4_CFG_BIT_TS ); +if (config_opts &BIT (ETM_OPT_RETSTK )) + config |=BIT (ETM4_CFG_BIT_RETSTK ); + +return config; +} +static size_t cs_etm_info_priv_size (struct auxtrace_record *itr__maybe_unused ,struct perf_evlist *evlist__maybe_unused )
tools/perf/arch/arm/util/cs-etm.c static void cs_etm_get_metadata(int cpu, u32 *offset, · line 395
Quoted 8 lines
tools/perf/arch/arm/util/cs-etm.c +1
-1@@ -363,7 +389,7 @@ static void cs_etm_get_metadata(int cpu, u32 *offset, magic = __perf_cs_etmv4_magic;/* Get trace configuration register */ info->priv[*offset +CS_ETMV4_TRCCONFIGR ] = -cs_etm_get_config (itr); +cs_etmv4_get_config (itr);/* Get traceID from the framework */ info->priv[*offset +CS_ETMV4_TRCTRACEIDR ] =coresight_get_trace_id (cpu);
I have tested this patch on my side and things work as advertised now.
Arnaldo, if you want to pick this up through your tree then:
Otherwise I'll get this, whatever you prefer.
Thanks,
Mathieu.
Quoted 3 lines
--
2.7.4
Arnaldo Carvalho de Melo
maintainerPATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 7 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);
Quoted 7 lines
I have tested this patch on my side and things work as advertised now.
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
- Arnaldo
Arnaldo Carvalho de Melo
maintainerPATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Em Fri, Jul 21, 2017 at 01:19:16PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 9 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);I have tested this patch on my side and things work as advertised now.
Quoted 7 lines
Quoted 5 lines
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
It is breaking the build in one of my containers, one with fedora 24 and
a android toolchain from http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
arch/arm/util/cs-etm.c: In function 'cs_etmv4_get_config':^M arch/arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)^M
if (config_opts & BIT(ETM_OPT_RETSTK))
It builds as
NDK=/opt/android-ndk-r12b/ NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm
make -C /git/linux/tools/perf O=/tmp/build/perf WERROR=0 CFLAGS=${CFLAGS} ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" Ideas?
- Arnaldo
Arnaldo Carvalho de Melo
maintainerPATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Em Fri, Jul 21, 2017 at 03:35:33PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 26 lines
Em Fri, Jul 21, 2017 at 01:19:16PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 9 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);I have tested this patch on my side and things work as advertised now.
Quoted 7 lines
Quoted 5 lines
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
It is breaking the build in one of my containers, one with fedora 24 and
a android toolchain from http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
arch/arm/util/cs-etm.c: In function 'cs_etmv4_get_config':^March/arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)^M
if (config_opts&BIT(ETM_OPT_RETSTK))
Quoted 7 lines
It builds as
NDK=/opt/android-ndk-r12b/ NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm
make -C /git/linux/tools/perf O=/tmp/build/perf WERROR=0 CFLAGS=${CFLAGS} ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" Ideas?
Ok, it also fails on:
14 debian:experimental-x-arm64: FAIL
Same problem:
CC /tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o
CC /tmp/build/perf/util/config.oarch/arm64/util/../../arm/util/cs-etm.c: In function 'cs_etmv4_get_config':arch/arm64/util/../../arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)
if (config_opts & BIT(ETM_OPT_RETSTK))
^
arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT'
#define BIT(N) (1UL << (N))
^
arch/arm64/util/../../arm/util/cs-etm.c:289:24: note: each undeclared identifier is reported only once for each function it appears in
if (config_opts & BIT(ETM_OPT_RETSTK))
^
arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT'
#define BIT(N) (1UL << (N))
^mv: cannot stat '/tmp/build/perf/arch/arm64/util/../../arm/util/.cs-etm.o.tmp': No such file or directory /git/linux/tools/build/Makefile.build:101: recipe for target '/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o' failed make[6]: *** [/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o] Error 1 /git/linux/tools/build/Makefile.build:144: recipe for target 'util' failed
make[5]: *** [util] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arm64' failed
make[4]: *** [arm64] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arch' failed
make[3]: *** [arch] Error 2
make[3]: *** Waiting for unfinished jobs....
CC /tmp/build/perf/util/ctype.o
Builds with:
ARCH=arm64
TARGET=aarch64-linux-gnu
make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf
- Arnaldo
Arnaldo Carvalho de Melo
maintainerPATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Em Fri, Jul 21, 2017 at 03:37:40PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 35 lines
Em Fri, Jul 21, 2017 at 03:35:33PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 26 lines
Em Fri, Jul 21, 2017 at 01:19:16PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 9 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);I have tested this patch on my side and things work as advertised now.
Quoted 7 lines
Quoted 5 lines
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
It is breaking the build in one of my containers, one with fedora 24 and
a android toolchain from http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
arch/arm/util/cs-etm.c: In function 'cs_etmv4_get_config':^March/arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)^M
if (config_opts&BIT(ETM_OPT_RETSTK))Quoted 7 lines
It builds as
NDK=/opt/android-ndk-r12b/ NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm
make -C /git/linux/tools/perf O=/tmp/build/perf WERROR=0 CFLAGS=${CFLAGS} ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" Ideas?
Quoted 3 lines
Ok, it also fails on:
14 debian:experimental-x-arm64: FAIL
Ok, we need a definition for ETM_OPT_RETSTK, just like we have for the other two...
Nuked it from my perf/core branch, please resubmit.
- Arnaldo
Quoted 37 lines
Same problem:
CC
/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o
CC/tmp/build/perf/util/config.oarch/arm64/util/../../arm/util/cs-etm.c: In function 'cs_etmv4_get_config':arch/arm64/util/../../arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)
if (config_opts&BIT(ETM_OPT_RETSTK))^ arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT' #define BIT(N) (1UL << (N)) ^ arch/arm64/util/../../arm/util/cs-etm.c:289:24: note: each undeclared identifier is reported only once for each function it appears in if (config_opts & BIT(ETM_OPT_RETSTK)) ^ arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT' #define BIT(N) (1UL << (N)) ^mv: cannot stat '
/tmp/build/perf/arch/arm64/util/../../arm/util/.cs-etm.o.tmp': No such file or directory /git/linux/tools/build/Makefile.build:101: recipe for target '/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o' failed make[6]: *** [/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o] Error 1 /git/linux/tools/build/Makefile.build:144: recipe for target 'util' failed
make[5]: *** [util] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arm64' failed
make[4]: *** [arm64] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arch' failed
make[3]: *** [arch] Error 2
make[3]: *** Waiting for unfinished jobs....
CC/tmp/build/perf/util/ctype.oBuilds with:
ARCH=arm64
TARGET=aarch64-linux-gnu
make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf- Arnaldo
PATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Quoted 36 lines · Arnaldo Carvalho de Melo
Em Fri, Jul 21, 2017 at 03:37:40PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 35 lines
Em Fri, Jul 21, 2017 at 03:35:33PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 33 lines
Em Fri, Jul 21, 2017 at 01:19:16PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 9 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);I have tested this patch on my side and things work as advertised now.
Quoted 7 lines
Quoted 5 lines
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
It is breaking the build in one of my containers, one with fedora 24 and
a android toolchain from http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
arch/arm/util/cs-etm.c: In function 'cs_etmv4_get_config':^March/arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)^M
if (config_opts&BIT(ETM_OPT_RETSTK))It builds as
NDK=/opt/android-ndk-r12b/ NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm
make -C /git/linux/tools/perf O=/tmp/build/perf WERROR=0 CFLAGS=${CFLAGS} ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" Ideas?
Quoted 8 lines
Quoted 3 lines
Ok, it also fails on:
14 debian:experimental-x-arm64: FAIL
Ok, we need a definition for
ETM_OPT_RETSTK, just like we have for the other two...Nuked it from my perf/core branch, please resubmit.
Symbol ETM_OPT_RETSTK was added as part of another patch [1] that is already in my CoreSight tree. Do you mind if we make this one go through my tree then?
Thanks,
Mathieu
[1]. https://www.spinics.net/lists/arm-kernel/msg593008.html
Quoted 39 lines
- Arnaldo
Quoted 37 lines
Same problem:
CC
/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o
CC/tmp/build/perf/util/config.oarch/arm64/util/../../arm/util/cs-etm.c: In function 'cs_etmv4_get_config':arch/arm64/util/../../arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)
if (config_opts&BIT(ETM_OPT_RETSTK))^ arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT' #define BIT(N) (1UL << (N)) ^ arch/arm64/util/../../arm/util/cs-etm.c:289:24: note: each undeclared identifier is reported only once for each function it appears in if (config_opts & BIT(ETM_OPT_RETSTK)) ^ arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT' #define BIT(N) (1UL << (N)) ^mv: cannot stat '
/tmp/build/perf/arch/arm64/util/../../arm/util/.cs-etm.o.tmp': No such file or directory /git/linux/tools/build/Makefile.build:101: recipe for target '/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o' failed make[6]: *** [/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o] Error 1 /git/linux/tools/build/Makefile.build:144: recipe for target 'util' failed
make[5]: *** [util] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arm64' failed
make[4]: *** [arm64] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arch' failed
make[3]: *** [arch] Error 2
make[3]: *** Waiting for unfinished jobs....
CC/tmp/build/perf/util/ctype.oBuilds with:
ARCH=arm64
TARGET=aarch64-linux-gnu
make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf- Arnaldo
PATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Quoted 41 lines · Mathieu Poirier
Quoted 40 lines · Arnaldo Carvalho de Melo
Em Fri, Jul 21, 2017 at 03:37:40PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 38 lines
Em Fri, Jul 21, 2017 at 03:35:33PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 26 lines
Em Fri, Jul 21, 2017 at 01:19:16PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 9 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);I have tested this patch on my side and things work as advertised now.
Quoted 7 lines
Quoted 5 lines
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
It is breaking the build in one of my containers, one with fedora 24 and
a android toolchain from http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
arch/arm/util/cs-etm.c: In function 'cs_etmv4_get_config':^March/arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)^M
if (config_opts&BIT(ETM_OPT_RETSTK))Quoted 7 lines
It builds as
NDK=/opt/android-ndk-r12b/ NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm
make -C /git/linux/tools/perf O=/tmp/build/perf WERROR=0 CFLAGS=${CFLAGS} ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" Ideas?Ok, it also fails on:
14 debian:experimental-x-arm64: FAIL
Quoted 8 lines
Quoted 4 lines
Ok, we need a definition for
ETM_OPT_RETSTK, just like we have for the other two...Nuked it from my perf/core branch, please resubmit.
Symbol
ETM_OPT_RETSTKwas added as part of another patch [1] that is already in my CoreSight tree. Do you mind if we make this one go through my tree then?
I haven't heard back from this so I'll assume you want me to take the patch.
Quoted 45 lines
Thanks,
Mathieu[1]. https://www.spinics.net/lists/arm-kernel/msg593008.html
Quoted 39 lines
- Arnaldo
Quoted 37 lines
Same problem:
CC
/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o
CC/tmp/build/perf/util/config.oarch/arm64/util/../../arm/util/cs-etm.c: In function 'cs_etmv4_get_config':arch/arm64/util/../../arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)
if (config_opts&BIT(ETM_OPT_RETSTK))^ arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT' #define BIT(N) (1UL << (N)) ^ arch/arm64/util/../../arm/util/cs-etm.c:289:24: note: each undeclared identifier is reported only once for each function it appears in if (config_opts & BIT(ETM_OPT_RETSTK)) ^ arch/arm64/util/../../arm/util/cs-etm.c:270:25: note: in definition of macro 'BIT' #define BIT(N) (1UL << (N)) ^mv: cannot stat '
/tmp/build/perf/arch/arm64/util/../../arm/util/.cs-etm.o.tmp': No such file or directory /git/linux/tools/build/Makefile.build:101: recipe for target '/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o' failed make[6]: *** [/tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o] Error 1 /git/linux/tools/build/Makefile.build:144: recipe for target 'util' failed
make[5]: *** [util] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arm64' failed
make[4]: *** [arm64] Error 2
/git/linux/tools/build/Makefile.build:144: recipe for target 'arch' failed
make[3]: *** [arch] Error 2
make[3]: *** Waiting for unfinished jobs....
CC/tmp/build/perf/util/ctype.oBuilds with:
ARCH=arm64
TARGET=aarch64-linux-gnu
make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf- Arnaldo
Arnaldo Carvalho de Melo
maintainerPATCH 1/1 perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Em Tue, Aug 01, 2017 at 10:17:56AM -0600, Mathieu Poirier escreveu:
Quoted 45 lines · Mathieu Poirier
Quoted 44 lines · Arnaldo Carvalho de Melo
Quoted 43 lines
Em Fri, Jul 21, 2017 at 03:37:40PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 35 lines
Em Fri, Jul 21, 2017 at 03:35:33PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 26 lines
Em Fri, Jul 21, 2017 at 01:19:16PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Fri, Jul 21, 2017 at 08:50:09AM -0600, Mathieu Poirier escreveu:
Quoted 9 lines · Mike Leach
Quoted 5 lines
The value passed into the perf.data file for the CONFIGR register in ETMv4 was incorrectly being set to the command line options/ETMv3 value.
info->priv[*offset + CS_ETMV4_TRCTRACEIDR] = coresight_get_trace_id(cpu);I have tested this patch on my side and things work as advertised now.
Quoted 7 lines
Quoted 5 lines
Arnaldo, if you want to pick this up through your tree then:
Acked-by Mathieu Poirier <[email protected]>Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,
It is breaking the build in one of my containers, one with fedora 24 and
a android toolchain from http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
arch/arm/util/cs-etm.c: In function 'cs_etmv4_get_config':^March/arm/util/cs-etm.c:289:24: error: 'ETM_OPT_RETSTK' undeclared (first use in this function)^M
if (config_opts&BIT(ETM_OPT_RETSTK))Quoted 7 lines
It builds as
NDK=/opt/android-ndk-r12b/ NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm
make -C /git/linux/tools/perf O=/tmp/build/perf WERROR=0 CFLAGS=${CFLAGS} ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" Ideas?Quoted 3 lines
Ok, it also fails on:
14 debian:experimental-x-arm64: FAIL
Ok, we need a definition for
ETM_OPT_RETSTK, just like we have for the other two...
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
Nuked it from my perf/core branch, please resubmit.
Symbol
ETM_OPT_RETSTKwas added as part of another patch [1] that is already in my CoreSight tree. Do you mind if we make this one go through my tree then?I haven't heard back from this so I'll assume you want me to take the patch.
Yeah, I should've replied to you, but since this depends on stuff only in your tree, going thru that is sensible :-)
Ack.
- Arnaldo