Date: Tue, 18 Apr 2000 05:17:46 -0700 (PDT) From: g.w.roberts@bangor.ac.uk To: freebsd-gnats-submit@FreeBSD.org Subject: kern/18074: Fatal trap 12: page fault while in kernel mode Message-ID: <200004181217.FAA70532@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 18074 >Category: kern >Synopsis: Fatal trap 12: page fault while in kernel mode >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Apr 18 05:20:00 PDT 2000 >Closed-Date: >Last-Modified: >Originator: G W Roberts >Release: 3.4-RELEASE >Organization: Mathematics, Univ of Wales, Bangor >Environment: FreeBSD maths02.bangor.ac.uk 3.4-RELEASE FreeBSD 3.4-RELEASE #1: Mon Apr 17 19:04:02 BST 2000 root@maths02.bangor.ac.uk:/usr/src/sys/compile/MATHS02 i386 >Description: This machine is a print server only. Running the periodic/weekly script at 3:30 am on Saturday mornings leaves the machine in a bad state. Usually it panics (page fault) and locks up on syncing disks or succeeds in rebooting, sometimes the process dies and the machine soldiers on uselessly until it gets rebooted. Here's what on the console when it locks: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x18c fault code = supervisor read, page not present instruction pointer = 0x8:0xc0208186 stack pointer = 0x10:0xc0228nnn frame pointer = 0xc10:0xc0228nnn code segment = base 0x0, limit 0xfffff, type 0x16 = DPL 0 , pres 1 def32 1, gran 1 processor eflags = interrupt enable, resume, IOPL=0 current process = Idle interrupt mask = bio trap number = 12 panic: page fault syncing disks... It panics whilst running the makewhatis perl script called from the /etc/periodic/weekly cron job. The call sequence is /etc/periodic/weekly/320.whatis /usr/libexec/makewhatis.local /usr/bin/makewhatis /usr/bin/perl To investigate further, I decided to recompile the kernel with "options DDB". However, the problem then disappears! So now I have two kernels with the only difference between them being the presence of the kernel debugger; the one without DDB panics, the one with DDB does not. The kernel config is essentially just GENERIC with all unwanted device drivers removed and two extra ppc devices inserted. I have some basic questions: Is this a bad bug in the VM software? (I've seen similar errors on 3.2-RELEASE on system shutdown, but they haven't been critical to us.) Is it related to the other similar kern PRs I've found which have status "o": 10397, 10542, 11330, 11196, 15644, 16890, 4186, 5975, 9961, 11266, 17680, 17961 I understand that the VM system has been rewritten for FreeBSD 4.0 which perhaps explains why the above PRs are still at status "o". Is it advisable to go to 4.0-RELEASE? My faith in the reliability of FreeBSD has been undermined since 2.2.8 and I would like to know whether there is anything I can do or any way I can help in order to restore it. I am not a professional system programmer or administrator, rather a fairly advanced user. I have workarounds, but they are not fixes to what appears to be a critical bug which could easily reoccur given the right circumstances. I append the dmesg and kernel config files: Copyright (c) 1992-1999 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.4-RELEASE #1: Mon Apr 17 19:04:02 BST 2000 root@maths02.bangor.ac.uk:/usr/src/sys/compile/MATHS02 Timecounter "i8254" frequency 1193182 Hz CPU: Cyrix 486DX4 (486-class CPU) Origin = "CyrixInstead" DIR=0x361f Stepping=3 Revision=6 real memory = 16777216 (16384K bytes) config> en ed0 config> po ed0 0x300 config> ir ed0 5 config> iom ed0 0xca000 config> f ed0 0 config> q avail memory = 13881344 (13556K bytes) Preloaded elf kernel "kernel" at 0xc02aa000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc02aa09c. Probing for devices on PCI bus 0: chip0: <SiS 85c496> rev 0x31 on pci0.5.0 Probing for PnP devices: Probing for devices on the ISA bus: sc0 on isa sc0: MDA/Hercules <16 virtual consoles, flags=0x0> ed0 at 0x300-0x31f irq 5 maddr 0xca000 msize 8192 on isa ed0: address 00:00:c0:03:b3:25, type WD8003EP (8 bit) atkbdc0 at 0x60-0x6f on motherboard atkbd0 irq 1 on isa psm0 not found sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A ppc0 at 0x3bc irq 7 flags 0x40 on isa ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode ppb0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: ppbus0: <Hewlett-Packard HP LaserJet 6L/0101.01> PRINTER HP ENHANCED PCL5,PJL lpt0: <generic printer> on ppbus 0 lpt0: Interrupt-driven port ppi0: <generic parallel i/o> on ppbus 0 plip0: <PLIP network interface> on ppbus 0 ppc1 at 0x378 flags 0x40 on isa ppc1: Generic chipset (NIBBLE-only) in COMPATIBLE mode ppb1: IEEE1284 device found /NIBBLE/ECP Probing for PnP devices on ppbus1: ppbus1: <HEWLETT-PACKARD DESKJET 895C> MLC,PCL,PML lpt1: <generic printer> on ppbus 1 ppi1: <generic parallel i/o> on ppbus 1 ppc2 at 0x278 flags 0x40 on isa ppc2: Generic chipset (NIBBLE-only) in COMPATIBLE mode lpt2: <generic printer> on ppbus 2 ppi2: <generic parallel i/o> on ppbus 2 fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: FIFO enabled, 8 bytes threshold fd0: 1.44MB 3.5in wdc0 at 0x1f0-0x1f7 irq 14 on isa wdc0: unit 0 (wd0): <WDC AC2635F> wd0: 610MB (1249920 sectors), 1240 cyls, 16 heads, 63 S/T, 512 B/S wdc1 not found at 0x170 vga0 at 0x3b0-0x3bb maddr 0xb0000 msize 32768 on isa npx0 on motherboard npx0: INT 16 interface changing root device to wd0s1a #gwr FreeBSD-3.4 maths02 printer server # # GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.freebsd.org/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.143.2.24 1999/12/05 01:56:42 luoqi Exp $ machine "i386" #gwr cpu "I386_CPU" cpu "I486_CPU" cpu "I586_CPU" cpu "I686_CPU" #gwr ident GENERIC ident "MATHS02" maxusers 32 options DDB # Enable the kernel debugger. #makeoptions DEBUG="-g" #Build kernel with debug symbols. options MATH_EMULATE #Support for x87 emulation options INET #InterNETworking options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] options MFS #Memory Filesystem options MFS_ROOT #MFS usable as root device, "MFS" req'ed options NFS #Network Filesystem options NFS_ROOT #NFS usable as root device, "NFS" req'ed options MSDOSFS #MSDOS Filesystem options "CD9660" #ISO 9660 Filesystem options "CD9660_ROOT" #CD-ROM usable as root. "CD9660" req'ed options PROCFS #Process filesystem options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=15000 #Be pessimistic about Joe SCSI device options UCONSOLE #Allow users to grab the console options FAILSAFE #Be conservative options USERCONFIG #boot -c editor options VISUAL_USERCONFIG #visual boot -c editor options KTRACE #ktrace(1) syscall trace support options SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores config kernel root on wd0 # To make an SMP kernel, the next two are needed #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O # Optionally these may need tweaked, (defaults shown): #options NCPU=2 # number of CPUs #options NBUS=4 # number of busses #options NAPIC=1 # number of IO APICs #options NINTR=24 # number of INTs controller isa0 controller pnp0 # PnP support for ISA controller eisa0 controller pci0 # Floppy drives controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 # IDE controller and disks options "CMD640" # work around CMD640 chip deficiency controller wdc0 at isa? port "IO_WD1" bio irq 14 disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller wdc1 at isa? port "IO_WD2" bio irq 15 disk wd2 at wdc1 drive 0 disk wd3 at wdc1 drive 1 # ATAPI devices options ATAPI #Enable ATAPI support for IDE bus options ATAPI_STATIC #Don't do it as an LKM device acd0 #IDE CD-ROM device wfd0 #IDE Floppy (e.g. LS-120) # SCSI Controllers # A single entry for any of these controllers (ncr, ahb, ahc) is # sufficient for any number of installed devices. #gwr controller ncr0 # NCR/Symbios Logic #gwr controller ahb0 # EISA AHA1742 family #gwr controller ahc0 # AHA2940 and onboard AIC7xxx devices #gwr controller amd0 # AMD 53C974 (Teckram DC-390(T)) #gwr controller isp0 # Qlogic family #gwr controller dpt0 # DPT Smartcache - See LINT for options! #gwr controller adv0 at isa? port ? cam irq ? #gwr controller adw0 #gwr controller bt0 at isa? port ? cam irq ? #gwr controller aha0 at isa? port ? cam irq ? #gwr controller aic0 at isa? port ? cam irq ? # SCSI peripherals # Only one of each of these is needed, they are dynamically allocated. #gwr controller scbus0 # SCSI bus (required) #gwr device da0 # Direct Access (disks) #gwr device sa0 # Sequential Access (tape etc) #gwr device cd0 # CD #gwr device pass0 # Passthrough device (direct SCSI) # Proprietary or custom CD-ROM Interfaces #gwr device wt0 at isa? port 0x300 bio irq 5 drq 1 #gwr device mcd0 at isa? port 0x300 bio irq 10 #gwr device matcd0 at isa? port 0x230 bio #gwr device scd0 at isa? port 0x230 bio # atkbdc0 controls both the keyboard and the PS/2 mouse controller atkbdc0 at isa? port IO_KBD tty device atkbd0 at isa? tty irq 1 device psm0 at isa? tty irq 12 device vga0 at isa? port ? conflicts # splash screen/screen saver pseudo-device splash # syscons is the default console driver, resembling an SCO console device sc0 at isa? tty # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? tty #options XSERVER # support for X server #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std # Floating point support - do not disable. device npx0 at isa? port IO_NPX irq 13 # Power management support (see LINT for more options) device apm0 at isa? disable flags 0x31 # Advanced Power Management # PCCARD (PCMCIA) support #controller card0 #device pcic0 at card? #device pcic1 at card? # Serial (COM) ports device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4 device sio1 at isa? port "IO_COM2" tty irq 3 device sio2 at isa? disable port "IO_COM3" tty irq 5 device sio3 at isa? disable port "IO_COM4" tty irq 9 # Parallel port device ppc0 at isa? port? flags 0x40 tty irq 7 controller ppbus0 # Parallel port bus (required) device lpt0 at ppbus? # Printer device plip0 at ppbus? # TCP/IP over parallel device ppi0 at ppbus? # Parallel port interface device #controller vpo0 at ppbus? # Requires scbus and da0 # Parallel port 1 device ppc1 at isa? port? flags 0x40 tty controller ppbus1 # Parallel port bus (required) device lpt1 at ppbus1 # Printer # Parallel port 2 device ppc2 at isa? port? flags 0x40 tty controller ppbus2 # Parallel port bus (required) device lpt2 at ppbus2 # Printer # PCI Ethernet NICs. #gwr device al0 # ADMtek AL981 (``Comet'') #gwr device ax0 # ASIX AX88140A #gwr device de0 # DEC/Intel DC21x4x (``Tulip'') #gwr device fxp0 # Intel EtherExpress PRO/100B (82557, 82558) #gwr device mx0 # Macronix 98713/98715/98725 (``PMAC'') #gwr device pn0 # Lite-On 82c168/82c169 (``PNIC'') #gwr device rl0 # RealTek 8129/8139 #gwr device sf0 # Adaptec AIC-6915 DuraLAN (``Starfire'') #gwr device sis0 # Silicon Integrated Systems SiS 900/SiS 7016 #gwr device ste0 # Sundance ST201 (D-Link DFE-550) #gwr device tl0 # Texas Instruments ThunderLAN #gwr device tx0 # SMC 9432TX (83c170 ``EPIC'') #gwr device vr0 # VIA Rhine, Rhine II #gwr device vx0 # 3Com 3c590, 3c595 (``Vortex'') #gwr device wb0 # Winbond W89C840F #gwr device xl0 # 3Com 3c90x (``Boomerang'', ``Cyclone'') # ISA Ethernet NICs. # Order is important here due to intrusive probes, do *not* alphabetize # this list of network interfaces until the probes have been fixed. # Right now it appears that the ie0 must be probed before ep0. See # revision 1.20 of this file. #gwr device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000 device ed0 at isa? port 0x300 net irq 5 iomem 0xca000 #gwr device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000 #gwr device ep0 at isa? port 0x300 net irq 10 #gwr device ex0 at isa? port? net irq? #gwr device fe0 at isa? port 0x300 net irq ? #gwr device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 #gwr device lnc0 at isa? port 0x280 net irq 10 drq 0 #gwr device cs0 at isa? port 0x300 net irq ? # requires PCCARD (PCMCIA) support to be activated #device xe0 at isa? port? net irq ? # PCCARD NIC drivers. # ze and zp take over the pcic and cannot coexist with generic pccard # support, nor the ed and ep drivers they replace. #gwr device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000 #gwr device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 # Pseudo devices - the number indicates how many units to allocated. pseudo-device loop # Network loopback pseudo-device ether # Ethernet support pseudo-device sl 1 # Kernel SLIP pseudo-device ppp 1 # Kernel PPP pseudo-device tun 1 # Packet tunnel pseudo-device pty 16 # Pseudo-ttys (telnet etc) pseudo-device gzip # Exec gzipped a.out's # The `bpfilter' pseudo-device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # The number of devices determines the maximum number of # simultaneous BPF clients programs runnable. pseudo-device bpfilter 1 #Berkeley packet filter >How-To-Repeat: Just run /etc/periodic/weekly via cron at any time. >Fix: A full diagnosis and fix is way beyond me. I have found two basic workarounds to this instance of the problem: 1. disable the /etc/periodic/weekly/320.whatis script 2. recompile the kernel with DDB >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004181217.FAA70532>