aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/perf_event.h
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2010-09-06 10:32:21 -0400
committerIngo Molnar <mingo@elte.hu>2010-09-09 14:46:32 -0400
commitb5ab4cd563e7ab49b27957704112a8ecade54e1f (patch)
treea5d1194e001a1203c679e1f0014d3b40118a725d /include/linux/perf_event.h
parentb28ab83c595e767f2028276b7398d17f2253cec0 (diff)
perf: Per cpu-context rotation timer
Give each cpu-context its own timer so that it is a self contained entity, this eases the way for per-pmu-per-cpu contexts as well as provides the basic infrastructure to allow different rotation times per pmu. Things to look at: - folding the tick and these TICK_NSEC timers - separate task context rotation Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: paulus <paulus@samba.org> Cc: stephane eranian <eranian@googlemail.com> Cc: Robert Richter <robert.richter@amd.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Lin Ming <ming.m.lin@intel.com> Cc: Yanmin <yanmin_zhang@linux.intel.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/perf_event.h')
-rw-r--r--include/linux/perf_event.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 4ab4f0ca09a1..fa04537df55b 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -861,6 +861,8 @@ struct perf_cpu_context {
861 struct perf_event_context *task_ctx; 861 struct perf_event_context *task_ctx;
862 int active_oncpu; 862 int active_oncpu;
863 int exclusive; 863 int exclusive;
864 u64 timer_interval;
865 struct hrtimer timer;
864}; 866};
865 867
866struct perf_output_handle { 868struct perf_output_handle {
@@ -881,7 +883,6 @@ extern void perf_pmu_unregister(struct pmu *pmu);
881 883
882extern void perf_event_task_sched_in(struct task_struct *task); 884extern void perf_event_task_sched_in(struct task_struct *task);
883extern void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next); 885extern void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next);
884extern void perf_event_task_tick(struct task_struct *task);
885extern int perf_event_init_task(struct task_struct *child); 886extern int perf_event_init_task(struct task_struct *child);
886extern void perf_event_exit_task(struct task_struct *child); 887extern void perf_event_exit_task(struct task_struct *child);
887extern void perf_event_free_task(struct task_struct *task); 888extern void perf_event_free_task(struct task_struct *task);
@@ -1067,8 +1068,6 @@ perf_event_task_sched_in(struct task_struct *task) { }
1067static inline void 1068static inline void
1068perf_event_task_sched_out(struct task_struct *task, 1069perf_event_task_sched_out(struct task_struct *task,
1069 struct task_struct *next) { } 1070 struct task_struct *next) { }
1070static inline void
1071perf_event_task_tick(struct task_struct *task) { }
1072static inline int perf_event_init_task(struct task_struct *child) { return 0; } 1071static inline int perf_event_init_task(struct task_struct *child) { return 0; }
1073static inline void perf_event_exit_task(struct task_struct *child) { } 1072static inline void perf_event_exit_task(struct task_struct *child) { }
1074static inline void perf_event_free_task(struct task_struct *task) { } 1073static inline void perf_event_free_task(struct task_struct *task) { }