David, On Thu, Aug 24, 2006 at 10:29:32AM -0700, David Christensen wrote: D> In general the problem isn't that the status block isn't being updated, D> but that D> the status update occurs AFTER the ISR has stopped looking at the status D> block, but before the ISR has re-enabled interrupts, thus missing the D> update. D> That's why tagged status mode is an improvement, the ISR actively tells D> the D> hardware which status block update it last processed and forces the D> hardware D> to generate another interrupt if a status block update was missed by the D> ISR.
My kgdb session shows that the status block is not updated later, after ISR, but isn't updated at all until next packet arrives! It looks like this: once netperf wedges, I run kgdb, find address of softc, look at status block, look that the ring index is the same as saved in softc. It takes a minute for me to type all these things. Status block isn't updated. Then I can look into the ring itself at the index+1 descriptor, and analyze the mbuf inside of it. This mbuf will be that one wedged packet! The packet I would see in tcpdump as soon as I send another one. Ok, can you please review the patch, I've sent earlier today, that utilizes the status block tag correctly? -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"