]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/trace/trace_selftest.c
[SCSI] lib: add generic helper to print sizes rounded to the correct SI range
[linux-2.6-omap-h63xx.git] / kernel / trace / trace_selftest.c
index a5f6001c33323481b16657135b082213b08b5a79..0911b7e073bf197b021ba77c75f6777a03910aa7 100644 (file)
@@ -28,6 +28,7 @@ trace_test_buffer_cpu(struct trace_array *tr, struct trace_array_cpu *data)
        page = list_entry(data->trace_pages.next, struct page, lru);
        entries = page_address(page);
 
+       check_pages(data);
        if (head_page(data) != entries)
                goto failed;
 
@@ -123,6 +124,7 @@ int trace_selftest_startup_dynamic_tracing(struct tracer *trace,
        int ret;
        int save_ftrace_enabled = ftrace_enabled;
        int save_tracer_enabled = tracer_enabled;
+       char *func_name;
 
        /* The ftrace test PASSED */
        printk(KERN_CONT "PASSED\n");
@@ -142,9 +144,15 @@ int trace_selftest_startup_dynamic_tracing(struct tracer *trace,
                return ret;
        }
 
+       /*
+        * Some archs *cough*PowerPC*cough* add charachters to the
+        * start of the function names. We simply put a '*' to
+        * accomodate them.
+        */
+       func_name = "*" STR(DYN_FTRACE_TEST_NAME);
+
        /* filter only on our function */
-       ftrace_set_filter(STR(DYN_FTRACE_TEST_NAME),
-                         sizeof(STR(DYN_FTRACE_TEST_NAME)), 1);
+       ftrace_set_filter(func_name, strlen(func_name), 1);
 
        /* enable tracing */
        tr->ctrl = 1;
@@ -530,3 +538,26 @@ trace_selftest_startup_sched_switch(struct tracer *trace, struct trace_array *tr
        return ret;
 }
 #endif /* CONFIG_CONTEXT_SWITCH_TRACER */
+
+#ifdef CONFIG_SYSPROF_TRACER
+int
+trace_selftest_startup_sysprof(struct tracer *trace, struct trace_array *tr)
+{
+       unsigned long count;
+       int ret;
+
+       /* start the tracing */
+       tr->ctrl = 1;
+       trace->init(tr);
+       /* Sleep for a 1/10 of a second */
+       msleep(100);
+       /* stop the tracing. */
+       tr->ctrl = 0;
+       trace->ctrl_update(tr);
+       /* check the trace buffer */
+       ret = trace_test_buffer(tr, &count);
+       trace->reset(tr);
+
+       return ret;
+}
+#endif /* CONFIG_SYSPROF_TRACER */