Atom N450 + C3 + HPET == bad timer behaviour

Adrian Chadd adrian at
Fri Jun 21 01:02:15 UTC 2013

On 20 June 2013 16:45, Adrian Chadd <adrian at> wrote:
> Hi,
> I'm having issues with HPET + C3 state on this Atom N450 based
> netbook. This is (shocking, I know!) running -HEAD (r251605.)
> If I use C2, HPET is fine.
> If I use RTC, i8254, LAPIC, C3 is also fine.
> But C3 + HPET results in multi-second pauses where it should be 1 second.
> I've disabled powerd and verified that dev.cpu.0.freq=1667; so it's
> not CPU frequency related.
> Doug found this: apparently SMI + timer fondling doesn't quite work out?

.. and the resolution:

"clockevents: Prevent oneshot mode when broadcast device is periodic

When the per cpu timer is marked CLOCK_EVT_FEAT_C3STOP, then we only
can switch into oneshot mode, when the backup broadcast device
supports oneshot mode as well. Otherwise we would try to switch the
broadcast device into an unsupported mode unconditionally. This went
unnoticed so far as the current available broadcast devices support
oneshot mode. Seth unearthed this problem while debugging and working
around an hpet related BIOS wreckage.

Add the necessary check to tick_is_oneshot_available()."

does that help?


More information about the freebsd-current mailing list