2014-01-13 10:28:47

by Baruch Siach

[permalink] [raw]
Subject: [PATCH v3] perf: add support for the xtensa architecture

Tested using kernel tracepoints on a QEMU simulated environment. Kernel support
for perf depends on the patch "xtensa: enable HAVE_PERF_EVENTS", which is
scheduled for v3.14. Hardware performance counters are not supported under
xtensa yet.

Acked-by: Max Filippov <[email protected]>
Signed-off-by: Baruch Siach <[email protected]>
---
v2: use the "core ID" field from /proc/cpuinfo (Max Filippov)

v3: add testing and kernel dependency information (Ingo Molnar)
---
tools/perf/perf.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index b079304bd53d..e441864dbe03 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -132,6 +132,13 @@
#define CPUINFO_PROC "CPU"
#endif

+#ifdef __xtensa__
+#define mb() asm volatile("memw" ::: "memory")
+#define wmb() asm volatile("memw" ::: "memory")
+#define rmb() asm volatile("" ::: "memory")
+#define CPUINFO_PROC "core ID"
+#endif
+
#define barrier() asm volatile ("" ::: "memory")

#ifndef cpu_relax
--
1.8.5.2


2014-01-13 10:46:58

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH v3] perf: add support for the xtensa architecture


* Baruch Siach <[email protected]> wrote:

> Tested using kernel tracepoints on a QEMU simulated environment. Kernel support
> for perf depends on the patch "xtensa: enable HAVE_PERF_EVENTS", which is
> scheduled for v3.14. Hardware performance counters are not supported under
> xtensa yet.
>
> Acked-by: Max Filippov <[email protected]>
> Signed-off-by: Baruch Siach <[email protected]>

Acked-by: Ingo Molnar <[email protected]>

Thanks,

Ingo

2014-01-20 10:23:17

by Baruch Siach

[permalink] [raw]
Subject: Re: [PATCH v3] perf: add support for the xtensa architecture

Hi Ingo,

On Mon, Jan 13, 2014 at 11:46:47AM +0100, Ingo Molnar wrote:
> * Baruch Siach <[email protected]> wrote:
> > Tested using kernel tracepoints on a QEMU simulated environment. Kernel
> > support
> > for perf depends on the patch "xtensa: enable HAVE_PERF_EVENTS", which is
> > scheduled for v3.14. Hardware performance counters are not supported under
> > xtensa yet.
> >
> > Acked-by: Max Filippov <[email protected]>
> > Signed-off-by: Baruch Siach <[email protected]>
>
> Acked-by: Ingo Molnar <[email protected]>

Thanks. So is it going into v3.14 by any chance?

baruch

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- [email protected] - tel: +972.2.679.5364, http://www.tkos.co.il -

Subject: [tip:perf/urgent] perf tools: Add support for the xtensa architecture

Commit-ID: 3a46817f674389d5fb2f4dce19fbc73ebd1976bb
Gitweb: http://git.kernel.org/tip/3a46817f674389d5fb2f4dce19fbc73ebd1976bb
Author: Baruch Siach <[email protected]>
AuthorDate: Mon, 13 Jan 2014 12:27:35 +0200
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 20 Jan 2014 16:19:08 -0300

perf tools: Add support for the xtensa architecture

Tested using kernel tracepoints on a QEMU simulated environment.

Kernel support for perf depends on the patch "xtensa: enable
HAVE_PERF_EVENTS", which is scheduled for v3.14.

Hardware performance counters are not supported under xtensa yet.

Acked-by: Ingo Molnar <[email protected]>
Acked-by: Max Filippov <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/aafcdb22f04e2d3188d2938528939481be56b649.1389608855.git.baruch@tkos.co.il
Signed-off-by: Baruch Siach <[email protected]>
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/perf.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 3c2f213..7daa806 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -132,6 +132,13 @@
#define CPUINFO_PROC "CPU"
#endif

+#ifdef __xtensa__
+#define mb() asm volatile("memw" ::: "memory")
+#define wmb() asm volatile("memw" ::: "memory")
+#define rmb() asm volatile("" ::: "memory")
+#define CPUINFO_PROC "core ID"
+#endif
+
#define barrier() asm volatile ("" ::: "memory")

#ifndef cpu_relax