On Fri, 9 Aug 2019, Lendacky, Thomas wrote: > On 8/9/19 7:54 AM, Thomas Gleixner wrote: > > + local_irq_disable(); > > /* > > * Setup the APIC counter to maximum. There is no way the lapic > > * can underflow in the 100ms detection time frame > > */ > > __setup_APIC_LVTT(0xffffffff, 0, 0); > > > > - /* Let the interrupts run */ > > - local_irq_enable(); > > + /* > > + * Methods to terminate the calibration loop: > > + * 1) Global clockevent if available (jiffies) > > + * 2) TSC if available and frequency is known > > + */ > > + jif_start = READ_ONCE(jiffies); > > + > > + if (tsc_khz) { > > + tsc_start = rdtsc(); > > + tsc_perj = div_u64((u64)tsc_khz * 1000, HZ); > > + } > > + > > + while (lapic_cal_loops <= LAPIC_CAL_LOOPS) { > > + /* > > + * Enable interrupts so the tick can fire, if a global > > + * clockevent device is available > > + */ > > + local_irq_enable(); > > Just a nit, but you end up doing this at the bottom of the loop, so you > could move this invocation to just before the loop and avoid doing two > local_irq_enable() calls in succession after the first iteration.
Indeed. Lets see how the reports go. That change is a nobrainer. Thanks, tglx