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