Subject: Re: panic: multiple frees
To: None <current-users@NetBSD.ORG>
From: Christos Zoulas <christos@deshaw.com>
List: current-users
Date: 08/09/1995 04:00:07
In article <199508080915.DAA29669@sidney.novatel.ca> hpeyerl@novatel.ca (Herb Peyerl) writes:
>
>For the last few days I've been trying to get a -current i386
>machine running (Saturdays sources) and am encountering problems.
>
>I'm seeing "panic: multiple frees" with network traffic and it's
>quite reproducible.  It happens more frequently when bombarded with
>NFS traffic but also happens quite regularly when bombarded with
>"tar cvf | rsh tar xvf - " type activity... The stack trace 
>invariable has an "m_freem()" in it and somewhere further down the
>loop has epintr() or epget() in it...
>
>The machine is a generic i386/33 with an aha1542CF and a 3c509.  The
>machine bombarding it has a 3c509 in it as well...
>
>Christos? Were you seeing similar weirdnesses? Anyone?
>

Charles just committed a fix to isa_machdep.c that fixes this problem.
The problem was that the hardware interrupts were not masking the
software ones, so when the softclock was used in the ep driver to
allocate more mbufs, it could be called while the driver was already in
the interrupt handler playing with the mbuf chain. This fix affects the
ep driver mostly, but would affect other devices that use both hardware
and software interrupts. ping -f works great now... It used to crash
the machine immediately.

Thank god; a stable kernel again. I was kind of getting sick of walking in
my office and every time having to stare at:

... 0xdeadbeef ...
db>

christos