diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-05-12 15:20:47 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-05-23 17:39:38 -0400 |
commit | a6dd24f8d00cbccb560b19a723e6fb9bdfb20799 (patch) | |
tree | 8170d270a55b3d5856eef54a16e76b24d5a62c38 | |
parent | 56a08bdcff20f0022bd9160c1093e56f763499aa (diff) |
ftrace: sysprof-plugin, add self-tests
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | kernel/trace/trace.h | 4 | ||||
-rw-r--r-- | kernel/trace/trace_selftest.c | 28 | ||||
-rw-r--r-- | kernel/trace/trace_sysprof.c | 6 |
3 files changed, 35 insertions, 3 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index c460e85e94ed..b2198bc830ae 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
@@ -280,6 +280,10 @@ extern int trace_selftest_startup_wakeup(struct tracer *trace, | |||
280 | extern int trace_selftest_startup_sched_switch(struct tracer *trace, | 280 | extern int trace_selftest_startup_sched_switch(struct tracer *trace, |
281 | struct trace_array *tr); | 281 | struct trace_array *tr); |
282 | #endif | 282 | #endif |
283 | #ifdef CONFIG_SYSPROF_TRACER | ||
284 | extern int trace_selftest_startup_sysprof(struct tracer *trace, | ||
285 | struct trace_array *tr); | ||
286 | #endif | ||
283 | #endif /* CONFIG_FTRACE_STARTUP_TEST */ | 287 | #endif /* CONFIG_FTRACE_STARTUP_TEST */ |
284 | 288 | ||
285 | extern void *head_page(struct trace_array_cpu *data); | 289 | extern void *head_page(struct trace_array_cpu *data); |
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c index 3877dd9102f1..033a6fb2e5ff 100644 --- a/kernel/trace/trace_selftest.c +++ b/kernel/trace/trace_selftest.c | |||
@@ -537,3 +537,31 @@ trace_selftest_startup_sched_switch(struct tracer *trace, struct trace_array *tr | |||
537 | return ret; | 537 | return ret; |
538 | } | 538 | } |
539 | #endif /* CONFIG_CONTEXT_SWITCH_TRACER */ | 539 | #endif /* CONFIG_CONTEXT_SWITCH_TRACER */ |
540 | |||
541 | #ifdef CONFIG_SYSPROF_TRACER | ||
542 | int | ||
543 | trace_selftest_startup_sysprof(struct tracer *trace, struct trace_array *tr) | ||
544 | { | ||
545 | unsigned long count; | ||
546 | int ret; | ||
547 | |||
548 | /* start the tracing */ | ||
549 | tr->ctrl = 1; | ||
550 | trace->init(tr); | ||
551 | /* Sleep for a 1/10 of a second */ | ||
552 | msleep(100); | ||
553 | /* stop the tracing. */ | ||
554 | tr->ctrl = 0; | ||
555 | trace->ctrl_update(tr); | ||
556 | /* check the trace buffer */ | ||
557 | ret = trace_test_buffer(tr, &count); | ||
558 | trace->reset(tr); | ||
559 | |||
560 | if (!ret && !count) { | ||
561 | printk(KERN_CONT ".. no entries found .."); | ||
562 | ret = -1; | ||
563 | } | ||
564 | |||
565 | return ret; | ||
566 | } | ||
567 | #endif /* CONFIG_SYSPROF_TRACER */ | ||
diff --git a/kernel/trace/trace_sysprof.c b/kernel/trace/trace_sysprof.c index b1137c11ef8b..b78f12f77fca 100644 --- a/kernel/trace/trace_sysprof.c +++ b/kernel/trace/trace_sysprof.c | |||
@@ -126,7 +126,7 @@ static void start_stack_timers(void) | |||
126 | for_each_online_cpu(cpu) { | 126 | for_each_online_cpu(cpu) { |
127 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); | 127 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu)); |
128 | start_stack_timer(cpu); | 128 | start_stack_timer(cpu); |
129 | printk("started timer on cpu%d\n", cpu); | 129 | printk(KERN_INFO "started sysprof timer on cpu%d\n", cpu); |
130 | } | 130 | } |
131 | set_cpus_allowed_ptr(current, &saved_mask); | 131 | set_cpus_allowed_ptr(current, &saved_mask); |
132 | } | 132 | } |
@@ -136,7 +136,7 @@ static void stop_stack_timer(int cpu) | |||
136 | struct hrtimer *hrtimer = &per_cpu(stack_trace_hrtimer, cpu); | 136 | struct hrtimer *hrtimer = &per_cpu(stack_trace_hrtimer, cpu); |
137 | 137 | ||
138 | hrtimer_cancel(hrtimer); | 138 | hrtimer_cancel(hrtimer); |
139 | printk("cancelled timer on cpu%d\n", cpu); | 139 | printk(KERN_INFO "cancelled sysprof timer on cpu%d\n", cpu); |
140 | } | 140 | } |
141 | 141 | ||
142 | static void stop_stack_timers(void) | 142 | static void stop_stack_timers(void) |
@@ -200,7 +200,7 @@ static struct tracer stack_trace __read_mostly = | |||
200 | .reset = stack_trace_reset, | 200 | .reset = stack_trace_reset, |
201 | .ctrl_update = stack_trace_ctrl_update, | 201 | .ctrl_update = stack_trace_ctrl_update, |
202 | #ifdef CONFIG_FTRACE_SELFTEST | 202 | #ifdef CONFIG_FTRACE_SELFTEST |
203 | .selftest = trace_selftest_startup_stack, | 203 | .selftest = trace_selftest_startup_sysprof, |
204 | #endif | 204 | #endif |
205 | }; | 205 | }; |
206 | 206 | ||