tech-kern archive
[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 04:25:15PM +0100, Manuel Bouyer wrote:
> 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()
> 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 ...
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index