|
@@ -134,13 +134,13 @@ int trace_selftest_startup_dynamic_tracing(struct tracer *trace,
|
|
|
msleep(100);
|
|
|
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
ftrace_enabled = 0;
|
|
|
|
|
|
/* check the trace buffer */
|
|
|
ret = trace_test_buffer(tr, &count);
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
/* we should only have one item */
|
|
|
if (!ret && count != 1) {
|
|
@@ -148,6 +148,7 @@ int trace_selftest_startup_dynamic_tracing(struct tracer *trace,
|
|
|
ret = -1;
|
|
|
goto out;
|
|
|
}
|
|
|
+
|
|
|
out:
|
|
|
ftrace_enabled = save_ftrace_enabled;
|
|
|
tracer_enabled = save_tracer_enabled;
|
|
@@ -185,13 +186,13 @@ trace_selftest_startup_function(struct tracer *trace, struct trace_array *tr)
|
|
|
/* Sleep for a 1/10 of a second */
|
|
|
msleep(100);
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
ftrace_enabled = 0;
|
|
|
|
|
|
/* check the trace buffer */
|
|
|
ret = trace_test_buffer(tr, &count);
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
if (!ret && !count) {
|
|
|
printk(KERN_CONT ".. no entries found ..");
|
|
@@ -232,13 +233,13 @@ trace_selftest_startup_irqsoff(struct tracer *trace, struct trace_array *tr)
|
|
|
udelay(100);
|
|
|
local_irq_enable();
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check both trace buffers */
|
|
|
ret = trace_test_buffer(tr, NULL);
|
|
|
if (!ret)
|
|
|
ret = trace_test_buffer(&max_tr, &count);
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
if (!ret && !count) {
|
|
|
printk(KERN_CONT ".. no entries found ..");
|
|
@@ -269,13 +270,13 @@ trace_selftest_startup_preemptoff(struct tracer *trace, struct trace_array *tr)
|
|
|
udelay(100);
|
|
|
preempt_enable();
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check both trace buffers */
|
|
|
ret = trace_test_buffer(tr, NULL);
|
|
|
if (!ret)
|
|
|
ret = trace_test_buffer(&max_tr, &count);
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
if (!ret && !count) {
|
|
|
printk(KERN_CONT ".. no entries found ..");
|
|
@@ -312,27 +313,30 @@ trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *
|
|
|
local_irq_enable();
|
|
|
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check both trace buffers */
|
|
|
ret = trace_test_buffer(tr, NULL);
|
|
|
- if (ret)
|
|
|
+ if (ret) {
|
|
|
+ tracing_start();
|
|
|
goto out;
|
|
|
+ }
|
|
|
|
|
|
ret = trace_test_buffer(&max_tr, &count);
|
|
|
- if (ret)
|
|
|
+ if (ret) {
|
|
|
+ tracing_start();
|
|
|
goto out;
|
|
|
+ }
|
|
|
|
|
|
if (!ret && !count) {
|
|
|
printk(KERN_CONT ".. no entries found ..");
|
|
|
ret = -1;
|
|
|
+ tracing_start();
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
/* do the test by disabling interrupts first this time */
|
|
|
tracing_max_latency = 0;
|
|
|
- tr->ctrl = 1;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_start();
|
|
|
preempt_disable();
|
|
|
local_irq_disable();
|
|
|
udelay(100);
|
|
@@ -341,8 +345,7 @@ trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *
|
|
|
local_irq_enable();
|
|
|
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check both trace buffers */
|
|
|
ret = trace_test_buffer(tr, NULL);
|
|
|
if (ret)
|
|
@@ -358,6 +361,7 @@ trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *
|
|
|
|
|
|
out:
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
tracing_max_latency = save_max;
|
|
|
|
|
|
return ret;
|
|
@@ -448,8 +452,7 @@ trace_selftest_startup_wakeup(struct tracer *trace, struct trace_array *tr)
|
|
|
msleep(100);
|
|
|
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check both trace buffers */
|
|
|
ret = trace_test_buffer(tr, NULL);
|
|
|
if (!ret)
|
|
@@ -457,6 +460,7 @@ trace_selftest_startup_wakeup(struct tracer *trace, struct trace_array *tr)
|
|
|
|
|
|
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
tracing_max_latency = save_max;
|
|
|
|
|
@@ -485,11 +489,11 @@ trace_selftest_startup_sched_switch(struct tracer *trace, struct trace_array *tr
|
|
|
/* Sleep for a 1/10 of a second */
|
|
|
msleep(100);
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check the trace buffer */
|
|
|
ret = trace_test_buffer(tr, &count);
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
if (!ret && !count) {
|
|
|
printk(KERN_CONT ".. no entries found ..");
|
|
@@ -513,11 +517,11 @@ trace_selftest_startup_sysprof(struct tracer *trace, struct trace_array *tr)
|
|
|
/* Sleep for a 1/10 of a second */
|
|
|
msleep(100);
|
|
|
/* stop the tracing. */
|
|
|
- tr->ctrl = 0;
|
|
|
- trace->ctrl_update(tr);
|
|
|
+ tracing_stop();
|
|
|
/* check the trace buffer */
|
|
|
ret = trace_test_buffer(tr, &count);
|
|
|
trace->reset(tr);
|
|
|
+ tracing_start();
|
|
|
|
|
|
return ret;
|
|
|
}
|