NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/44418 (FAST_IPSEC and if_wm kernel panic - may affect the whole network stack)



Matthias Drochner <M.Drochner%fz-juelich.de@localhost> wrote:
> > Not sure what do you mean by "second time"
> > [...]
> > Recursive locking is
> > deliberately prohibited in our mutex(9) implementation
> > [...]
> > Talking about limited softintr thread context
> 
> What I did suspect here is that some kernel code takes softnet_lock
> without a splsoftnet() before, and a softnet handler gets to run
> and happens to borrow the same thread context. In that case,
> the diagnostic check could fire even if the softnet handler
> doesn't do anything wrong.
> Can this happen?

While soft-interrupt borrows a current thread context - it has a separate
identity, that is, own 'curlwp' value.  Therefore, softint would block on
the lock, return execution to the interrupted LWP, and when the lock gets
released - soft-interrupt would continue.  In other words - that is not a
condition of recursive lock attempt.

-- 
Mindaugas


Home | Main Index | Thread Index | Old Index