lkml.org 
[lkml]   [2010]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 12/14] perf, x86: Expose the full PEBS record using PERF_SAMPLE_RAW
    Expose the full PEBS record using PERF_SAMPLE_RAW

    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <new-submission>
    ---
    arch/x86/kernel/cpu/perf_event_intel_ds.c | 14 ++++++++++++++
    1 file changed, 14 insertions(+)

    Index: linux-2.6/arch/x86/kernel/cpu/perf_event_intel_ds.c
    ===================================================================
    --- linux-2.6.orig/arch/x86/kernel/cpu/perf_event_intel_ds.c
    +++ linux-2.6/arch/x86/kernel/cpu/perf_event_intel_ds.c
    @@ -457,6 +457,7 @@ static void intel_pmu_drain_pebs_core(st
    struct perf_event *event = cpuc->events[0]; /* PMC0 only */
    struct pebs_record_core *at, *top;
    struct perf_sample_data data;
    + struct perf_raw_record raw;
    struct pt_regs regs;
    int n;

    @@ -490,6 +491,12 @@ static void intel_pmu_drain_pebs_core(st
    at += n-1;
    }

    + if (event->attr.sample_type & PERF_SAMPLE_RAW) {
    + raw.size = x86_pmu.pebs_record_size;
    + raw.data = at;
    + data.raw = &raw;
    + }
    +
    /*
    * We use the interrupt regs as a base because the PEBS record
    * does not contain a full regs set, specifically it seems to
    @@ -524,6 +531,7 @@ static void intel_pmu_drain_pebs_nhm(str
    struct pebs_record_nhm *at, *top;
    struct perf_sample_data data;
    struct perf_event *event = NULL;
    + struct perf_raw_record raw;
    struct pt_regs regs;
    int bit, n;

    @@ -572,6 +580,12 @@ static void intel_pmu_drain_pebs_nhm(str
    perf_sample_data_init(&data, 0);
    data.period = event->hw.last_period;

    + if (event->attr.sample_type & PERF_SAMPLE_RAW) {
    + raw.size = x86_pmu.pebs_record_size;
    + raw.data = at;
    + data.raw = &raw;
    + }
    +
    /*
    * See the comment in intel_pmu_drain_pebs_core()
    */
    --



    \
     
     \ /
      Last update: 2010-03-04 15:05    [W:6.500 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site