DragonFly-2.3.0.864.gc5b83 master sys/platform/pc32/apic mpapic.c sys/platform/pc32/isa clock.c sys/platform/pc64/isa clock.c sys/platform/vkernel/platform systimer.c sys/sys systimer.h

Hasso Tepper hasso at estpak.ee
Sat May 2 11:38:55 PDT 2009


Matthew Dillon wrote:
>     Hmm.  The "lapic timer: Correct AMD C1E handling" commit doesn't
>     fix that issue?

AFAICS nope.

I'm afraid that I don't know enough about the topic to discuss details. 
All I know that I had a problems with my laptop and Linux and it was 
fixed at some point.

http://bugzilla.kernel.org/show_bug.cgi?id=2560 has all details how it was 
solved in Linux - the comment #12 has link to the explanation and some 
comments later there are patches as well.

In FreeBSD these commits are relevant (during last two days, btw):

http://permalink.gmane.org/gmane.os.freebsd.devel.cvs.src/105079
http://permalink.gmane.org/gmane.os.freebsd.devel.cvs.src/105086
http://permalink.gmane.org/gmane.os.freebsd.devel.cvs.src/105100

I don't have exact pointers how Solaris solved the problem. Quick googling 
gave me this though:

http://opensolaris.org/os/project/tesla/Work/CPUPM/

"Solaris uses the local APIC timer to generate interrupts for the Cyclic 
Backend (CBE). The lAPIC timer in a CPU may stop counting and will not 
generate interrupts while the processor is in ACPI states C2 and C3. 
Ongoing work is being done to use the High Precision Event Timer (HPET) 
as a proxy for stalled lAPIC timers. The HPET is located on the chipset 
isolated from CPU C-State power side effects. CPU must schedule their 
next CBE interrupt on the HPET when they enter a deep C-state."


-- 
Hasso Tepper





More information about the Commits mailing list