Hi.
I'm trying to get OpenBSD 4.4/i386 working on some new hardware, but I'm
getting uvm_fault and panic that are easily reproduced. I've tried both
4.4-release and 4.4-current but they both have the same problem (crash).
It seems the problem surfaces during heavy-ish disk I/O. I first noticed
it when I tried to extract ports.tar.gz after installation; it would run
for a while and then panic. Running CPU-intensive tasks such as `openssl
speed' works fine.
Since this is partly new hardware, I ran memtest86 for a while which passed,
and then installed another OS (Debian) which I tried to crash. Apart from
the initial shock of being back in Linux, I encountered no problems.
Output from a serial console session using November 26th snapshot:
Script started on Fri Nov 28 21:22:42 2008
$ sudo cu -l tty02 -s 9600
Connected
>> OpenBSD/i386 BOOT 3.02
boot>
booting hd0a:/bsd:
entry point at 0x200120
[ using 640716 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2008 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 4.4-current (GENERIC) #1511: Tue Nov 25 19:11:50 MST 2008
[EMAIL PROTECTED]:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Pentium(R) Dual-Core CPU E5200 @ 2.50GHz ("GenuineIntel" 686-class) 2.51
GHz
cpu0:
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,EST,TM2,CX16,xTPR
cpu0: unknown i686 EBL_CR_POWERON value 3 (0x430c0000)
real mem = 1072914432 (1023MB)
avail mem = 1029177344 (981MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 06/19/08, BIOS32 rev. 0 @ 0xf0010, SMBIOS
rev. 2.5 @ 0xf06d0 (66 entries)
bios0: vendor American Megatrends Inc. version "1001" date 06/19/2008
bios0: ASUSTeK Computer INC. P5B SE
acpi0 at bios0: rev 0
acpi0: tables DSDT FACP APIC MCFG OEMB
acpi0: wakeup devices P0P2(S4) P0P1(S4) PS2K(S4) PS2M(S4) UAR1(S4) USB0(S4)
EUSB(S4) USB5(S4) USBE(S4) P0P4(S4) P0P5(S4) P0P6(S4) P0P7(S4) P0P8(S4)
P0P9(S4) GBEC(S4) USB1(S4) USB2(S4) USB3(S4) USB4(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: unknown i686 EBL_CR_POWERON value 3 (0x430c0000)
cpu0: unknown i686 EBL_CR_POWERON value 3 (0x430c0000)
cpu0: apic clock running at 199MHz
cpu at mainbus0: not configured
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (P0P2)
acpiprt2 at acpi0: bus 5 (P0P1)
acpiprt3 at acpi0: bus 4 (P0P4)
acpiprt4 at acpi0: bus -1 (P0P5)
acpiprt5 at acpi0: bus 3 (P0P6)
acpiprt6 at acpi0: bus 2 (P0P7)
acpiprt7 at acpi0: bus -1 (P0P8)
acpiprt8 at acpi0: bus -1 (P0P9)
acpicpu0 at acpi0
acpibtn0 at acpi0: PWRB
bios0: ROM list: 0xc0000/0x8000 0xc8000/0x1000 0xc9000/0x3000
cpu0: EST: unknown system bus clock
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82G965 Host" rev 0x02
ppb0 at pci0 dev 1 function 0 "Intel 82G965 PCIE" rev 0x02: apic 2 int 16 (irq
11)
pci1 at ppb0 bus 1
ppb1 at pci0 dev 28 function 0 "Intel 82801H PCIE" rev 0x02: apic 2 int 17 (irq
5)
pci2 at ppb1 bus 4
ppb2 at pci0 dev 28 function 2 "Intel 82801H PCIE" rev 0x02: apic 2 int 18 (irq
15)
pci3 at ppb2 bus 3
ppb3 at pci0 dev 28 function 3 "Intel 82801H PCIE" rev 0x02: apic 2 int 19 (irq
10)
pci4 at ppb3 bus 2
jmb0 at pci4 dev 0 function 0 "JMicron JMB363 IDE/SATA" rev 0x03
ahci0 at jmb0: apic 2 int 19 (irq 10), AHCI 1.0
scsibus0 at ahci0: 32 targets, initiator 32
pciide0 at jmb0: DMA, channel 0 wired to native-PCI, channel 1 wired to
native-PCI
pciide0: using apic 2 int 19 (irq 10) for native-PCI interrupt
atapiscsi0 at pciide0 channel 0 drive 0
scsibus1 at atapiscsi0: 2 targets, initiator 7
cd0 at scsibus1 targ 0 lun 0: <PLEXTOR, CD-R PX-W4824A, 1.03> ATAPI 5/cdrom
removable
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
pciide0: channel 1 disabled (no drives)
uhci0 at pci0 dev 29 function 0 "Intel 82801H USB" rev 0x02: apic 2 int 23 (irq
7)
uhci1 at pci0 dev 29 function 1 "Intel 82801H USB" rev 0x02: apic 2 int 20 (irq
14)
ehci0 at pci0 dev 29 function 7 "Intel 82801H USB" rev 0x02: apic 2 int 23 (irq
7)
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb4 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0xf2
pci5 at ppb4 bus 5
vga1 at pci5 dev 0 function 0 "ATI Mach64" rev 0x3a
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
em0 at pci5 dev 2 function 0 "Intel PRO/1000GT (82541GI)" rev 0x05: apic 2 int
23 (irq 7), address 00:0e:0c:cf:fc:58
ichpcib0 at pci0 dev 31 function 0 "Intel 82801H LPC" rev 0x02: PM disabled
ahci1 at pci0 dev 31 function 2 "Intel 82801H AHCI" rev 0x02: apic 2 int 18
(irq 15), AHCI 1.1
scsibus2 at ahci1: 32 targets, initiator 32
sd0 at scsibus2 targ 0 lun 0: <ATA, SAMSUNG HD501LJ, CR10> SCSI3 0/direct fixed
sd0: 476940MB, 512 bytes/sec, 976773168 sec total
sd1 at scsibus2 targ 1 lun 0: <ATA, SAMSUNG HD501LJ, CR10> SCSI3 0/direct fixed
sd1: 476940MB, 512 bytes/sec, 976773168 sec total
ichiic0 at pci0 dev 31 function 3 "Intel 82801H SMBus" rev 0x02: apic 2 int 18
(irq 10)
iic0 at ichiic0
spdmem0 at iic0 addr 0x50: 512MB DDR2 SDRAM non-parity PC2-4200CL5
spdmem1 at iic0 addr 0x52: 512MB DDR2 SDRAM non-parity PC2-4200CL5
usb1 at uhci0: USB revision 1.0
uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb2 at uhci1: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at ichpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pmsi0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pmsi0 mux 0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
wbsio0 at isa0 port 0x2e/2: W83627DHG rev 0x23
lm1 at wbsio0 port 0x290/8: W83627DHG
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
mtrr: Pentium Pro MTRR support
softraid0 at root
root on sd0a swap on sd0b dump on sd0b
Automatic boot in progress: starting file system checks.
dev/rsd0a: file system is clean; not checking
setting tty flags
kbd: keyboard mapping set to no
machdep.allowaperture: 0 -> 2
starting network
starting system logger
starting initial daemons: ntpd.
savecore: no core dump
checking quotas: done.
building ps databases: kvm dev.
clearing /tmp
starting pre-securelevel daemons:.
setting kernel security level: kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
starting network daemons: sendmail inetd sshd.
starting local daemons:.
standard daemons: cron.
Sat Nov 29 22:23:21 CET 2008
OpenBSD/i386 (foo.tp76.info) (tty00)
login: root
Password:
Last login: Sat Nov 29 22:21:20 on tty00
OpenBSD 4.4-current (GENERIC) #1511: Tue Nov 25 19:11:50 MST 2008
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
You have mail.
Terminal type? [vt220]
# tar -zxf ports.tar.gz
free vnode: 0xd78023a0, type VREG, use 8, write 0, hold 1, flags
(VBIOONFREELIST)
tag VT_UFS, ino 432058, on dev 4, 0 flags 0x0, effnlink 1, nlink 1
mode 0100644, owner 0, group 0, size 2455 not locked
panic: free vnode isn't
Stopped at Debugger+0x4: leave
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> trace
Debugger(0,0,dce6ac10,d78023a0,0) at Debugger+0x4
panic(d06df34d,d78023a0,dce6ac90,d043916b,d7666380) at panic+0x55
getnewvnode(1,d1a26000,d1a01800,dce6ac8c) at getnewvnode+0x1d3
ffs_vget(d1a26000,6cd68,dce6ad20,d780fa10) at ffs_vget+0x4c
ufs_lookup(dce6ad58,d7910ae8,dce6ad70,d03886a3,d07ae1d8) at ufs_lookup+0x762
VOP_LOOKUP(d7811e90,dce6ae58,dce6ae6c,20) at VOP_LOOKUP+0x2e
lookup(dce6ae48,d7836000,400,dce6ae60) at lookup+0x1d0
namei(dce6ae48,d78024c8,dce6ae88,d7848794) at namei+0x18c
sys_mkdir(d7910ae8,dce6af68,dce6af58,3c0027cb,d7910ae8) at sys_mkdir+0x4a
syscall() at syscall+0x24e
--- syscall (number 136) ---
0x1c00e58d:
ddb> ps
PID PPID PGRP UID S FLAGS WAIT COMMAND
29648 21952 21952 0 3 0x4082 pipewr gzip
*21952 12091 21952 0 7 0x4002 tar
12091 1 12091 0 3 0x4082 pause ksh
16632 1 16632 0 3 0x4082 ttyin getty
25039 1 25039 0 3 0x4082 ttyin getty
12227 1 12227 0 3 0x4082 ttyin getty
3416 1 3416 0 3 0x4082 ttyin getty
29677 1 29677 0 3 0x4082 ttyin getty
13206 1 13206 0 3 0x80 select cron
26294 1 26294 0 3 0x40180 select sendmail
28836 1 28836 0 3 0x80 select sshd
16454 1 16454 0 3 0x180 select inetd
31091 21088 25292 83 3 0x180 poll ntpd
21088 25292 25292 83 3 0x180 poll ntpd
25292 1 25292 0 3 0x80 poll ntpd
5207 7965 7965 73 2 0x180 syslogd
7965 1 7965 0 3 0x88 netio syslogd
5026 1 5026 77 3 0x180 poll dhclient
4814 1 708 0 3 0x82 poll dhclient
16 0 0 0 3 0x100200 bored crypto
15 0 0 0 3 0x100200 aiodoned aiodoned
--db_more--
14 0 0 0 3 0x100200 syncer update
13 0 0 0 3 0x100200 cleaner cleaner
12 0 0 0 3 0x100200 reaper reaper
11 0 0 0 3 0x100200 pgdaemon pagedaemon
10 0 0 0 3 0x100200 pftm pfpurge
9 0 0 0 3 0x100200 usbevt usb2
8 0 0 0 3 0x100200 usbevt usb1
7 0 0 0 3 0x100200 usbtsk usbtask
6 0 0 0 3 0x100200 usbevt usb0
5 0 0 0 3 0x100200 acpi_idle acpi0
4 0 0 0 3 0x100200 bored syswq
3 0 0 0 3 0x100200 idle0
2 0 0 0 3 0x100200 kmalloc kmthread
1 0 1 0 3 0x4080 wait init
0 -1 0 0 3 0x80200 scheduler swapper
ddb> show registers
ds 0x10
es 0xd0200010 kernel_text+0x10
fs 0xdce60058 end+0xc597e34
gs 0xdce60010 end+0xc597dec
edi 0x100
esi 0xd06df34d netlck+0x8ba
ebp 0xdce6abe0 end+0xc5a29bc
ebx 0xdce6ac0c end+0xc5a29e8
edx 0
ecx 0xd07ad978 kprintf_mutex
eax 0x1
eip 0xd0493f8c Debugger+0x4
cs 0x8
eflags 0x202
esp 0xdce6abe0 end+0xc5a29bc
ss 0xdce60010 end+0xc597dec
Debugger+0x4: leave
ddb>
Here's a few more session excerpts:
# mount
/dev/sd0a on / type ffs (local, softdep)
# rm -rf ports
dev = 0x400, bsize = 16384, size = 16384, fs = /
panic: ffs_blkfree: bad size
Stopped at Debugger+0x4: leave
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> trace
Debugger(0,d036b23d,8,0,8) at Debugger+0x4
panic(d06f1171,7adbd496,624d6d9b,d79742bc,7fffffff) at panic+0x55
ffs_blkfree(dce64e04,a2e6d65,0,4000,dce64ba4) at ffs_blkfree+0x77
indir_trunc(dce64e04,46550,0,0,15800c,0,dce64ce0,1) at indir_trunc+0x1f3
indir_trunc(dce64e04,20,0,1,100c,0,dce64ce0,20) at indir_trunc+0x247
handle_workitem_freeblocks(d7286348,0,dce64f0c,d036a223,d082e920) at handle_wor
kitem_freeblocks+0x3e2
process_worklist_item(0,0,dce64f2c,d7977094,d07ae31c) at process_worklist_item+
0x182
softdep_process_worklist(0,12,d79742bc,d1a04634,0) at softdep_process_worklist+
0x10b
sched_sync(d79742bc) at sched_sync+0x9d
Bad frame pointer: 0xd0966eb8
ddb> ps
PID PPID PGRP UID S FLAGS WAIT COMMAND
10350 10982 10350 0 2 0x4002 rm
10982 1 10982 0 3 0x4082 pause ksh
1840 1 1840 0 3 0x4082 ttyin getty
27708 1 27708 0 3 0x4082 ttyin getty
12714 1 12714 0 3 0x4082 ttyin getty
22165 1 22165 0 3 0x4082 ttyin getty
9300 1 9300 0 3 0x4082 ttyin getty
4843 1 4843 0 3 0x80 select cron
17143 1 17143 0 3 0x40180 select sendmail
6096 1 6096 0 3 0x80 select sshd
21614 1 21614 0 3 0x180 select inetd
21159 25464 545 83 3 0x180 poll ntpd
25464 545 545 83 3 0x180 poll ntpd
545 1 545 0 3 0x80 poll ntpd
9888 32083 32083 73 2 0x180 syslogd
32083 1 32083 0 3 0x88 netio syslogd
26026 1 26026 77 3 0x180 poll dhclient
29518 1 21265 0 3 0x82 poll dhclient
16 0 0 0 3 0x100200 bored crypto
15 0 0 0 3 0x100200 aiodoned aiodoned
* 14 0 0 0 7 0x100200 update
--db_more--
13 0 0 0 3 0x100200 cleaner cleaner
12 0 0 0 3 0x100200 reaper reaper
11 0 0 0 3 0x100200 pgdaemon pagedaemon
10 0 0 0 3 0x100200 pftm pfpurge
9 0 0 0 3 0x100200 usbevt usb2
8 0 0 0 3 0x100200 usbevt usb1
7 0 0 0 3 0x100200 usbtsk usbtask
6 0 0 0 3 0x100200 usbevt usb0
5 0 0 0 3 0x100200 acpi_idle acpi0
4 0 0 0 3 0x100200 bored syswq
3 0 0 0 3 0x100200 idle0
2 0 0 0 3 0x100200 kmalloc kmthread
1 0 1 0 3 0x4080 wait init
0 -1 0 0 3 0x80200 scheduler swapper
ddb>
[...]
# mount
/dev/sd0a on / type ffs (local)
# rm -rf ports
# tar -zxf ports.tar.gz
uvm_fault(0xd797aa48, 0x0, 0, 1) -> e
kernel: page fault trap, code=0
Stopped at getblk+0x60: movl 0x68(%ebx),%edx
ddb> trace
getblk(d75a8824,d,0,4000,0) at getblk+0x60
ffs1_balloc(d75a6398,34000,0,3c00,d7986230,1,dce8ddec,d) at ffs1_balloc+0x697
ffs_write(dce8de18,d75a8824,20042,d791b98c,d07ae244) at ffs_write+0x239
VOP_WRITE(d75a8824,dce8dea8,1,d7986230,d75a8824,20002,d791b98c,0) at VOP_WRITE+
0x34
vn_write(d7851794,d78517b0,dce8dea8,d7986230) at vn_write+0x79
dofilewrite(d791b98c,7,d7851794,3c00c520,3c00) at dofilewrite+0x71
sys_write(d791b98c,dce8df68,dce8df58,cfbc344c,d791b98c) at sys_write+0x47
syscall() at syscall+0x24e
--- syscall (number 4) ---
0x1c011e6d:
ddb> ps
PID PPID PGRP UID S FLAGS WAIT COMMAND
8226 7874 7874 0 3 0x4082 pipewr gzip
* 7874 23266 7874 0 7 0x4002 tar
23266 1 23266 0 3 0x4082 pause ksh
11718 1 11718 0 3 0x4082 ttyin getty
24805 1 24805 0 3 0x4082 ttyin getty
24410 1 24410 0 3 0x4082 ttyin getty
32046 1 32046 0 3 0x4082 ttyin getty
26332 1 26332 0 3 0x4082 ttyin getty
11623 1 11623 0 3 0x80 select cron
29362 1 29362 0 3 0x40180 select sendmail
27562 1 27562 0 3 0x80 select sshd
30370 1 30370 0 3 0x180 select inetd
7767 7628 17592 83 3 0x180 poll ntpd
7628 17592 17592 83 3 0x180 poll ntpd
17592 1 17592 0 3 0x80 poll ntpd
17779 26769 26769 73 2 0x180 syslogd
26769 1 26769 0 3 0x88 netio syslogd
30848 1 30848 77 3 0x180 poll dhclient
21949 1 30095 0 3 0x82 poll dhclient
16 0 0 0 3 0x100200 bored crypto
15 0 0 0 3 0x100200 aiodoned aiodoned
--db_more--
14 0 0 0 3 0x100200 syncer update
13 0 0 0 3 0x100200 cleaner cleaner
12 0 0 0 3 0x100200 reaper reaper
11 0 0 0 3 0x100200 pgdaemon pagedaemon
10 0 0 0 3 0x100200 pftm pfpurge
9 0 0 0 3 0x100200 usbevt usb2
8 0 0 0 3 0x100200 usbevt usb1
7 0 0 0 3 0x100200 usbtsk usbtask
6 0 0 0 3 0x100200 usbevt usb0
5 0 0 0 3 0x100200 acpi_idle acpi0
4 0 0 0 3 0x100200 bored syswq
3 0 0 0 3 0x100200 idle0
2 0 0 0 3 0x100200 kmalloc kmthread
1 0 1 0 3 0x4080 wait init
0 -1 0 0 3 0x80200 scheduler swapper
ddb>
Let me know if you need anything else. Also, would sendbug(1) be more
appropriate for this?
Thanks.
Thomas