On Wed, 3 Nov 2004 05:38, John-Mark Gurney wrote: > Peter Edwards wrote this message on Tue, Nov 02, 2004 at 17:56 +0000: > > A (very) quick look at the source reveals that buffers are allocated > > via sk_rxeof()->sk_newbuf()->sk_jalloc() in the interrupt receive > > function, with the softc lock held in sk_rxeof(). > > > > They're freed by the mbuf system via a call to sk_jfree(), but that > > doesn't hold the SK_LOCK. Is this possibly the source of the > > corruption problems? What am I missing? > > This compiles, anyway :-) > > Well, try the attached patch (it also includes my changes from a previous > diff) that will see what happens... Make sure you have your kernel > compiled with WITNESS and INVARIANTS... If you hit one of these > asserts, make sure you post the back trace... I didn't see the previous patch, but I applied it from this one to 4.x and it seems to be behaving itself now. I'll keep testing it, but previously it would lock up pretty quickly :) -- Daniel O'Connor software and network engineer for Genesis Software - http://www.gsoft.com.au "The nice thing about standards is that there are so many of them to choose from." -- Andrew Tanenbaum GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:20 UTC