Messages in this thread | | | Date | Fri, 5 Aug 2011 08:13:41 -0500 | From | Jack Steiner <> | Subject | Re: [PATCH v2] x86: Reduce clock calibration time during slave cpu startup |
| |
On Fri, Aug 05, 2011 at 12:46:35PM +0200, Ingo Molnar wrote: > > * Jack Steiner <steiner@sgi.com> wrote: > > > +/* > > + * Check if another cpu is in the same socket and has already been calibrated. > > + * If found, use the previous value. This assumes all cores in the same physical > > + * socket have the same core frequency. > > + > > +unsigned long __cpuinit calibrate_delay_is_known(void) > > +{ > > + int i, cpu = smp_processor_id(); > > + > > + if (!tsc_disabled && !cpu_has(&cpu_data(cpu), X86_FEATURE_CONSTANT_TSC)) > > + return 0; > > + > > + for_each_online_cpu(i) > > + if (cpu_data(i).phys_proc_id == cpu_data(cpu).phys_proc_id) > > + return cpu_data(i).loops_per_jiffy; > > Hm, why do we have to make such an assumption? Cannot we query the > core frequency?
See V2 of the patch. The above assumption was removed & replaced by a check for X86_FEATURE_CONSTANT_TSC & using the TSC for __delay(). If all cores see a constant TSC frequency, then core frequency should not matter.
Does this make sense....
--- jack
| |