Messages in this thread Patch in this message | | | Subject | [PATCH v2 1/4] perf/core,x86: introduce sync_task_ctx() method at struct pmu | From | Alexey Budankov <> | Date | Wed, 16 Oct 2019 12:48:51 +0300 |
| |
Declare sync_task_ctx() methods at the generic and x86 specific pmu types to bridge calls to platform specific pmu code on optimized context switch path between equivalent task perf event contexts.
Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com> --- arch/x86/events/perf_event.h | 8 ++++++++ include/linux/perf_event.h | 7 +++++++ 2 files changed, 15 insertions(+)
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h index ecacfbf4ebc1..a25e6d7eb87b 100644 --- a/arch/x86/events/perf_event.h +++ b/arch/x86/events/perf_event.h @@ -682,6 +682,14 @@ struct x86_pmu { */ atomic_t lbr_exclusive[x86_lbr_exclusive_max]; + /* + * perf task context (i.e. struct perf_event_context::task_ctx_data) switch helper + * to bridge calls from perf/core to perf/x86. See struct pmu::sync_task_ctx() usage + * for examples; + */ + void (*sync_task_ctx)(struct x86_perf_task_context *one, + struct x86_perf_task_context *another); + /* * AMD bits */ diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 61448c19a132..60bf17af69f0 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -409,6 +409,13 @@ struct pmu { */ size_t task_ctx_size; + /* + * PMU specific parts of task perf event context (i.e. ctx->task_ctx_data) + * can be synchronized using this function. See Intel LBR callstack support + * implementation and Perf core context switch handling callbacks for usage + * examples. + */ + void (*sync_task_ctx) (void *one, void *another); /* * Set up pmu-private data structures for an AUX area -- 2.20.1
| |