+++ /dev/null
-/* test-async-tsc.c
- *
- * test async tsc on AMD.
- */
-
-
-#include <asm/atomic.h>
-#include <linux/module.h>
-#include <asm/timex.h>
-#include <asm/hpet.h>
-#include <asm/io.h>
-#include <linux/clocksource.h>
-#include <linux/ltt.h>
-#include <asm/cacheflush.h>
-
-//#define NR_LOOPS 10000
-#define NR_LOOPS 10
-
-extern cycle_t read_hpet(void);
-
-static int __init test_init(void)
-{
- int i;
- cycles_t time1, time2;
- volatile unsigned long myval;
- int sync_save; /* racy */
-
- sync_save = ltt_tsc_is_sync;
- ltt_tsc_is_sync = 0;
- //ltt_tsc_is_sync = 1;
- return -EPERM; //TEST !
- myval = ltt_get_timestamp64();
- time1 = get_cycles();
- for (i=0; i < NR_LOOPS; i++) {
- //printk("time %llu\n", ltt_tsc_read());
- //get_cycles_barrier();
- //myval = get_cycles();
- //get_cycles_barrier();
- myval = read_hpet();
- //clflush(<t_last_tsc);
- //myval = ltt_get_timestamp64();
- printk("val : %llu\n", (unsigned long long)myval);
- }
- time2 = get_cycles();
- printk("timediff %llu\n", (time2-time1)/NR_LOOPS);
- ltt_tsc_is_sync = sync_save;
- return -EPERM;
-}
-
-static void __exit test_exit(void)
-{
-}
-
-module_init(test_init);
-module_exit(test_exit);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Mathieu Desnoyers");
-MODULE_DESCRIPTION("sync async tsc");
-