Skip to contentSkip to conversation

Machine check expection panic

DISCUSSION [email protected] 3 participants 3 messages Aug 6, 2003 – Aug 7, 2003

lore
Share & tools
lore
#0 lore raw

I decided to try out the new 2.6.0-test2 kernel today but ran into a problem with booting it. I narrowed it down to the machine check expection code. I get this panic from the kernel on boot when I have it enabled

CPU0: Machine Check Exception: 0000000000000004
Bank0: f606200000000833 at 0000000000004040
Kernel Panic: CPU context corrupt.

I disabled this option in the kernel and recompiled and everything went smooth. I figured maybe there could actually possibly be something wrong with the CPU but I can boot with RedHat's 2.4.20-19 kernel fine which I *think* includes machine check exception code. I have no beef with leaving the exception code out but I figured someone on this list may want to know.

Little bit of hardware info:
Tyan 2466 motherboard
2 Athon MP 1200 processors

Steve

#1 lore raw
Quoted 8 lines · On Wed, Aug 06, 2003 at 04:35:33PM -0600, [email protected] wrote:

I decided to try out the new 2.6.0-test2 kernel today but ran into a problem with booting it. I narrowed it down to the machine check expection code. I get this panic from the kernel on boot when I have it enabled

CPU0: Machine Check Exception: 0000000000000004
Bank0: f606200000000833 at 0000000000004040
Kernel Panic: CPU context corrupt.

$ parsemce -b 0 -e 0000000000000004 -s f606200000000833 -a 0000000000004040
Status: (4) Machine Check in progress.
Restart IP invalid.
parsebank(0): f606200000000833 @ 4040
        External tag parity error
        Uncorrectable ECC error
        CPU state corrupt. Restart not possible
        Address in addr register valid
        Error enabled in control register
        Error not corrected.
        Error overflow
        Bus and interconnect error
        Participation: Local processor originated request
        Timeout: Request did not timeout
        Request: Generic error
        Transaction type : Instruction
        Memory/IO : Other

Looks like corruption with your L2 cache. Odds are its heat-related.

Quoted 10 lines

I disabled this option in the kernel and recompiled and everything went smooth. I figured maybe there could actually possibly be something wrong with the CPU but I can boot with RedHat's 2.4.20-19 kernel fine which I *think* includes machine check exception code. I have no beef with leaving the exception code out but I figured someone on this list may want to know.

Little bit of hardware info:
Tyan 2466 motherboard
2 Athon MP 1200 processors

Signature · 1 line
Matt Mackall : http://www.selenic.com : of or relating to the moon
#2 lore raw
In reply to [email protected]
Quoted 8 lines · On Wed, Aug 06, 2003 at 04:35:33PM -0600, [email protected] wrote:

I decided to try out the new 2.6.0-test2 kernel today but ran into a problem with booting it. I narrowed it down to the machine check expection code. I get this panic from the kernel on boot when I have it enabled

CPU0: Machine Check Exception: 0000000000000004
Bank0: f606200000000833 at 0000000000004040 Kernel Panic: CPU context corrupt.

Missing bugfix from the 2.4 kernel that never made it into 2.5. Chances are you (and many other Athlon users) are hitting problems because of this chunk..

Already pushed to Linus/Andrew.

Dave

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:
# ChangeSet 1.1055 -> 1.1056
# arch/i386/kernel/cpu/mcheck/k7.c 1.4 -> 1.5
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/08/06 [email protected] 1.1056

# stupid off by one
# --------------------------------------------
#
diff -Nru a/arch/i386/kernel/cpu/mcheck/k7.c b/arch/i386/kernel/cpu/mcheck/k7.c
--- a/arch/i386/kernel/cpu/mcheck/k7.c	Wed Aug  6 23:33:40 2003
+++ b/arch/i386/kernel/cpu/mcheck/k7.c	Wed Aug  6 23:33:40 2003
@@ -81,7 +81,7 @@
 		wrmsr (MSR_IA32_MCG_CTL, 0xffffffff, 0xffffffff);
 	nr_mce_banks = l & 0xff;

- for (i=0; i<nr_mce_banks; i++) {
+ for (i=1; i<nr_mce_banks; i++) {
wrmsr (MSR_IA32_MC0_CTL+4*i, 0xffffffff, 0xffffffff); wrmsr (MSR_IA32_MC0_STATUS+4*i, 0x0, 0x0);
}