RX lock-up on DS21143 with linux 2.4.26

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

 



[ I tried the tulip mailing list, but didn't get any responses. ]

I'm seeing some RX lock-up problems on a DS21143 when pushing large
amounts of small-packet one-way traffic to the system.  What happens
is that the RX count on the interface stops incrementing, the dropped
count is incrementing, TX works (can see the packets arriving at
another system), but no RX packets are received.  Hardware flow-control
is not configured.

What appears to be happening is that at some point the driver determines
that too much work has been done in the interrupt and triggers the
interrupt mitigation procedure.  This sets CSR11 so that the host is
interrupted only when 4 packets have been received, and then it clears all
interrupts.  What appears to be happening is that between the time that it
finishes processing the RX chain and sets CSR11 and clears all interrupts,
the RX chain fills up (or almost fills up) with new packets.  The interrupts
are then all cleared, but because there are no free slots for new packets,
the device goes into suspended mode, dropping all new packets, and thus
not generating any new Rx or NoBuf interrupts.  The driver thus never checks
for any new packets even if it is interrupted for some other reason.

There appear to be a number of ways of addressing this issue, although I'm not
100 percent certain that I've diagnosed it correctly.  The fix I'm currently
testing is not clearing the Rx/Tx NoBuf interrupt when mitigation occurs (which
appears to work), although I could imagine only clearing the Rx/Tx interrupt
instead of all interrupts, or even ensuring that there is a least one available
rx buffer after clearing all interrupts.

--
Ben Gamsa             ben@xxxxxxxxxxxxxxxx
SOMA Networks, Inc.   312 Adelaide St. W. Suite 600 Toronto, Ontario, M5V1R2

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux