2007/11/24, Robert Watson :
> While I'm no great fan of recursion, the reality is that many of our kernel
> subsystems are not yet ready to disallow recursion on locks. Take a look at
> the cases where we explicitly enable recursive acquisition for mutexes--in
> practice, most network stack mutexes are recursive due to the recursive
> calling in the network stack. While someday I'd like to think we'll be able
> to eliminate some of that, but it won't be soon since it requires significant
> reworking of very complicated code. The current model in which recursion is
> explicitly enabled only where still required seems to work pretty well for the
> existing code, although it's hard to say yet in the code I've looked at
> whether read recursion would be required--the situations I have in mind would
> require purely write recursion. There's one case in the UNIX domain socket
> code where we do a locked test and conditional lock/unlock with an rwlock for
> exclusive locking because recursion isn't currently supported, and that's not
> a usage I'd like to encourage more of.

Oh, I just didn't notice this -- rwlock are only present in 7.0 and in
7.0 they support recursion in exclusive mode, so I'm not sure what do
you mean with 'recursion isn't currently supported'.


Peace can only be achieved by understanding - A. Einstein
freebsd-arch@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"