diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-06-17 08:50:55 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-06-17 08:50:55 +0100 |
commit | 3358e0fe7f94b4f6bf8cdbaffa86693939e3fec5 (patch) | |
tree | 08b0743768bb83818c9945e772480f84ec2fcc64 /xen/arch/x86/time.c | |
parent | 42f6af8640c9292b199b6d2fdb78e13d9a1e4a3f (diff) | |
download | xen-3358e0fe7f94b4f6bf8cdbaffa86693939e3fec5.tar.gz xen-3358e0fe7f94b4f6bf8cdbaffa86693939e3fec5.tar.bz2 xen-3358e0fe7f94b4f6bf8cdbaffa86693939e3fec5.zip |
cpuidle: reduce redundant cost in cstate_restore_tsc for nonstop tsc
Signed-off-by: Wei Gang <gang.wei@intel.com>
Diffstat (limited to 'xen/arch/x86/time.c')
-rw-r--r-- | xen/arch/x86/time.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index d500490254..3a824ec516 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -664,14 +664,17 @@ static void __init init_platform_timer(void) void cstate_restore_tsc(void) { - struct cpu_time *t = &this_cpu(cpu_time); - struct time_scale sys_to_tsc = scale_reciprocal(t->tsc_scale); + struct cpu_time *t; + struct time_scale sys_to_tsc; s_time_t stime_delta; u64 new_tsc; if ( boot_cpu_has(X86_FEATURE_NONSTOP_TSC) ) return; + t = &this_cpu(cpu_time); + sys_to_tsc = scale_reciprocal(t->tsc_scale); + stime_delta = read_platform_stime() - t->stime_master_stamp; if ( stime_delta < 0 ) stime_delta = 0; |