kern/132165: LOR slock and uart_hwmtx

Matthew West freebsd at r.zeeb.org
Fri Feb 27 06:40:04 PST 2009


>Number:         132165
>Category:       kern
>Synopsis:       LOR slock and uart_hwmtx
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 27 14:40:03 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Matthew West
>Release:        FreeBSD 8.0-CURRENT amd64
>Organization:
>Environment:
FreeBSD foo.internal 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Fri Feb 27 12:43:45 GMT 2009 mwest at foo.internal:/usr/obj/usr/src/sys/DEBUGLOCK amd64
>Description:
A -CURRENT system built with sources from yesterday, GENERIC kernel except with some extra VFS deadlock debugging enabled.  Serial console attached.  After a few hours with the system being mostly idle, a LOR was displayed.  The system didn't crash, and the serial console continues to work as expected.  I couldn't find another report for this, so here you we go:

lock order reversal:
1st 0xffffff0004776020 process slock (process slock) @ /usr/src/sys/kern/kern_proc.c:788
2nd 0xffffff000444a238 uart_hwmtx (uart_hwmtx) @ /usr/src/sys/dev/uart/uart_cpu.h:92
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_checkorder() at witness_checkorder+0x81e
_mtx_lock_spin_flags() at _mtx_lock_spin_flags+0x94
uart_cnputc() at uart_cnputc+0x40
cnputc() at cnputc+0x49
putchar() at putchar+0x6a
kvprintf() at kvprintf+0x81
printf() at printf+0xa4
calcru1() at calcru1+0x1a0
calcru() at calcru+0xda
fill_kinfo_proc() at fill_kinfo_proc+0x5f8
sysctl_out_proc() at sysctl_out_proc+0x7d
sysctl_kern_proc() at sysctl_kern_proc+0x228
sysctl_root() at sysctl_root+0xe3
userland_sysctl() at userland_sysctl+0x11c
__sysctl() at __sysctl+0xaa
syscall() at syscall+0x1e7
Xfast_syscall() at Xfast_syscall+0xab
--- syscall (202, FreeBSD ELF64, __sysctl), rip = 0x8009431fc, rsp = 0x7fffffffda08, rbp = 0xffffdb01 ---

>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list