On Tuesday, February 14, 2012 7:57:50 am TAKAHASHI Yoshihiro wrote:
> In article <201202131308.48171....@freebsd.org>
> John Baldwin <j...@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
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to