X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=trunk%2Ftests%2Fkernel%2Ftest-fct-speed.c;fp=trunk%2Ftests%2Fkernel%2Ftest-fct-speed.c;h=079e4793f5df74e5148f0e3ad575651155fcdcf4;hb=3d6e46e15a388687ca1c5b7e2eec831eccd59d2d;hp=0000000000000000000000000000000000000000;hpb=ec7a5af61127aa50a1839eee5be99ce53494c57b;p=lttv.git diff --git a/trunk/tests/kernel/test-fct-speed.c b/trunk/tests/kernel/test-fct-speed.c new file mode 100644 index 00000000..079e4793 --- /dev/null +++ b/trunk/tests/kernel/test-fct-speed.c @@ -0,0 +1,65 @@ +/* test-mark.c + * + */ + +#include +#include +#include +#include +#include +#include + + //asm volatile (""); +struct proc_dir_entry *pentry = NULL; + +void test(unsigned long arg) +{ + asm volatile (""); + //trace_mark(test_marker, "arg1 %lu arg2 %p", arg, current); +} + +static int my_open(struct inode *inode, struct file *file) +{ + unsigned int i; + cycles_t cycles1, cycles2; + unsigned long flags; + + local_irq_save(flags); + rdtsc_barrier(); + cycles1 = get_cycles(); + rdtsc_barrier(); + for(i=0; i<20000; i++) { + test(i); + } + rdtsc_barrier(); + cycles2 = get_cycles(); + rdtsc_barrier(); + local_irq_restore(flags); + printk("cycles : %llu\n", cycles2-cycles1); + return -EPERM; +} + + +static struct file_operations my_operations = { + .open = my_open, +}; + +int init_module(void) +{ + pentry = create_proc_entry("testmark", 0444, NULL); + if (pentry) + pentry->proc_fops = &my_operations; + + printk("test addr %p\n", &test); + return 0; +} + +void cleanup_module(void) +{ + remove_proc_entry("testmark", NULL); +} + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Marker Test"); +