lkml.org 
[lkml]   [2009]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: 2.6.31-rc5 regression: x86 MCE malfunction on Thinkpad T42p
From
Date
Johannes Stezenbach <js@sig21.net> writes:

> Hi,
>
> I'm currently running linux-2.6.31-rc5-246-g90bc1a6 on
> an old Thinkpad T42p. During boot I get the following:

Thanks for the report.

>
> Local APIC disabled by BIOS -- you can enable it with "lapic"
> APIC: disable apic facility
> ...
> mce: CPU supports 5 MCE banks
> Disabling lock debugging due to kernel taint
> ------------[ cut here ]------------
> WARNING: at arch/x86/kernel/apic/apic.c:247 native_apic_write_dummy+0x2d/0x39()
> Hardware name: 2373Y4M
> Modules linked in:
> Pid: 0, comm: swapper Tainted: G M 2.6.31-rc5 #1

The mcelog below is already worked around with Bart's patch he posted
the link to (it's really a BIOS bug in your case that the BIOS leaves
junks in the machine check registers on boot)

[for the x86 maintainers:]
One thing that would be good to make sure that Bart's patch is queued
for .31 too, not only for .32, since this BIOS problem seems
to be common (already two reports)

But still need to fix that warning too, which is independent
[another .31 candidate]

> Call Trace:
> [<c10248c1>] warn_slowpath_common+0x60/0x90
> [<c10248fe>] warn_slowpath_null+0xd/0x10
> [<c1013139>] native_apic_write_dummy+0x2d/0x39
> [<c100dcd2>] intel_init_thermal+0xb6/0x144
> [<c100d517>] ? mce_init+0x33/0xb0
> [<c100db4b>] mce_intel_feature_init+0xb/0x4c
> [<c14fc31e>] mcheck_init+0x1e2/0x253
> [<c14faef4>] identify_cpu+0x30b/0x31b
> [<c14d9af0>] identify_boot_cpu+0xd/0x23
> [<c14d9b3c>] check_bugs+0xb/0xd4
> [<c104f929>] ? delayacct_init+0x42/0x49
> [<c14d493c>] start_kernel+0x25e/0x26d
> [<c14d430b>] i386_start_kernel+0x65/0x6a
> ---[ end trace 4eaa2a86a8e2da22 ]---


The appended patch should remove the warning. Can you please test it?

> 2.6.29.1 doesn't log any MCE events, so I doubt this is a HW problem.

It actually is a BIOS bug, but not really broken hardware.

-Andi

---
Don't try to enable thermal throttling on 32bit systems without apic

When the local APIC isn't enabled don't try to enable thermal throttling.
The APIC writes would WARN_ON.

Fixes

> Disabling lock debugging due to kernel taint
> ------------[ cut here ]------------
> WARNING: at arch/x86/kernel/apic/apic.c:247 native_apic_write_dummy+0x2d/0x39()
> Hardware name: 2373Y4M
> Modules linked in:
> Pid: 0, comm: swapper Tainted: G M 2.6.31-rc5 #1

Originally reported by Johannes Stezenbach

This is a 2.6.31 candidate because it fixes a regression.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

---
arch/x86/kernel/cpu/mcheck/therm_throt.c | 3 +++
1 file changed, 3 insertions(+)
Index: linux/arch/x86/kernel/cpu/mcheck/therm_throt.c
===================================================================
--- linux.orig/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ linux/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -236,6 +236,9 @@ void intel_init_thermal(struct cpuinfo_x
int tm2 = 0;
u32 l, h;

+ if (!cpu_has_apic || disable_apic)
+ return;
+
/* Thermal monitoring depends on ACPI and clock modulation*/
if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC))
return;


--
ak@linux.intel.com -- Speaking for myself only.


\
 
 \ /
  Last update: 2009-08-10 12:35    [W:0.142 / U:0.012 seconds]
©2003-2011 Jasper Spaans. Advertise on this site