Prev: [tip:perf/pebs] perf, x86: Fix the !CONFIG_CPU_SUP_INTEL build
Next: [tip:perf/pebs] perf, x86: Fix silly bug in data store buffer allocation
From: tip-bot for Peter Zijlstra on 10 Mar 2010 08:30 Commit-ID: 7e1a40dda619b0483fbe0740494ed2c2a1f05289 Gitweb: http://git.kernel.org/tip/7e1a40dda619b0483fbe0740494ed2c2a1f05289 Author: Peter Zijlstra <a.p.zijlstra(a)chello.nl> AuthorDate: Thu, 4 Mar 2010 12:38:03 +0100 Committer: Ingo Molnar <mingo(a)elte.hu> CommitDate: Wed, 10 Mar 2010 13:23:33 +0100 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(a)chello.nl> Cc: Arnaldo Carvalho de Melo <acme(a)infradead.org> Cc: paulus(a)samba.org Cc: eranian(a)google.com Cc: robert.richter(a)amd.com Cc: fweisbec(a)gmail.com LKML-Reference: <20100304140100.847218224(a)chello.nl> Signed-off-by: Ingo Molnar <mingo(a)elte.hu> --- arch/x86/kernel/cpu/perf_event_intel_ds.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c index 5e40294..ef56f05 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_ds.c +++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c @@ -457,6 +457,7 @@ static void intel_pmu_drain_pebs_core(struct pt_regs *iregs) 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; @@ -479,6 +480,12 @@ static void intel_pmu_drain_pebs_core(struct pt_regs *iregs) 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; + } + n = top - at; /* @@ -521,6 +528,7 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs) 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; @@ -562,6 +570,12 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs) 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() */ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |