Re: TCP transmit performance regression
From: Ming Lei <tom.leiming@gmail.com>
Date: 2012-07-10 13:37:30
On Tue, Jul 10, 2012 at 4:28 PM, Eric Dumazet [off-list ref] wrote:
On Tue, 2012-07-10 at 15:22 +0800, Ming Lei wrote:quoted
Kernel stack size is 8KB or more, so could you find process creation failure in your ChromeBooks machine at the same time?I believe you mix a lot of things. Have you ever heard of sockets limits ? All available ram on a machine is not for whoever wants it, thanks God. No : TCP stack was dropping frames, because of socket limits. Only because skbs were fat (8KB allocated/truesize, for a single 1500 bytes frame)
Could you explain why the truesize of SKB is 8KB for single 1500bytes frame? I observed it is 2560bytes for RX SKBs inside asix_rx_fixup with rx_urb_size of 2048 on beagle-xm.
If application is fast and read skb as soon as the arrive, no problem is detected. But if application is slow, or a TCP packet is lost on network, man packets are queued into ofo queue. And eventually not enough room is avalable -> we drop incoming frames, and sender has to restransmit them. So instead of loading your web pages as fast as possible, you have to wait for retransmits. So you see nothing at all, no kernel logs, no failed memory attempts. Only its slower than necessary
Thanks, -- Ming Lei