Received: with ECARTIS (v1.0.0; list netdev); Mon, 23 May 2005 11:44:25 -0700 (PDT) Received: from sunset.davemloft.net (dsl027-180-168.sfo1.dsl.speakeasy.net [216.27.180.168]) by oss.sgi.com (8.12.10/8.12.10/SuSE Linux 0.7) with ESMTP id j4NIiLF3024087 for ; Mon, 23 May 2005 11:44:21 -0700 Received: from localhost ([127.0.0.1] ident=davem) by sunset.davemloft.net with esmtp (Exim 4.50) id 1DaHtj-0001h1-FD; Mon, 23 May 2005 11:43:31 -0700 Date: Mon, 23 May 2005 11:43:31 -0700 (PDT) Message-Id: <20050523.114331.104031931.davem@davemloft.net> To: herbert@gondor.apana.org.au Cc: netdev@oss.sgi.com Subject: Re: [PATCH] Super TSO v2 From: "David S. Miller" In-Reply-To: <20050523095417.GA18770@gondor.apana.org.au> References: <20050520.115154.48807299.davem@davemloft.net> <20050523095417.GA18770@gondor.apana.org.au> X-Mailer: Mew version 3.3 on Emacs 21.4 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-archive-position: 1500 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: davem@davemloft.net Precedence: bulk X-list: netdev Content-Length: 1024 Lines: 28 From: Herbert Xu Date: Mon, 23 May 2005 19:54:17 +1000 > Perhaps we should set the goal based on the cwnd as we do now? > > As it is I believe we may be doing more work compared to the > status quo because it's always building 64K blocks and then > cutting them up as dictated by the cwnd. On the other hand, the > current code simply builds the packets up to the size that cwnd > allows. I played with this, and it makes no difference. It would only help when: 1) we are building sk->sk_send_head, and 2) sk->sk_send_head is the tail of the write queue But the SKB splitting is so cheap that it doesn't show up. And if we sleep or defer for some reason, say while copying the data from userspace or whatever, all of this information changes and we don't bunch up as much as we could have. Also, in my current code we defer sending not just at ACK arrive processing, but also when doing normal sends from sendmsg() and sendpages(). Which totally invalidates your suggested scheme :-)