xref: /kvm-unit-tests/x86/tsc.c (revision 0d7251beb934517c03ef821756b85fd4cb4182f7)
17d36db35SAvi Kivity #include "libcflat.h"
2*0d7251beSJason Wang #include "processor.h"
37d36db35SAvi Kivity 
47d36db35SAvi Kivity void test_wrtsc(u64 t1)
57d36db35SAvi Kivity {
67d36db35SAvi Kivity 	u64 t2;
77d36db35SAvi Kivity 
87d36db35SAvi Kivity 	wrtsc(t1);
97d36db35SAvi Kivity 	t2 = rdtsc();
107d36db35SAvi Kivity 	printf("rdtsc after wrtsc(%lld): %lld\n", t1, t2);
117d36db35SAvi Kivity }
127d36db35SAvi Kivity 
137d36db35SAvi Kivity int main()
147d36db35SAvi Kivity {
157d36db35SAvi Kivity 	u64 t1, t2;
167d36db35SAvi Kivity 
177d36db35SAvi Kivity 	t1 = rdtsc();
187d36db35SAvi Kivity 	t2 = rdtsc();
197d36db35SAvi Kivity 	printf("rdtsc latency %lld\n", (unsigned)(t2 - t1));
207d36db35SAvi Kivity 
217d36db35SAvi Kivity 	test_wrtsc(0);
227d36db35SAvi Kivity 	test_wrtsc(100000000000ull);
237d36db35SAvi Kivity 	return 0;
247d36db35SAvi Kivity }
25