[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: KASSERT() in kern_timeout.c
Manuel Bouyer <bouyer%antioche.eu.org@localhost> wrote:
> > AFAIK syncache is not using callout_halt(). It's testing callout_invoking
> > () though.
> > I can't say if droping the softnet lock in syn_cache_put() (this is
> > where the pool_put() really is) is safe or not.
> Can someone familiar with the TCP code have a look at this ?
> I've got several panic from this bug since I wrote this mail, I've
> looked at it quickly and the fix doesn't look obvious ...
There are multiple paths calling syn_cache_put() and not only SYN cache,
but also upper TCP layers and IP would need to be inspected. Unlikely to
be safe and unlikely to be trivial to re-structure to be safe.. there we
shall start a big MP-safe network stack revamp.
For a quick fix (apart from horrible hack, like having another softint
or kthread), it seems that we can use SCF_DEAD with syn_cache_timer()
invoked via our callout, which would destroy... itself. :)
Main Index |
Thread Index |