kern/138002: [lor] Three lock order reversals: ufs/devfs,
bufwait/dirhash, bufwait/ufs
Petr Salinger
Petr.Salinger at seznam.cz
Sun Aug 30 10:00:10 UTC 2009
The following reply was made to PR kern/138002; it has been noted by GNATS.
From: Petr Salinger <Petr.Salinger at seznam.cz>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/138002: [lor] Three lock order reversals: ufs/devfs,
bufwait/dirhash, bufwait/ufs
Date: Sun, 30 Aug 2009 12:29:01 +0200 (CEST)
Similarly for me, 8.0 snapshot as of 20090829, in QEMU:
lock order reversal:
1st 0xc3177250 bufwait (bufwait) @ kern/vfs_bio.c:2559
2nd 0xc35b2c00 dirhash (dirhash) @ ufs/ufs/ufs_dirhash.c:285
lock order reversal:
1st 0xc35f49c4 ufs (ufs) @ kern/vfs_mount.c:1200
2nd 0xc35f4df4 devfs (devfs) @ kern/vfs_subr.c:2083
Whole dmesg of boot and reboot:
Copyright (c) 1992-2009 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 is a registered trademark of The FreeBSD Foundation.
#0 Sat Aug 29 21:10:23 CEST 2009
WARNING: WITNESS option enabled, expect reduced performance.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: QEMU Virtual CPU version 0.10.5 (2672.21-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x623 Stepping = 3
Features=0x78bf3fd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
Features2=0x9<SSE3,MON>
AMD Features=0xe0100800<SYSCALL,NX,LM,3DNow!+,3DNow!>
AMD Features2=0x4<SVM>
real memory = 536805376 (511 MB)
avail memory = 507310080 (483 MB)
ACPI APIC Table: <QEMU QEMUAPIC>
MADT: Forcing active-low polarity and level trigger for SCI
ioapic0 <Version 1.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <QEMU QEMURSDT> on motherboard
acpi0: [ITHREAD]
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <24-bit timer at 3.579545MHz> port 0xb008-0xb00b on acpi0
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on
acpi0
Timecounter "HPET" frequency 100000000 Hz quality 900
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci_link0: BIOS IRQ 9 does not match initial IRQ 11
pci0: <ACPI PCI bus> on pcib0
Correcting Natoma config for non-SMP
isab0: <PCI-ISA bridge> at device 1.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 WDMA2 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xc000-0xc00f at device 1.1 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
pci0: <bridge> at device 1.3 (no driver attached)
vgapci0: <VGA-compatible display> mem
0xc0000000-0xc1ffffff,0xc2000000-0xc2000fff at device 2.0 on pci0
ed0: <RealTek 8029> port 0xc100-0xc1ff irq 11 at device 3.0 on pci0
ed0: ed_stop_hw RST never set
ed0: WARNING: using obsoleted if_watchdog interface
ed0: Ethernet address: 52:54:00:12:34:56
ed0: [ITHREAD]
pci0: <memory, RAM> at device 4.0 (no driver attached)
atrtc0: <AT realtime clock> port 0x70-0x71,0x72-0x77 irq 8 on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <PS/2 Mouse> flags 0x100 irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model IntelliMouse Explorer, device ID 4
ppc0: <Parallel port> port 0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppc0: [ITHREAD]
ppbus0: <Parallel port bus> on ppc0
uart0: <Non-standard ns8250 class UART with FIFOs> port 0x3f8-0x3ff irq 4
flags 0x10 on acpi0
uart0: [FILTER]
cpu0: <ACPI CPU> on acpi0
pmtimer0 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
Timecounter "TSC" frequency 2672214032 Hz quality 800
Timecounters tick every 1.000 msec
driver bug: Unable to set devclass (devname: (null))
ad0: 4000MB <QEMU HARDDISK 0.10.5> at ata0-master WDMA2
acd0: CDROM <QEMU DVD-ROM/0.10.5> at ata1-master WDMA2
WARNING: WITNESS option enabled, expect reduced performance.
Trying to mount root from ufs:/dev/ad0s1a
Trying to mount root from ufs:/dev/ad0s1a
(probe0:ata1:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
(probe0:ata1:0:0:0): CAM Status: SCSI Status Error
(probe0:ata1:0:0:0): SCSI Status: Check Condition
(probe0:ata1:0:0:0): NOT READY asc:3a,0
(probe0:ata1:0:0:0): Medium not present
(probe0:ata1:0:0:0): Unretryable error
cd0 at ata1 bus 0 target 0 lun 0
cd0: <QEMU QEMU DVD-ROM 0.10> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present
lock order reversal:
1st 0xc3177250 bufwait (bufwait) @ kern/vfs_bio.c:2559
2nd 0xc35b2c00 dirhash (dirhash) @ ufs/ufs/ufs_dirhash.c:285
KDB: stack backtrace:
db_trace_self_wrapper(d63a1a60,c08dfe38,c0c80821,c0c284c4,d63a1ac8,...) at
db_trace_self_wrapper+0x26
_witness_debugger(c0c19b98,c35b2c00,c0c284c4,c342fce0,c0c80821,...) at
_witness_debugger+0x25
witness_checkorder(c35b2c00,9,c0c80818,11d,0,...) at
witness_checkorder+0x7f6
_sx_xlock(c35b2c00,0,c0c80818,11d,cd637490,...) at _sx_xlock+0x52
ufsdirhash_acquire(d63a1b2c,0,0,c00,490,...) at ufsdirhash_acquire+0x35
ufsdirhash_remove(c36e5bc8,cd637490,490,d63a1b60,d63a1b5c,...) at
ufsdirhash_remove+0x1d
ufs_dirremove(c35f4324,c370315c,500800c,0,c35f4324,...) at
ufs_dirremove+0x180
ufs_remove(d63a1c34,d63a1c44,d63a1c0c,d63a1c0c,c3726860,...) at
ufs_remove+0x81
VOP_REMOVE_APV(c0d56ec0,d63a1c34,c3726860,d63a1c0c,bfbfeeec,...) at
VOP_REMOVE_APV+0x5d
kern_unlinkat(c3719900,ffffff9c,bfbfeeec,0,d63a1c80,...) at
kern_unlinkat+0x23d
kern_unlink(c3719900,bfbfeeec,0,d63a1d2c,c0b87b67,...) at kern_unlink+0x27
unlink(c3719900,d63a1cf8,4,c0c282d2,c0d36218,...) at unlink+0x22
syscall(d63a1d38) at syscall+0x177
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (10, FreeBSD ELF32, unlink), eip = 0x28135c07, esp =
0xbfbfebbc, ebp = 0xbfbfecb8 ---
ed0: ed_stop_hw RST never set
ed0: ed_stop_hw RST never set
Waiting (max 60 seconds) for system process `vnlru' to stop...done
Waiting (max 60 seconds) for system process `bufdaemon' to stop...done
Waiting (max 60 seconds) for system process `syncer' to stop...
Syncing disks, vnodes remaining...0 done
All buffers synced.
lock order reversal:
1st 0xc35f49c4 ufs (ufs) @ kern/vfs_mount.c:1200
2nd 0xc35f4df4 devfs (devfs) @ kern/vfs_subr.c:2083
KDB: stack backtrace:
db_trace_self_wrapper(d636e9e4,c08dfe38,c0c1e124,c0c11fcc,d636ea4c,...) at
db_trace_self_wrapper+0x26
_witness_debugger(c0c19b98,c35f4df4,c0c11fcc,c342fba8,c0c1e124,...) at
_witness_debugger+0x25
witness_checkorder(c35f4df4,9,c0c1e11b,823,0,...) at
witness_checkorder+0x7f6
__lockmgr_args(c35f4df4,80100,c35f4e10,0,0,...) at __lockmgr_args+0xf00
vop_stdlock(d636eb20,3,c35b0994,80000,c35f4d9c,...) at vop_stdlock+0x54
VOP_LOCK1_APV(c0d32b00,d636eb20,c342ba40,c0d6f720,c35f4d9c,...) at
VOP_LOCK1_APV+0x7f
_vn_lock(c35f4d9c,80100,c0c1e11b,823,15f,...) at _vn_lock+0x49
vget(c35f4d9c,80100,c36f5b40,15e,9d,...) at vget+0x66
devfs_allocv(c36dd080,c36df000,d636ebb4,9d,c35f496c,...) at
devfs_allocv+0x110
devfs_root(c36df000,80000,d636ebf0,4f5,c31b0df0,...) at devfs_root+0x4a
dounmount(c36df000,80000,c36f5b40,c36f5b40,c3176230,...) at
dounmount+0x53e
vfs_unmountall(c31763e0,0,c0c174e4,129,0,...) at vfs_unmountall+0x50
boot(c0da3a30,0,c0c174e4,ac,c0d36100,...) at boot+0x757
reboot(c36f5b40,d636ecf8,4,c0c1add0,c0d36704,...) at reboot+0x77
syscall(d636ed38) at syscall+0x177
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (55, FreeBSD ELF32, reboot), eip = 0x28132687, esp =
0xbfbfed3c, ebp = 0x1 ---
Uptime: 25m7s
Rebooting...
More information about the freebsd-bugs
mailing list