Experiencing hangs on SMP box with no console messages given
for clues. Details inside.
Robert Watson
rwatson at FreeBSD.org
Sun Mar 18 19:23:14 UTC 2007
On Sun, 18 Mar 2007, Julian Elischer wrote:
>> If using uid/gid firewall rules, make sure to read the pertinent man pages
>> regarding setting debug.mpsafenet=0 in loader.conf to avoid deadlocks. This
>> is only a workaround for the issue, and when debug.mpsafenet is removed,
>> this workaround will no longer be available. The authors/maintainers of
>> the various firewall packages need to correct these problems or the lock
>> order reversals (and associated deadlocks) will persist.
>
> I actually have some work on this in an experimental branch.. it removes the
> requirement for users of ipfw to hold a lock on it by making the firewall
> table an array rather than a lined list and then using a read-copy-replace
> write semantic with reference conts on the array.. a bit like the cred
> structures that processes and threads have.. i.e. you never change it, just
> replace it with a new one.. previosu users ofthe structure just keep using
> the one they have and release the reference when they are done.. (freeing if
> it goes to 0). the result is that since the firewall lock goes away, so does
> the lock order reversal.
Great -- this is precisely the sort of fix we require.
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the freebsd-current
mailing list