After the recent discussion on stable@, I decided to try ULE again.
When attempting to log into Squirrelmail on my RELENG_5 server (sources
from late Wednesday night), I got the following panic:
Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address = 0x150
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc04e1152
stack pointer = 0x10:0xe4de1a4c
frame pointer = 0x10:0xe4de1a70
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = resume, IOPL = 0
current process = 36 (swi1: net)
Although I have KDB and DDB configured (see attached kernel config
file), I was unable to enter DDB via Ctrl+Alt+Esc. It just hung at the
panic message. Any tips on how to get DDB to work? On a related note,
I guess swap on gmirror cannot be a dumpdev:
dumpon: ioctl(DIOCSKERNELDUMP): Operation not supported
swapon: adding /dev/mirror/mirror0s1b as swap device
In any case, here's what I got out of gdb:
(gdb) l *0xc04e1152
0xc04e1152 is in sched_add_internal (/usr/src/sys/kern/sched_ule.c:1696).
1691
1692 CTR5(KTR_SCHED, "sched_add: %p(%s) prio %d by %p(%s)",
1693 td, td->td_proc->p_comm, td->td_priority,
curthread,
1694 curthread->td_proc->p_comm);
1695 mtx_assert(&sched_lock, MA_OWNED);
1696 ke = td->td_kse;
1697 kg = td->td_ksegrp;
1698 if (ke->ke_flags & KEF_ASSIGNED) {
1699 if (ke->ke_flags & KEF_REMOVED) {
1700 SLOT_USE(ke->ke_ksegrp);
I use Squirrelmail only for convenience, so I'll leave the config as is
in case anyone can help me debug further. Note that this is
reproducible *every* time I login to Squirrelmail (click "login" and
near instant panic -- sometimes the page starts to load, but never
finishes). IMAP access through Thunderbird works perfectly.
Thanks,
Jon
P.S. The gmirror errors at the bottom of the dmesg are due to a failed
drive that is being RMA'd. I feel very vulnerable now... ;-)
-------------- next part --------------
#
# OPTIMATOR -- Optimator kernel configuration file
# version 4.0
# 2005/02/10
#
machine i386
cpu I686_CPU
ident OPTIMATOR
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options SCHED_ULE # ULE scheduler
#options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
# Debugging for use in -current
options KDB # Enable kernel debugger support.
options KDB_TRACE # Print a stack trace of the current thread on the console
for a panic.
options DDB # Support DDB.
options GDB # Support remote GDB.
#options INVARIANTS # Enable calls of extra sanity checking
#options INVARIANT_SUPPORT # Extra sanity checks of internal structures,
required by INVARIANTS
#options WITNESS # Enable checks to detect deadlocks and cycles
#options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
# Zero copy sockets support. This enables "zero copy" for sending and
# receving data via a socket. The send side works for any type of NIC,
# the receive side only works for NICs that support MTUs greater than the
# page size of your architecture and that support header splitting. See
# zero_copy(9) for more details.
options ZERO_COPY_SOCKETS
# Increase HZ
options HZ=1000 # set granularity of operation to 1ms
# To make an SMP kernel, the next two are needed
options SMP # Symmetric MultiProcessor Kernel
device apic # I/O APIC
# Bus support. Do not remove isa, even if you have no isa slots
device isa
device pci
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
options ATA_STATIC_ID # Static device numbering
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# Floating point support - do not disable.
device npx
# Power management support (see NOTES for more options)
#device apm
# Add suspend/resume support for the i8254.
device pmtimer
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
# PCI Ethernet NICs.
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these
NICs!
#device miibus # MII bus support
#device dc # DEC/Intel 21143 and various workalikes
# Pseudo devices - the number indicates how many units to allocate.
device loop # Network loopback
device mem # Memory and kernel memory devices
device io # I/O device
device random # Entropy device
device ether # Ethernet support
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device bpf # Berkeley packet filter
-------------- next part --------------
GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2005 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.3-STABLE #4: Fri Feb 11 20:55:47 CST 2005
root@optimator.noacks.org:/usr/obj/usr/src/sys/OPTIMATOR
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel Pentium III (931.81-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 = 1072693248 (1023 MB)
avail memory = 1040175104 (991 MB)
ACPI APIC Table: <VIA694 >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 1
ACPI: overriding DSDT/SSDT with custom table
ACPI-0377: *** Info: Table [DSDT] replaced by host OS
ioapic0 <Version 1.1> irqs 0-23 on motherboard
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <VIA694 AWRDACPI> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU (3 Cx states)> on acpi0
cpu1: <ACPI CPU (3 Cx states)> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port
0x6000-0x607f,0x5000-0x500f,0x4080-0x40ff,0x4000-0x407f,0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 82C691 (Apollo Pro) host to PCI bridge> mem
0xd0000000-0xd3ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C686B UDMA100 controller> port
0xc000-0xc00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 7.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pci0: <bridge, PCI-unknown> at device 7.4 (no driver attached)
em0: <Intel(R) PRO/1000 Network Connection, Version - 1.7.35> port
0xcc00-0xcc3f mem 0xd9000000-0xd901ffff,0xd9020000-0xd903ffff irq 17 at device
11.0 on pci0
em0: Ethernet address: 00:07:e9:0d:67:2c
em0: Speed:N/A Duplex:N/A
pci0: <network, ethernet> at device 12.0 (no driver attached)
atapci1: <HighPoint HPT370 UDMA100 controller> port
0xe400-0xe4ff,0xe000-0xe003,0xdc00-0xdc07,0xd800-0xd803,0xd400-0xd407 irq 18 at
device 14.0 on pci0
ata2: channel #0 on atapci1
ata3: channel #1 on atapci1
fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on
acpi0
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on
acpi0
sio0: type 16550A, console
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xd4000-0xd4fff,0xc0000-0xcffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
Timecounters tick every 1.000 msec
ad6: 190782MB <HDS722525VLAT80/V36OA60A> [387621/16/63] at ata3-master
UDMA100
GEOM_MIRROR: Device mirror0 created (id=1722699553).
GEOM_MIRROR: Device mirror0: provider ad6 detected.
GEOM_MIRROR: Force device mirror0 start due to timeout.
GEOM_MIRROR: Device mirror0: provider ad6 activated.
GEOM_MIRROR: Device mirror0: provider mirror/mirror0 launched.
SMP: AP CPU #1 Launched!
Mounting root from ufs:/dev/mirror/mirror0s1a
WARNING: / was not properly dismounted
em0: Link is up 1000 Mbps Full Duplex