Date: Sun, 07 May 2006 15:28:29 -0700 From: Nate Lawson <nate@cryptography.com> To: John Baldwin <jhb@freebsd.org> Cc: acpi@freebsd.org, FreeBSD Current <freebsd-current@freebsd.org> Subject: local apic timer and C3 cpu idle states Message-ID: <445E748D.3020902@cryptography.com>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?445E748D.3020902>