[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-smp
Subject: Re: Lock order reversal
From: John Baldwin <jhb () FreeBSD ! ORG>
Date: 2002-02-21 4:32:38
[Download RAW message or body]
On 20-Feb-02 Alfred Perlstein wrote:
> * John Baldwin <jhb@FreeBSD.org> [020220 14:31] wrote:
>>
>> On 17-Feb-02 Bob Van Valzah wrote:
>> > Sorry if this isn't the right place to report this. Maybe I should
>> > sendpr this kind of
>> > thing? Sorry, I don't know the protocol.
>> >
>> > I shutdown my laptop (running -CURRENT as of Tuesday afternoon) and saw
>> > this:
>> >
>> > syncing disks.. 6 5 4 3 2 2 1 1
>> > done
>> > lock order reversal
>> > 1st 0xc03a9d40 allproc @ /usr/src/sys/kernvfs_syscalls.c:452
>> > 2nd 0xc2880234 filedesc structure @ /usr/src/sys/kern/vfs_syscalls.c:457
>> > Uptime: 1d14h10m48s
>> > /dev/vmmon: Module vmmon: unloaded
>> >
>> > The operating system has halted.
>> > Please press any key to reboot.
>>
>> Yes, this one is a bit tough to fix. It will probably involve some changes
>> to
>> selwakeup() and possibly struct selinfo as well. The pfind() in selwakeup()
>> is
>> what ends up being the root cause here.
>
> Where is selwakeup being called with a filedesc held?
It's not that direct. :) It's more like filedesc is sometimes held when a bpf
lock is acquired, and the allproc lock is acquired by pfind in selwakeup when
bpf is held sometimes. So it's not a direct lock order relationship. My
preferred solution is to remove the pfind from selwakeup if possible, but that
isn't entirely trivial to do.
> -Alfred
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic