On 13 Jul 2009, at 19:17, John Baldwin wrote:
Callouts are marked as MPSAFE or non-MPSAFE when registered. If
non-MPSAFE,
we will acquire Giant automatically for the callout, but I believe
we'll also
try and sort non-MPSAFE callouts behind MPSAFE ones in execution
order to
minimize latency for MPSAFE callouts. Most callouts acquire locks
of some
sort, and stalling any callout indefinitely will stall the entire
callout
thread indefinitely, which in turn could lead to a variety of odd
behaviors
and potentially (although not necessarily) deadlock.
FWIW, we do not actually sort the callouts in this manner, so all
callouts
will be blocked until Giant is acquired.
I must have been remembering a proposed change -- as you say, it's
certainly not in kern_timeout.c. However, I'd rather just eliminate
support for Giant in callouts in 9.x than try to further facilitate
them :-)
Robert
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"