Re: Fatal trap 12: page fault while in kernel mode

From: Noriyoshi Kawano <bowie_at_nrik.jp>
Date: Mon, 21 Jul 2003 17:59:39 +0900
Hi,

I have similar problem.
disable re-route interrupts.
It's works fine.

--- /sys/dev/pci/pci.c.orig	Tue Jul  1 23:08:32 2003
+++ /sys/dev/pci/pci.c	Mon Jul 21 11:04:55 2003
_at__at_ -800,7 +800,7 _at__at_
 	}
 
 	if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) {
-#if defined(__ia64__) || (defined(__i386__) && !defined(SMP))
+#if defined(__ia64__)
 		/*
 		 * Try to re-route interrupts. Sometimes the BIOS or
 		 * firmware may leave bogus values in these registers.


At Mon, 21 Jul 2003 10:40:09 +0200 (CEST),
Bjoern A. Zeeb wrote:
> 
> Hi,
> 
> while booting a 5.1REL kernel on that machine is fine, booting HEAD
> results in...
> 
> --- cut ---
> Copyright (c) 1992-2003 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD 5.1-CURRENT #0: Mon Jul 21 08:13:36 UTC 2003
>     bz_at_xxxx.xxxxxxx.xx:/u2/src/obj/u2/src/HEAD/src/sys/HAUKI-20030718-01
> Preloaded elf kernel "/boot/kernel/kernel" at 0xc0593000.
> Preloaded elf module "/boot/kernel/linux.ko" at 0xc05930d8.
> Preloaded elf module "/boot/kernel/snd_pcm.ko" at 0xc0593184.
> Preloaded elf module "/boot/kernel/snd_ich.ko" at 0xc0593230.
> Timecounter "i8254"  frequency 1193182 Hz
> Timecounter "TSC"  frequency 996768803 Hz
> CPU: Intel Pentium III (996.77-MHz 686-class CPU)
>   Origin = "GenuineIntel"  Id = 0x686  Stepping = 6
>   Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
> real memory  = 536870912 (512 MB)
> avail memory = 515473408 (491 MB)
> Pentium Pro MTRR support enabled
> npx0: <math processor> on motherboard
> npx0: INT 16 interface
> pcibios: BIOS version 2.10
> Using $PIR table, 10 entries at 0xc00e8790
> pcib0: <Intel 82815 (i815 GMCH) Host To Hub bridge> at pcibus 0 on motherboard
> pci0: <PCI bus> on pcib0
> pci_cfgintr: 0:31 INTD BIOS irq 10
> pci_cfgintr: 0:31 INTB BIOS irq 11
> agp0: <Intel 82815 (i815 GMCH) host to PCI bridge> mem 0x48000000-0x4bffffff at device 0.0 on pci0
> pcib1: <PCI-PCI bridge> at device 1.0 on pci0
> pci1: <PCI bus> on pcib1
> 
> 
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x240
> fault code              = supervisor read, page not present
> instruction pointer     = 0x8:0xc0395ab4
> stack pointer           = 0x10:0xc05b5836
> frame pointer           = 0x10:0xc05b587a
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 0 (swapper)
> kernel: type 12 trap, code=0
> Stopped at      trap+0x414:     testb   $0x10,0x240(%eax)
> db> x 0xc0395ab4
> trap+0x414:     24080f6
> db> trace
> trap(b0018,58c00010,c05b0010,c150050a,c039d82d) at trap+0x414
> calltrap() at calltrap+0x5
> --- trap 0x9, eip = 0xc00e8a14, esp = 0xc05b58c2, ebp = 0xc05b58f4 ---
> kernbase(c0381ece,8,c05b5940,0,1) at 0xc00e8a14
> (null)(50a,c05b596c,c039d82d,c1507700,c1507500) at 0x80246
> db> panic
> panic: from debugger
> Debugger("panic")
> 
> 
> Fatal trap 3: breakpoint instruction fault while in kernel mode
> instruction pointer     = 0x8:0xc0384734
> stack pointer           = 0x10:0xc05b55b6
> frame pointer           = 0x10:0xc05b55c2
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = IOPL = 0
> current process         = 0 (swapper)
> Stopped at      trap+0x414:     testb   $0x10,0x240(%eax)
> db> reset
> --- cut ---
> 
> done a gdb -k kernel.debug I get this:
> 
> --- cut ---
> (kgdb) l *0xc0395ab4
> 0xc0395ab4 is in trap (/u2/src/HEAD/src/sys/i386/i386/trap.c:472).
> 467                                     break;
> 468
> 469                             /* FALL THROUGH */
> 470
> 471                     case T_SEGNPFLT:        /* segment not present fault */
> 472                             if (PCPU_GET(curpcb)->pcb_flags & PCB_VM86CALL)
> 473                                     break;
> 474
> 475                             /*
> 476                              * Invalid %fs's and %gs's can be created using
> (kgdb) q
> --- cut ---
> 
> Any ideas ? Anything I might try ?
> 
> PS: though calling panic I do not get crashdumps.
> 
> -- 
> Greetings
> 
> Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT
> 56 69 73 69 74				http://www.zabbadoz.net/
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 
Received on Sun Jul 20 2003 - 23:59:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:16 UTC