In my ongoing quest to figure out why my machine keeps locking up since I upgraded from 5.4 to 6.0, I came across this interesting passage in man (5) pf.conf:

BUGS
  Due to a lock order reversal (LOR) with the socket layer, the use of the
  group and user filter parameter in conjuction with a Giant-free netstack
  can result in a deadlock.  If you have to use group or user you must set
  debug.mpsafenet to ``0'' from the loader(8), for the moment.  This work-
  around will still produce the LOR, but Giant will protect from the dead-
  lock.

In the release notes for FreeBSD 6, I found:

  Fine-grained locking has been applied to many of the data structures in
  the IPX/SPX protocol stack. While not fully MPSAFE at this point, it is
  generally safe to use IPX/SPX without the Giant lock (in other words,
  the debug.mpsafenet sysctl variable may be set to 1).

While I don't fully understand what this passage is talking about, I take it to mean that the default value of debug.mpsafenet is now 1, and that this is a new feature of FreeBSD version 6.

I use pf. I use the user filter parameter on some oft-evaluated rules. I discovered that my debug.mpsafenet is indeed "1" . My system is deadlocking occasionally under 6 where it never did so under 5.4.

I think I'm going to attempt to set debug.mpsafenet to "0" in my loader.conf and see how many days I can go without a lockup this time. I've seen several threads lately from people having lockup troubles after upgrading to version 6, and at least one of them mentioned pf specifically, so I bet some of the rest of you may want to try this too.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to