From: Max Filippov <jcmvbkbc@gmail.com>
To: linux-xtensa@linux-xtensa.org, linux-kernel@vger.kernel.org
Cc: Chris Zankel <chris@zankel.net>, Marc Gauthier <marc@cadence.com>,
Max Filippov <jcmvbkbc@gmail.com>
Subject: [PATCH v2 00/13] Support hardware perf counters on xtensa
Date: Sat, 18 Jul 2015 11:30:03 +0300 [thread overview]
Message-ID: <1437208216-15729-1-git-send-email-jcmvbkbc@gmail.com> (raw)
Hello,
this series adds support for hardware performance counters in counting
and sampling modes as well as for page fault counting. Perf IRQ is handled
as NMI when configured properly (as the only topmost medium-priority
interrupt).
It reorganizes stack tracing code to share it between old oprofile and new
perf interfaces, and improves kernel stack traces both for builtin debug
functions and for gdb.
There's also fixes and cleanups for the areas touched by the new features.
Changes v1->v2:
- make continuous stack changes conditional;
- replace l32i/s32i + add used to access spilled registers with l32e/s32e;
- use -EINVAL instead of -ENOENT for invalid PMU event configuratons;
- fix kernel register spilling code;
- optionally treat perf IRQ as NMI.
Max Filippov (13):
xtensa: clean up Kconfig dependencies for custom cores
xtensa: keep exception/interrupt stack continuous
xtensa: move oprofile stack tracing to stacktrace.c
xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations
xtensa: add profiling IRQ type to xtensa_irq_map
xtensa: count software page fault perf events
xtensa: implement counting and sampling perf events
perf tools: xtensa: add DWARF register names
xtensa: reorganize irq flags tracing
xtensa: fix kernel register spilling
xtensa: don't touch EXC_TABLE_FIXUP in _switch_to
xtensa: implement fake NMI
xtensa: drop unused irq_err_count
arch/xtensa/Kconfig | 22 +-
arch/xtensa/include/asm/atomic.h | 10 +-
arch/xtensa/include/asm/cmpxchg.h | 4 +-
arch/xtensa/include/asm/irqflags.h | 22 +-
arch/xtensa/include/asm/processor.h | 31 ++-
arch/xtensa/include/asm/stacktrace.h | 8 +
arch/xtensa/include/asm/traps.h | 29 +-
arch/xtensa/kernel/Makefile | 1 +
arch/xtensa/kernel/entry.S | 197 ++++++++++----
arch/xtensa/kernel/irq.c | 17 +-
arch/xtensa/kernel/perf_event.c | 454 +++++++++++++++++++++++++++++++
arch/xtensa/kernel/stacktrace.c | 167 +++++++++++-
arch/xtensa/kernel/traps.c | 31 ++-
arch/xtensa/kernel/vectors.S | 10 +-
arch/xtensa/mm/fault.c | 7 +
arch/xtensa/oprofile/backtrace.c | 158 +----------
tools/perf/arch/xtensa/Build | 1 +
tools/perf/arch/xtensa/Makefile | 3 +
tools/perf/arch/xtensa/util/Build | 1 +
tools/perf/arch/xtensa/util/dwarf-regs.c | 25 ++
20 files changed, 954 insertions(+), 244 deletions(-)
create mode 100644 arch/xtensa/kernel/perf_event.c
create mode 100644 tools/perf/arch/xtensa/Build
create mode 100644 tools/perf/arch/xtensa/Makefile
create mode 100644 tools/perf/arch/xtensa/util/Build
create mode 100644 tools/perf/arch/xtensa/util/dwarf-regs.c
--
1.8.1.4
next reply other threads:[~2015-07-18 8:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-18 8:30 Max Filippov [this message]
2015-07-18 8:30 ` [PATCH v2 01/13] xtensa: clean up Kconfig dependencies for custom cores Max Filippov
2015-07-18 8:30 ` [PATCH v2 02/13] xtensa: keep exception/interrupt stack continuous Max Filippov
2015-07-18 8:30 ` [PATCH v2 03/13] xtensa: move oprofile stack tracing to stacktrace.c Max Filippov
2015-07-18 8:30 ` [PATCH v2 04/13] xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations Max Filippov
2015-07-18 8:30 ` [PATCH v2 05/13] xtensa: add profiling IRQ type to xtensa_irq_map Max Filippov
2015-07-18 8:30 ` [PATCH v2 06/13] xtensa: count software page fault perf events Max Filippov
2015-07-18 8:30 ` [PATCH v2 07/13] xtensa: implement counting and sampling " Max Filippov
2015-08-06 19:46 ` Arnaldo Carvalho de Melo
2015-08-07 9:13 ` Peter Zijlstra
2015-08-07 12:03 ` Max Filippov
2015-08-07 13:12 ` Arnaldo Carvalho de Melo
2015-07-18 8:30 ` [PATCH v2 08/13] perf tools: xtensa: add DWARF register names Max Filippov
2015-08-07 7:22 ` [tip:perf/core] perf tools xtensa: Add " tip-bot for Max Filippov
2015-07-18 8:30 ` [PATCH v2 09/13] xtensa: reorganize irq flags tracing Max Filippov
2015-07-18 8:30 ` [PATCH v2 10/13] xtensa: fix kernel register spilling Max Filippov
2015-07-18 8:30 ` [PATCH v2 11/13] xtensa: don't touch EXC_TABLE_FIXUP in _switch_to Max Filippov
2015-07-18 8:30 ` [PATCH v2 12/13] xtensa: implement fake NMI Max Filippov
2015-07-27 14:36 ` Max Filippov
2015-07-27 15:14 ` Peter Zijlstra
2015-07-18 8:30 ` [PATCH v2 13/13] xtensa: drop unused irq_err_count Max Filippov
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=1437208216-15729-1-git-send-email-jcmvbkbc@gmail.com \
--to=jcmvbkbc@gmail.com \
--cc=chris@zankel.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=marc@cadence.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox