Date: Wed, 21 Feb 2001 14:38:44 -0800 (PST) From: Yevgeniy Aleynikov <eugenea@go2net.com> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/25264: Kernel trap 12 in camisr Message-ID: <Pine.LNX.3.96.1010221143653.17437A-100000@hunches.go2net.com>
next in thread | raw e-mail | index | archive | help
>Number: 25264 >Category: kern >Synopsis: Kernel trap 12 in camisr >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Feb 21 14:40:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: Eugene Aleynikov >Release: FreeBSD 4.2-RELEASE i386 >Organization: Go2net >Environment: Standard BSDi X-treme server - Intel L440GX+ m/b dmesg.boot: Copyright (c) 1992-2000 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 4.2-RELEASE #5: Tue Feb 20 12:37:46 PST 2001 user@domain.com:/usr/src/sys/compile/HMV Timecounter "i8254" frequency 1193182 Hz CPU: Pentium III/Pentium III Xeon/Celeron (796.54-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x683 Stepping = 3 Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CM OV,PAT,PSE36,PN,MMX,FXSR,SSE> real memory = 536805376 (524224K bytes) avail memory = 519602176 (507424K bytes) Programming 24 pins in IOAPIC #0 IOAPIC #0 intpin 2 -> irq 0 FreeBSD/SMP: Multiprocessor motherboard cpu0 (BSP): apic id: 1, version: 0x00040011, at 0xfee00000 cpu1 (AP): apic id: 0, version: 0x00040011, at 0xfee00000 io0 (APIC): apic id: 2, version: 0x00170011, at 0xfec00000 Preloaded elf kernel "kernel" at 0xc02ab000. Pentium Pro MTRR support enabled npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Intel 82443GX host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib2: <Intel 82443GX (440 GX) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib2 pcib3: <PCI to PCI bridge (vendor=1011 device=0023)> at device 15.0 on pci1 pci2: <PCI bus> on pcib3 fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x3000-0x303f mem 0xf4200000-0xf42f ffff,0xf4300000-0xf4300fff irq 20 at device 4.0 on pci2 fxp0: Ethernet address 00:02:b3:08:76:45 ahc0: <Adaptec aic7896/97 Ultra2 SCSI adapter> port 0x2000-0x20ff mem 0xf4100000 -0xf4100fff irq 19 at device 12.0 on pci0 aic7896/97: Wide Channel A, SCSI Id=7, 32/255 SCBs ahc1: <Adaptec aic7896/97 Ultra2 SCSI adapter> port 0x2400-0x24ff mem 0xf4101000 -0xf4101fff irq 19 at device 12.1 on pci0 aic7896/97: Wide Channel B, SCSI Id=7, 32/255 SCBs fxp1: <Intel Pro 10/100B/100+ Ethernet> port 0x2800-0x283f mem 0xf4000000-0xf40f ffff,0xf4102000-0xf4102fff irq 21 at device 14.0 on pci0 fxp1: Ethernet address 00:d0:b7:a9:c4:c6 isab0: <Intel 82371AB PCI to ISA bridge> at device 18.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel PIIX4 ATA33 controller> port 0x2860-0x286f at device 18.1 on pci 0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 pci0: <Intel 82371AB/EB (PIIX4) USB controller> at 18.2 irq 21 Timecounter "PIIX" frequency 3579545 Hz chip1: <Intel 82371AB Power management controller> port 0x1040-0x104f at device 18.3 on pci0 pci0: <Cirrus Logic GD5480 SVGA controller> at 20.0 pcib1: <Intel 82443GX host to AGP bridge> on motherboard pci3: <PCI bus> on pcib1 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> on isa0 sc0: VGA <16 virtual consoles, flags=0x0> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A, console sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold APIC_IO: Testing 8254 interrupt delivery APIC_IO: routing 8254 via IOAPIC #0 intpin 2 IP packet filtering initialized, divert disabled, rule-based forwarding enabled, default to accept, logging limited to 100 packets/entry by default DUMMYNET initialized (000608) Waiting 15 seconds for SCSI devices to settle SMP: AP CPU #1 Launched! sa0 at ahc1 bus 0 target 3 lun 0 sa0: <HP C1537A L005> Removable Sequential Access SCSI-2 device sa0: 10.000MB/s transfers (10.000MHz, offset 32) da1 at ahc0 bus 0 target 2 lun 0 da1: <WSI FLASHDISK 0223> Fixed Direct Access SCSI-2 device da1: 80.000MB/s transfers (40.000MHz, offset 31, 16bit), Tagged Queueing Enabled da1: 35003MB (71686272 512 byte sectors: 255H 63S/T 4462C) da0 at ahc0 bus 0 target 0 lun 0 da0: <SEAGATE ST39204LC 0006> Fixed Direct Access SCSI-3 device da0: 80.000MB/s transfers (40.000MHz, offset 63, 16bit), Tagged Queueing Enabled da0: 8750MB (17921835 512 byte sectors: 255H 63S/T 1115C) Mounting root from ufs:/dev/da0s1a WARNING: / was not properly dismounted ------------ Kernel config: makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols machine i386 #cpu I586_CPU cpu I686_CPU ident "HMV" # This may be set way to high. It might we worth trying it lower if we # are allocating too much of our resources for the kernel. maxusers 256 options INET #InterNETworking options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] # following available as modules #options MFS #Memory Filesystem #options UNION #Union 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 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 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 options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING #options ICMP_BANDLIM #Rate limit bad replies options PERFMON # To make an SMP kernel, the next two are needed options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O device isa device pci # Floppy drives device fdc0 at isa? port IO_FD1 irq 6 drq 2 device fd0 at fdc0 drive 0 device fd1 at fdc0 drive 1 # ATA and ATAPI devices device ata0 at isa? port IO_WD1 irq 14 device ata1 at isa? port IO_WD2 irq 15 device ata #device atadisk # ATA disk drives device atapicd # ATAPI CDROM drives device atapifd # ATAPI floppy drives device atapist # ATAPI tape drives options ATA_STATIC_ID #Static device numbering #options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices # SCSI Controllers # A single entry for any of these devices (ncr, ahb, ahc) is # sufficient for any number of installed devices. device ahc # AHA2940 and onboard AIC7xxx devices device bt0 at isa? # SCSI peripherals # Only one of each of these is needed, they are dynamically allocated. device scbus # SCSI bus (required) device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI) # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD device atkbd0 at atkbdc? irq 1 # flags 0x1 device psm0 at atkbdc? irq 12 device vga0 at isa? # splash screen/screen saver #pseudo-device splash # syscons is the default console driver, resembling an SCO console #device sc0 at isa? flags 0x100 device sc0 at isa? options SC_DISABLE_DDBKEY # disable `debug' key options SC_DISABLE_REBOOT # disable reboot key sequence #options SC_MOUSE_CHAR=0x3 # char code for text mode mouse cursor options SC_NO_CUTPASTE options SC_NO_FONT_LOADING options SC_NO_SYSMOUSE # Floating point support - do not disable. device npx0 at nexus? port IO_NPX irq 13 # Serial (COM) ports device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? port IO_COM2 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? irq 7 device ppbus # Parallel port bus (required) #device lpt # Printer #device plip # TCP/IP over parallel #device ppi # Parallel port interface device #device vpo # Requires scbus and da # PCI Ethernet NICs. device fxp # Intel EtherExpress PRO/100B (82557, 82558) # Pseudo devices - the number indicates how many units to allocated. pseudo-device loop # Network loopback pseudo-device ether # Ethernet support # Jack this up just in case we have lots of automated stuff doing work. pseudo-device pty # Pseudo-ttys (telnet etc) pseudo-device gzip # Exec gzipped a.out's # The `bpf' 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 bpf #Berkeley packet filter # We need to service many network requests. This should probably be tuned # better to more closely fit our needs. options NMBCLUSTERS=12288 # Set the number of PV entries per process. Increasing this can # stop panics related to heavy use of shared memory. However, that can # (combined with large amounts of physical memory) cause panics at # boot time due the kernel running out of VM space. # # If you're tweaking this, you might also want to increase the sysctls # "vm.v_free_min", "vm.v_free_reserved", and "vm.v_free_target". # # The value below is the one more than the default. # #options PMAP_SHPGPERPROC=201 options PMAP_SHPGPERPROC=401 options QUOTA options IPFIREWALL #firewall options IPFIREWALL_VERBOSE #print information about options IPFIREWALL_FORWARD #enable transparent proxy support options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default options DUMMYNET #kldstat Id Refs Address Size Name 1 2 0xc0100000 1a9ac0 kernel 2 1 0xc35b5000 4000 null.ko (there's one nullfs mount) >Description: Several times a day kernel crashes with following diag. Cant find coredump because SCSI system is not functioning during crash. login: panic: lockmgr: pid 64908, not exclusive lock holder 380 unlocking mp_lock = 00000001; cpuid = 0; lapic.id = 01000000 boot() called on cpu#0 syncing disks... 203 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 giving up on 202 buffers Uptime: 15h47m27s (da1:ahc0:0:2:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0 (da1:ahc0:0:2:0): ILLEGAL REQUEST asc:20,0 (da1:ahc0:0:2:0): Invalid command operation code dumping to dev #da/0x20001, offset 1048704 dump Fatal trap 12: page fault while in kernel mode mp_lock = 00000002; cpuid = 0; lapic.id = 01000000 fault virtual address = 0x0 fault code = supervisor write, page not present instruction pointer = 0x8:0xc0121968 stack pointer = 0x10:0xdbc0095c frame pointer = 0x10:0xdbc0096c 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 = 64908 (httpd) interrupt mask = net tty bio cam <- SMP: XXX trap number = 12 panic: page fault mp_lock = 00000002; cpuid = 0; lapic.id = 01000000 boot() called on cpu#0 Uptime: 15h47m28s Fatal trap 12: page fault while in kernel mode mp_lock = 00000003; cpuid = 0; lapic.id = 01000000 fault virtual address = 0x10 fault code = supervisor read, page not present instruction pointer = 0x8:0xc0121a84 stack pointer = 0x10:0xdbc00578 frame pointer = 0x10:0xdbc0058c 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 = 64908 (httpd) interrupt mask = net tty bio cam <- SMP: XXX trap number = 12 panic: page fault mp_lock = 00000003; cpuid = 0; lapic.id = 01000000 boot() called on cpu#0 Uptime: 15h47m28s Fatal trap 12: page fault while in kernel mode mp_lock = 00000004; cpuid = 0; lapic.id = 01000000 fault virtual address = 0x10 fault code = supervisor read, page not present instruction pointer = 0x8:0xc0121a84 stack pointer = 0x10:0xdbc00194 frame pointer = 0x10:0xdbc001a8 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 = 64908 (httpd) interrupt mask = net tty bio cam <- SMP: XXX trap number = 12 panic: page fault mp_lock = 00000004; cpuid = 0; lapic.id = 01000000 boot() called on cpu#0 Uptime: 15h47m28s --------skipped several traps with the same instruction pointer----- (kgdb) x/i 0xc0121968 0xc0121968 <camisr+200>: mov %eax,(%edx) (kgdb) list *0xc0121968 0xc0121968 is in camisr (../../cam/cam_queue.h:224). 219 220 static __inline void 221 cam_ccbq_ccb_done(struct cam_ccbq *ccbq, union ccb *done_ccb) 222 { 223 TAILQ_REMOVE(&ccbq->active_ccbs, &done_ccb->ccb_h, 224 xpt_links.tqe); 225 ccbq->dev_active--; 226 ccbq->dev_openings++; 227 ccbq->held++; 228 } (kgdb) x/i 0xc0121a84 0xc0121a84 <camisr+484>: pushl (%eax) (kgdb) list *0xc0121a84 0xc0121a84 is in camisr (../../cam/cam_xpt.c:6332). 6327 } else if (runq) { 6328 xpt_run_dev_sendq(ccb_h->path->bus); 6329 } 6330 6331 /* Call the peripheral driver's callback */ 6332 (*ccb_h->cbfcnp)(ccb_h->path->periph, (union ccb *)ccb_h); 6333 6334 /* Raise IPL for while test */ 6335 s = splcam(); 6336 } ---------- There's another server also that crashes similar way. SCSI is terminated propertly. SCSI tape (SE device) is on the second SCSI bus alone. >How-To-Repeat: Just keep it running under heavy user load (web+cgi). >Fix: None >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?Pine.LNX.3.96.1010221143653.17437A-100000>