lkml.org 
[lkml]   [2015]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 0/4] x86: Intel Processor Trace Logger
    Date
    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




    \
     
     \ /
      Last update: 2015-09-08 08:01    [W:2.057 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site