Removing NET_NEEDS_GIANT: first patch

Anders Nordby anders at FreeBSD.org
Thu Jul 26 10:42:12 UTC 2007


Hi,

On Tue, Jul 24, 2007 at 11:17:45AM +0100, Robert Watson wrote:
> Attached is the first of a series of patches to start removing the 
> NET_NEEDS_GIANT and debug.mpsafenet scaffolding.  This source code 
> declaration was used by optionally compiled components to declare a strict 
> requirement for Giant, and forced Giant over the entire network stack.  
> debug.mpsafenet could also be set by users in loader.conf in order to 
> similar force Giant over the network stack, and existed for two reasons: to 
> allow Giant to be put back over the network stack for debugging purposes, 
> and to support these recently removed or fixed unsafe components.  As such, 
> this patch removes the following:
> 
> - NET_NEEDS_GIANT() macro
> - debug.mpsafenet tunable/sysctl and associated debug_mpsafenet variable, as
>   well as functions supporting these.
> - Use of this variable to control acqusition of Giant in network-related
>   interrupt handlers and various other paths.

I've used and still use debug_mpsafenet to get rid of watchdog timeout
problems on a lot of HP Proliant servers, particularly with the bge
driver:

Dec 21 06:42:51 videovm1 kernel: bge0: watchdog timeout -- resetting
Dec 21 06:42:51 videovm1 kernel: bge0: link state changed to DOWN
Dec 21 06:42:54 videovm1 kernel: bge0: link state changed to UP

This problem goes away with debug.mpsafenet="0", for me.

I can try to turn off this setting, and see how it goes. I remember
there was something one could do, to get more information about the
watchdog error, but can't remember what.

Another thing, bde did some watchdog fixes for bge in december 2006. I
wonder why those didn't make it into 6.2, which was released in january
2007.

Regards,

-- 
Anders.


More information about the freebsd-arch mailing list