Discussion:
[PATCH v1] perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file
Mike Leach
2017-07-12 17:01:23 UTC
Permalink
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 <***@linaro.org>
---
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(-)

diff --git a/include/linux/coresight-pmu.h b/include/linux/coresight-pmu.h
index 45852c2..edfeaba 100644
--- a/include/linux/coresight-pmu.h
+++ b/include/linux/coresight-pmu.h
@@ -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)
{
/*
diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h
index 45852c2..edfeaba 100644
--- a/tools/include/linux/coresight-pmu.h
+++ b/tools/include/linux/coresight-pmu.h
@@ -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)
{
/*
diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c
index 29361d9..997734b 100644
--- a/tools/perf/arch/arm/util/cs-etm.c
+++ b/tools/perf/arch/arm/util/cs-etm.c
@@ -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);
--
2.7.4
Mathieu Poirier
2017-07-17 15:11:15 UTC
Permalink
Post by 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.
---
- 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(-)
diff --git a/include/linux/coresight-pmu.h b/include/linux/coresight-pmu.h
index 45852c2..edfeaba 100644
--- a/include/linux/coresight-pmu.h
+++ b/include/linux/coresight-pmu.h
@@ -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)
{
/*
diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h
index 45852c2..edfeaba 100644
--- a/tools/include/linux/coresight-pmu.h
+++ b/tools/include/linux/coresight-pmu.h
@@ -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)
{
/*
diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c
index 29361d9..997734b 100644
--- a/tools/perf/arch/arm/util/cs-etm.c
+++ b/tools/perf/arch/arm/util/cs-etm.c
@@ -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);
--
2.7.4
Acked-by: Mathieu Poirier <***@linaro.org>
Mathieu Poirier
2017-07-21 14:50:09 UTC
Permalink
Post by 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.
---
- 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(-)
diff --git a/include/linux/coresight-pmu.h b/include/linux/coresight-pmu.h
index 45852c2..edfeaba 100644
--- a/include/linux/coresight-pmu.h
+++ b/include/linux/coresight-pmu.h
@@ -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)
{
/*
diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h
index 45852c2..edfeaba 100644
--- a/tools/include/linux/coresight-pmu.h
+++ b/tools/include/linux/coresight-pmu.h
@@ -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)
{
/*
diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c
index 29361d9..997734b 100644
--- a/tools/perf/arch/arm/util/cs-etm.c
+++ b/tools/perf/arch/arm/util/cs-etm.c
@@ -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);
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 <***@linaro.org>

Otherwise I'll get this, whatever you prefer.

Thanks,
Mathieu.
Post by Mike Leach
--
2.7.4
Arnaldo Carvalho de Melo
2017-07-21 16:19:16 UTC
Permalink
Post by Mathieu Poirier
Post by 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.
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.
Otherwise I'll get this, whatever you prefer.
I'll get it, thanks for the ping,

- Arnaldo
Arnaldo Carvalho de Melo
2017-07-21 18:35:33 UTC
Permalink
Post by Arnaldo Carvalho de Melo
Post by Mathieu Poirier
Post by 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.
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.
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
2017-07-21 18:37:40 UTC
Permalink
Post by Arnaldo Carvalho de Melo
Post by Arnaldo Carvalho de Melo
Post by Mathieu Poirier
Post by 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.
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.
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?
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.o
arch/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
2017-07-21 19:11:03 UTC
Permalink
Post by Arnaldo Carvalho de Melo
Post by Arnaldo Carvalho de Melo
Post by Arnaldo Carvalho de Melo
Post by Mathieu Poirier
Post by 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.
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.
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?
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
Post by Arnaldo Carvalho de Melo
CC /tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o
CC /tmp/build/perf/util/config.o
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
ARCH=arm64
TARGET=aarch64-linux-gnu
make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf
- Arnaldo
Mathieu Poirier
2017-07-24 19:37:53 UTC
Permalink
Post by Arnaldo Carvalho de Melo
Post by Arnaldo Carvalho de Melo
Post by Arnaldo Carvalho de Melo
Post by Arnaldo Carvalho de Melo
Post by Mathieu Poirier
Post by 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.
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.
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?
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
Post by Arnaldo Carvalho de Melo
- Arnaldo
Post by Arnaldo Carvalho de Melo
CC /tmp/build/perf/arch/arm64/util/../../arm/util/cs-etm.o
CC /tmp/build/perf/util/config.o
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
ARCH=arm64
TARGET=aarch64-linux-gnu
make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf
- Arnaldo
Loading...