tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Potential re(4) / netbsd-4 / i386 problem?





On 3/6/2010 1:34 AM, David Young wrote:
On Wed, Mar 03, 2010 at 08:23:39AM +0200, Brad du Plessis wrote:
Hi all,

I've been seeing panics on a netbsd-4/i386 machine which appears to
be related to the reception of oversized frames:

re0: discarding oversize frame (len=8813)
re0: discarding oversize frame (len=2191)
re0: discarding oversize frame (len=10478)
A few questions come to mind as I read re_rxeof():

Does the hardware always respect the buffer length that NetBSD writes to
the Rx descriptors?  Buffer-overrun bugs do happen, even in hardware.

How many fragments do the oversize frames come in?

The driver seems to expect that !RE_RDESC_STAT_EOF is mutually exclusive
with RE_RDESC_STAT_RXERRSUM.  Maybe that is not really so?

I put a printout in re_rxeof() when sc->re_head!=NULL and I never see this (even before it panics) so I assume I'm never actually getting to process multi-fragment packets. I also enabled the RE_DEBUG printouts (in re_rexeof) and I saw a few of those printouts moments before the panic:

re0: discarding oversize frame (len=-4)
re0: RX error (rxstat = 0x1f97e350), frame alignment error, out of buffer space, CRC error re0: RX error (rxstat = 0x1970a3b0), frame alignment error, FIFO overrun, giant packet
re0: discarding oversize frame (len=10703)
re0: RX error (rxstat = 0x1d52f996), frame alignment error, FIFO overrun
re0: RX error (rxstat = 0x18736652), frame alignment error, FIFO overrun, giant packet re0: RX error (rxstat = 0x18706240), frame alignment error, FIFO overrunm giant packet
uvm_fault(0xc0c90dc0, 0x264b9000, 1) -> 0xe

Not sure if this helps at all.

Regards,
 Brad


Home | Main Index | Thread Index | Old Index