kern/116886: Lock Order Reversal on Current for kbd and zyd
Weongyo Jeong
weongyo.jeong at gmail.com
Sun Oct 7 19:30:07 PDT 2007
The following reply was made to PR kern/116886; it has been noted by GNATS.
From: Weongyo Jeong <weongyo.jeong at gmail.com>
To: John Merryweather Cooper <j.m.cooper at borgsdemons.com>
Cc: FreeBSD-gnats-submit at freebsd.org
Subject: Re: kern/116886: Lock Order Reversal on Current for kbd and zyd
Date: Mon, 8 Oct 2007 10:55:29 +0900
On Wed, Oct 03, 2007 at 07:56:46PM -0700, John Merryweather Cooper wrote:
>
> >Number: 116886
> >Category: kern
> >Synopsis: Lock Order Reversal on Current for kbd and zyd
> >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: Thu Oct 04 05:20:03 GMT 2007
> >Closed-Date:
> >Last-Modified:
> >Originator: John Merryweather Cooper
> >Release: FreeBSD 7.0-CURRENT amd64
> >Organization:
> >Environment:
> System: FreeBSD borgdemon3.temp.wsu.edu 7.0-CURRENT FreeBSD 7.0-CURRENT #8: Mon Oct 1 12:32:21 PDT 2007 root at borgdemon3.temp.wsu.edu:/usr/obj/usr/src/sys/TURION amd64
>
>
>
> >Description:
> When the zyd0 interface first takes a DHCP IP (or when it roams),
> it usually (but not always) throws the attach lock order reversal.
> Rarely, the machine will lock up as a result.
> >How-To-Repeat:
> When interface takes a DHCP IP address or roams.
> >Fix:
>
> unknown
>
> --- lock-order-reversal begins here ---
> Oct 3 19:27:26 borgdemon3 kernel: lock order reversal: (Giant after non-sleepable)
> Oct 3 19:27:26 borgdemon3 kernel: 1st 0xffffff0001674cf0 inp (udpinp) @ /usr/src/sys/netinet/in_mcast.c:670
> Oct 3 19:27:26 borgdemon3 kernel: 2nd 0xffffffff8078e3c0 Giant (Giant) @ /usr/src/sys/netinet/in_mcast.c:317
> Oct 3 19:27:26 borgdemon3 kernel: KDB: stack backtrace:
> Oct 3 19:27:26 borgdemon3 kernel: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> Oct 3 19:27:26 borgdemon3 kernel: witness_checkorder() at witness_checkorder+0x64b
> Oct 3 19:27:26 borgdemon3 kernel: _mtx_lock_flags() at _mtx_lock_flags+0x75
> Oct 3 19:27:26 borgdemon3 kernel: in_addmulti() at in_addmulti+0x1e3
> Oct 3 19:27:26 borgdemon3 kernel: inp_setmoptions() at inp_setmoptions+0x111c
> Oct 3 19:27:26 borgdemon3 kernel: ip_ctloutput() at ip_ctloutput+0x16f
> Oct 3 19:27:26 borgdemon3 kernel: sosetopt() at sosetopt+0x3b
> Oct 3 19:27:26 borgdemon3 kernel: kern_setsockopt() at kern_setsockopt+0xa2
> Oct 3 19:27:26 borgdemon3 kernel: setsockopt() at setsockopt+0x22
> Oct 3 19:27:26 borgdemon3 kernel: syscall() at syscall+0x1ca
> Oct 3 19:27:26 borgdemon3 kernel: Xfast_syscall() at
> Oct 3 19:27:26 borgdemon3 kernel: Xfast_syscall+0xab
> Oct 3 19:27:26 borgdemon3 kernel: --- syscall (105, FreeBSD ELF64, setsockopt), rip = 0x800eb8ebc, rsp = 0x7fffffffeb18, rbp = 0x7fffffffeb90 ---
> --- lock-order-reversal ends here ---
It seems that this LOR isn't occured in the zyd module only when I review
the LOR message you sent.
LOR is happened in in_addmulti().
Regards,
Weongyo Jeong
More information about the freebsd-bugs
mailing list