On Thu, 23 May 2019, Ricardo Neri wrote:
> @@ -52,10 +59,10 @@ static void kick_timer(struct hpet_hld_data *hdata, bool 
> force)
>               return;
>  
>       if (hdata->has_periodic)
> -             period = watchdog_thresh * hdata->ticks_per_second;
> +             period = watchdog_thresh * hdata->ticks_per_cpu;
>  
>       count = hpet_readl(HPET_COUNTER);
> -     new_compare = count + watchdog_thresh * hdata->ticks_per_second;
> +     new_compare = count + watchdog_thresh * hdata->ticks_per_cpu;
>       hpet_set_comparator(hdata->num, (u32)new_compare, (u32)period);

So with this you might get close to the point where you trip over the SMI
induced madness where CPUs vanish for several milliseconds in some value
add code. You really want to do a read back of the hpet to detect that. See
the comment in the hpet code. RHEL 7/8 allow up to 768 logical CPUs....

Thanks,

        tglx

Reply via email to