} \
} while (0)
- //asm volatile ("");
struct proc_dir_entry *pentry = NULL;
+char temp0[8192];
+int temp[8192];
+char temp5[8192];
+
static inline void test(unsigned long arg, unsigned long arg2)
{
#ifdef CACHEFLUSH
wbinvd();
#endif
+ 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 ("");
//__my_trace_mark(1, kernel_debug_test, NULL, "%d %d %ld %ld", 2, current->pid, arg, arg2);
+ barrier();
__my_trace_mark(0, kernel_debug_test, NULL, "%d %d %ld %ld", 2, current->pid, arg, arg2);
+ barrier();
}
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 */
+#endif
rdtsc_barrier();
cycles1 = get_cycles();
rdtsc_barrier();
for(i=0; i<2000; i++) {
test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
+ test(i, i);
}
rdtsc_barrier();
cycles2 = get_cycles();