aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386/paravirt.h
diff options
context:
space:
mode:
authorZachary Amsden <zach@vmware.com>2007-03-05 03:30:36 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-05 10:57:52 -0500
commit1182d8528b620c23d043bccbbef092b42062960a (patch)
tree3df690a1a731811f8fecda06cb785a5a7b06d4d0 /include/asm-i386/paravirt.h
parent6cb9a8350aee789100a365794272ed20cc8f2401 (diff)
[PATCH] vmi: cpu cycles fix
In order to share the common code in tsc.c which does CPU Khz calibration, we need to make an accurate value of CPU speed available to the tsc.c code. This value loses a lot of precision in a VM because of the timing differences with real hardware, but we need it to be as precise as possible so the guest can make accurate time calculations with the cycle counters. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-i386/paravirt.h')
-rw-r--r--include/asm-i386/paravirt.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h
index a13230254f4f..a35c81480654 100644
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -95,6 +95,7 @@ struct paravirt_ops
95 u64 (*read_tsc)(void); 95 u64 (*read_tsc)(void);
96 u64 (*read_pmc)(void); 96 u64 (*read_pmc)(void);
97 u64 (*get_scheduled_cycles)(void); 97 u64 (*get_scheduled_cycles)(void);
98 unsigned long (*get_cpu_khz)(void);
98 99
99 void (*load_tr_desc)(void); 100 void (*load_tr_desc)(void);
100 void (*load_gdt)(const struct Xgt_desc_struct *); 101 void (*load_gdt)(const struct Xgt_desc_struct *);
@@ -275,6 +276,7 @@ static inline void halt(void)
275#define rdtscll(val) (val = paravirt_ops.read_tsc()) 276#define rdtscll(val) (val = paravirt_ops.read_tsc())
276 277
277#define get_scheduled_cycles(val) (val = paravirt_ops.get_scheduled_cycles()) 278#define get_scheduled_cycles(val) (val = paravirt_ops.get_scheduled_cycles())
279#define calculate_cpu_khz() (paravirt_ops.get_cpu_khz())
278 280
279#define write_tsc(val1,val2) wrmsr(0x10, val1, val2) 281#define write_tsc(val1,val2) wrmsr(0x10, val1, val2)
280 282