X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=markers-test%2Ftest-mark-speed.c;h=25f45a1a8df08a35586fbbc8614cf87e2bec2a28;hb=d511c84bb8211b4e20ff6bcaea17b00a4e275a5f;hp=2c585b607acf954ccc911ff7c7e1cb8885a280be;hpb=f39e77c6a6fc7965fdc5766980cf8e5157f41e63;p=lttv.git diff --git a/markers-test/test-mark-speed.c b/markers-test/test-mark-speed.c index 2c585b60..25f45a1a 100644 --- a/markers-test/test-mark-speed.c +++ b/markers-test/test-mark-speed.c @@ -52,15 +52,19 @@ static void noinline test2(const struct marker *mdata, //asm volatile (""); struct proc_dir_entry *pentry = NULL; -int temp __cacheline_aligned = 10; -int temp2 __cacheline_aligned = 10; +char temp0[8192]; +int temp[8192] __cacheline_aligned; +char temp5[8192]; static inline void test(unsigned long arg, unsigned long arg2) { #ifdef CACHEFLUSH wbinvd(); #endif - temp = (temp + 60) << 10; + temp[2] = (temp[0] + 60) << 10; + temp[3] = (temp[2] + 60) << 10; + temp[4] = (temp[3] + 60) << 10; + temp[0] = (temp[4] + 60) << 10; //asm volatile (""); barrier(); __my_trace_mark(1, kernel_debug_test, NULL, "%d %d %ld %ld", 2, current->pid, arg, arg2); @@ -75,6 +79,10 @@ static int my_open(struct inode *inode, struct file *file) unsigned long flags; local_irq_save(flags); +#ifdef CACHEFLUSH + wbinvd(); /* initial write back, without cycle count */ + msleep(20); /* wait for L2 flush */ +#endif rdtsc_barrier(); cycles1 = get_cycles(); rdtsc_barrier();