aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/vpt.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-06-24 11:05:22 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-06-24 11:05:22 +0100
commit6e10abac004556688ac79bf27a501401224b262d (patch)
tree512b24ba382f88327617cb1bd1b5b837ebf53da7 /xen/arch/x86/hvm/vpt.c
parentc764820ae6c300900aecc04dab691b14f4152f13 (diff)
downloadxen-6e10abac004556688ac79bf27a501401224b262d.tar.gz
xen-6e10abac004556688ac79bf27a501401224b262d.tar.bz2
xen-6e10abac004556688ac79bf27a501401224b262d.zip
Scaling guest's TSC when the target machine's frequency is different
with its requirement. Using trap&emulate for guest's each rdtsc instruction first, maybe it can be optimized later. Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Diffstat (limited to 'xen/arch/x86/hvm/vpt.c')
-rw-r--r--xen/arch/x86/hvm/vpt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c
index 071ef14517..6a12d37a21 100644
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -33,7 +33,8 @@ void hvm_init_guest_time(struct domain *d)
pl->stime_offset = -(u64)get_s_time();
pl->last_guest_time = 0;
- d->arch.hvm_domain.gtsc_khz = cpu_khz;
+ d->arch.hvm_domain.gtsc_khz = opt_softtsc ? 1000000 : cpu_khz;
+ d->arch.hvm_domain.tsc_scaled = 0;
}
u64 hvm_get_guest_time(struct vcpu *v)