[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: KASSERT() in kern_timeout.c
On Fri, Mar 19, 2010 at 02:16:26PM +0000, Andrew Doran wrote:
> On Fri, Mar 19, 2010 at 12:38:12PM +0100, Manuel Bouyer wrote:
> > Hi,
> > last night I got the panic below on a fairly busy ftp/http server
> > (serving static content). The kernel is 5.0_STABLE from Jan, 19.
> > Does it ring a bell to someone ?
> I'll bet that c->c_cpu is from curcpu and that the callout is running,
> nested below the softnet handler. General solution: callout_halt() before
> callout_destroy(). This may be tricky because it may need to drop the
> mutex that you hold (in this instance softnet_lock). See other instances of
> callout_halt() in the TCP code. I haven't checked the code to verify that
> this is what's happening and I can't remember if the syncache code is already
> using callout_halt().
AFAIK syncache is not using callout_halt(). It's testing callout_invoking()
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.
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
Main Index |
Thread Index |