aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/time.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-05-14 20:37:02 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-05-14 20:37:02 +0100
commit7f01473211b2586130c653d3b1ac15acc082d4df (patch)
tree48cda4464ba8a8ff424e5c3d7dd9d0aa3a9fa9c3 /xen/arch/x86/time.c
parentf9ffb1134c8be2f6bffd14578c179d3f12371abd (diff)
downloadxen-7f01473211b2586130c653d3b1ac15acc082d4df.tar.gz
xen-7f01473211b2586130c653d3b1ac15acc082d4df.tar.bz2
xen-7f01473211b2586130c653d3b1ac15acc082d4df.zip
Remove many uses of cpu_possible_map and iterators over NR_CPUS.
The significant remaining culprits for x86 are credit2, hpet, and percpu-area subsystems. To be dealt with in a separate patch. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/time.c')
-rw-r--r--xen/arch/x86/time.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 1ba23f9f46..c56cfe88ee 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1401,6 +1401,10 @@ void init_percpu_time(void)
unsigned long flags;
s_time_t now;
+ /* If we have constant-rate TSCs then scale factor can be shared. */
+ if ( boot_cpu_has(X86_FEATURE_CONSTANT_TSC) )
+ this_cpu(cpu_time).tsc_scale = per_cpu(cpu_time, 0).tsc_scale;
+
local_irq_save(flags);
rdtscll(t->local_tsc_stamp);
now = read_platform_stime();
@@ -1435,9 +1439,6 @@ int __init init_xen_time(void)
/* If we have constant-rate TSCs then scale factor can be shared. */
if ( boot_cpu_has(X86_FEATURE_CONSTANT_TSC) )
{
- int cpu;
- for_each_possible_cpu ( cpu )
- per_cpu(cpu_time, cpu).tsc_scale = per_cpu(cpu_time, 0).tsc_scale;
/* If TSCs are not marked as 'reliable', re-sync during rendezvous. */
if ( !boot_cpu_has(X86_FEATURE_TSC_RELIABLE) )
time_calibration_rendezvous_fn = time_calibration_tsc_rendezvous;