Re: bnx_tick and the kernel lock

On Tue, Apr 17, 2012 at 04:00:05PM -0400, Greg Troxel wrote:
>
> I have some systems where the bnx driver seems to lose mbuf clusters
> under heavy load.
>
> Looking at the code, I see bnx_tick called by a callout, and it does
> splnet but does not seem to take the KERNEL_LOCK. It seems like the
> rule for the rest of the driver is to be at splnet and have the kernel
> lock, so this seems wrong.
>
> Are callouts automatically invoked with the big lock? It seems like
> they aren't (and shouldn't be) since they can be used in mpsafe code.
They are called with the big lock, for thoses which have been initialized
with CALLOUT_MPSAFE (which AFAIK bnx(4) does not).
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--