Date: Tue, 14 Feb 2012 09:09:33 -0500 From: John Baldwin <jhb@freebsd.org> To: TAKAHASHI Yoshihiro <nyan@freebsd.org> Cc: current@freebsd.org Subject: Re: MCA UNCOR error Message-ID: <201202140909.33894.jhb@freebsd.org> In-Reply-To: <20120214.215750.343708041257791038.nyan@FreeBSD.org> References: <20120212.185549.343708041257811633.nyan@FreeBSD.org> <201202131308.48171.jhb@freebsd.org> <20120214.215750.343708041257791038.nyan@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, February 14, 2012 7:57:50 am TAKAHASHI Yoshihiro wrote: > In article <201202131308.48171.jhb@freebsd.org> > John Baldwin <jhb@freebsd.org> writes: > > > On Sunday, February 12, 2012 4:55:49 am TAKAHASHI Yoshihiro wrote: > >> I get the following error and kernel panic on my pc98 at the boot time. > >> > >> MCA: Bank 2, Status 0xb600000000140000 > >> MCA: Global Cap 0x0000000000000005, Status 0x0000000000000004 > >> MCA: Vendor "GenuineIntel", ID 0x616, APIC ID 0 > >> MCA: CPU 0 UNCOR PCC no error > >> MCA: Address 0x3446ff003446ff > >> > >> When I disable MCA with hw.mca.enabled=0 on loader prompt, the machine > >> works fine. Does it mean my pc98 is broken? Or other isssue? > >> > >> It's spec is: > >> > >> FreeBSD 10.0-CURRENT #5: Thu Feb 9 13:18:22 UTC 2012 > >> CPU: Pentium Pro (198.95-MHz 686-class CPU) > >> Origin = "GenuineIntel" Id = 0x616 Family = 6 Model = 1 Stepping = 6 > >> Features=0xf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV> > >> real memory = 134217728 (128 MB) > >> avail memory = 120471552 (114 MB) > > > > Interesting, that is odd to get an error with no error code. > > > > Can you tell from the stack trace if your CPU actually raised a machine check > > exception (trap 28)? > > I tested with debugger enabled kernel. > Please get from: > http://home.jp.freebsd.org/~nyan/mca-error1.jpg > http://home.jp.freebsd.org/~nyan/mca-error2.jpg > (Sorry for jpeg images) Humm. Try this: Index: x86/x86/mca.c =================================================================== --- mca.c (revision 231678) +++ mca.c (working copy) @@ -548,7 +548,12 @@ mca_scan(enum scan_mode mode) valid = mca_check_status(i, &rec); if (valid) { count++; - if (rec.mr_status & ucmask) { + /* + * Don't treat records that do not specify an + * error as unrecoverable. + */ + if ((rec.mr_status & MC_STATUS_MCA_ERROR) != 0 && + rec.mr_status & ucmask) { recoverable = 0; mca_log(&rec); } -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202140909.33894.jhb>