[PATCH v2 0/4] x86: Intel Processor Trace Logger

From: Takao Indoh
Date: Tue Sep 08 2015 - 01:49:50 EST


Hi all,

These patch series provide logging feature for Intel Processor Trace
(Intel PT).

Intel PT is a new feature of Intel CPU "Broadwell", it captures
information about program execution flow. Here is a article about Intel
PT.
https://software.intel.com/en-us/blogs/2013/09/18/processor-tracing

Once Intel PT is enabled, the events which change program flow, like
branch instructions, exceptions, interruptions, traps and so on are
logged in the memory. This is very useful for debugging because we can
know the detailed behavior of software.

This patch creates log buffer for Intel PT and enable logging at boot
time. When kernel panic occurs, we can get this log buffer from
crashdump file by kdump, and reconstruct the flow that led to the panic.

changelog:
v2:
- Reimplement using perf_event_create_kernel_counter

v1:
https://lkml.org/lkml/2015/7/29/6

Takao Indoh (4):
perf/trace: Add function to find event type by name
perf: Add function to enable perf events in kernel with ring buffer
perf/x86/intel/pt: Add Intel PT logger
x86: Stop Intel PT and save its registers when panic occurs

arch/x86/Kconfig | 16 +++
arch/x86/include/asm/intel_pt_log.h | 13 ++
arch/x86/kernel/cpu/Makefile | 2 +
arch/x86/kernel/cpu/intel_pt_log.c | 178 +++++++++++++++++++++++++++++
arch/x86/kernel/cpu/perf_event_intel_pt.c | 6 +
arch/x86/kernel/crash.c | 9 ++
include/linux/perf_event.h | 10 ++
include/linux/trace_events.h | 2 +
kernel/events/core.c | 70 +++++++++++-
kernel/trace/trace_event_perf.c | 22 ++++
10 files changed, 323 insertions(+), 5 deletions(-)
create mode 100644 arch/x86/include/asm/intel_pt_log.h
create mode 100644 arch/x86/kernel/cpu/intel_pt_log.c


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/