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

Reply via email to