« Return to Thread: callout(9) and Giant lock

Re: callout(9) and Giant lock

by Robert Watson :: Rate this Message:

Reply to Author | View in Thread


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@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@..."

 « Return to Thread: callout(9) and Giant lock