Setup:
ucLinux 2.4.10 based kernel running on a embedded
processor (coldfire) with 40 MIPS processing
capablity.
Problem:
This embedded system sends relatively huge amount of
data (~1.5MB/s) over ethernet to a remote system which
process the data. On a normal case it all works great.
But when there is a lot of traffic on the network
(simulated by running flood ping between two desktop
linux systems connected to the same hub as this
embedded system), embedded systems Linux TCP/IP stack
go haywire.
More details:
Since there is a high traffic on the network, the
embedded system cannot transmit packet and this
triggers tcp retransmit in the stack.
But the first check on the tcp_transmit_skb fails
if (atomic_read(&sk->wmem_alloc) > min_t(int,
sk->wmem_queued+(sk->wmem_queued>>2),sk->sndbuf))
__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/