]> git.baikalelectronics.ru Git - kernel.git/commit
x86-64: Disable local APIC timer use on AMD systems with C1E
authorThomas Gleixner <tglx@linutronix.de>
Tue, 25 Sep 2007 19:37:01 +0000 (21:37 +0200)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 26 Sep 2007 16:22:04 +0000 (09:22 -0700)
commitc4fba89d6822da05be7c248c28c84544da186745
treecf50f5de13363f37c19947e5ffce7dbee6624598
parent1e85800635bbe5271bcaa72deed083ba2a38d8e5
x86-64: Disable local APIC timer use on AMD systems with C1E

commit 667bc16b5e4cb54a7bd12ec0038a2edb5d9ba574 titled

 [PATCH] x86-64: Disable local APIC timer use on AMD systems with C1E

solves a problem with AMD dual core laptops e.g. HP nx6325 (Turion 64
X2) with C1E enabled:

When both cores go into idle at the same time, then the system switches
into C1E state, which is basically the same as C3. This stops the local
apic timer.

This was debugged right after the dyntick merge on i386 and despite the
patch title it fixes only the 32 bit path.

x86_64 is still missing this fix. It seems that mainline is not really
affected by this issue, as the PIT is running and keeps jiffies
incrementing, but that's just waiting for trouble.

-mm suffers from this problem due to the x86_64 high resolution timer
patches.

This is a quick and dirty port of the i386 code to x86_64.

I spent quite a time with Rafael to debug the -mm / hrt wreckage until
someone pointed us to this. I really had forgotten that we debugged this
half a year ago already.

Sigh, is it just me or is there something yelling arch/x86 into my ear?

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86_64/kernel/setup.c
include/asm-x86_64/apic.h