[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

local apic timer and C3 cpu idle states



I've done some debugging of a problem some systems have with idle states > C1 (hlt). When a lower idle state is enabled, the system seems to slow down, keystrokes are delayed, etc. C1 has no problems.

In further analysis, it seems the only reason some systems continue running at all is that USB causes interrupts for polling. The reason the system seems slower is that the timer rate drops from 120 to about 60 (with HZ=100). With USB disabled, the system is completely non-operational except if the power button is used to artificially generate interrupts.

I found that all such systems have an APIC and are using the lapic timer. With just apic disabled (hint.apic.0.disabled="1"), the acpi idle states are all usable (C1-C4). The lapic timer stops while the system is in C3. It seems that Linux had the same problem a while back:
http://www.ussg.iu.edu/hypermail/linux/kernel/0505.0/1002.html
http://www.ussg.iu.edu/hypermail/linux/kernel/0505.0/0850.html

We should not be using the lapic timer on UP systems if acpi idling is enabled or find some other workaround.

-Nate
_______________________________________________
freebsd-acpi_(_at_)_freebsd_(_dot_)_org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-acpi
To unsubscribe, send any mail to "freebsd-acpi-unsubscribe_(_at_)_freebsd_(_dot_)_org"


Visit your host, monkey.org