From: Eric Dumazet <eric.dumazet@gmail.com>
To: Rick Jones <rick.jones2@hp.com>
Cc: David Miller <davem@davemloft.net>, netdev@vger.kernel.org
Subject: Re: [RFC] tcp: use order-3 pages in tcp_sendmsg()
Date: Wed, 19 Sep 2012 19:55:08 +0200 [thread overview]
Message-ID: <1348077308.26523.1158.camel@edumazet-glaptop> (raw)
In-Reply-To: <505A00C8.5050302@hp.com>
On Wed, 2012-09-19 at 10:28 -0700, Rick Jones wrote:
> On 09/19/2012 08:14 AM, Eric Dumazet wrote:
> > I did some tests and got no problem so far, even using splice() [ this
> > one was tricky because it only deals with order-0 pages at this moment ]
> >
> > NIC tested : ixgbe, igb, bnx2x, tg3, mellanox mlx4
> >
> > On loopback, performance of netperf goes from 31900 Mb/s to 38500 Mb/s,
> > thats a 20 % increase.
>
> I guess Brutus will need a new baseline for his TCP Friends patch then :)
>
> BTW, what is the change, if any for TCP_RR?
>
> happy benchmarking,
>
> rick jones
>
No difference, because I already optimized this case last year ;)
commit f07d960df33c5aef8f513efce0fd201f962f94a1
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date: Mon Nov 28 22:41:47 2011 +0000
tcp: avoid frag allocation for small frames
tcp_sendmsg() uses select_size() helper to choose skb head size when a
new skb must be allocated.
If GSO is enabled for the socket, current strategy is to force all
payload data to be outside of headroom, in PAGE fragments.
This strategy is not welcome for small packets, wasting memory.
Experiments show that best results are obtained when using 2048 bytes
for skb head (This includes the skb overhead and various headers)
This patch provides better len/truesize ratios for packets sent to
loopback device, and reduce memory needs for in-flight loopback packets,
particularly on arches with big pages.
If a sender sends many 1-byte packets to an unresponsive application,
receiver rmem_alloc will grow faster and will stop queuing these packets
sooner, or will collapse its receive queue to free excess memory.
netperf -t TCP_RR results are improved by ~4 %, and many workloads are
improved as well (tbench, mysql...)
next prev parent reply other threads:[~2012-09-19 17:55 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-17 7:49 [RFC] tcp: use order-3 pages in tcp_sendmsg() Eric Dumazet
2012-09-17 16:12 ` David Miller
2012-09-17 17:02 ` Eric Dumazet
2012-09-17 17:04 ` Eric Dumazet
2012-09-17 17:07 ` David Miller
2012-09-19 15:14 ` Eric Dumazet
2012-09-19 17:28 ` Rick Jones
2012-09-19 17:55 ` Eric Dumazet [this message]
2012-09-19 17:56 ` David Miller
2012-09-19 19:04 ` Alexander Duyck
2012-09-19 20:18 ` Ben Hutchings
2012-09-19 22:20 ` Vijay Subramanian
2012-09-20 5:37 ` Eric Dumazet
2012-09-20 17:10 ` Rick Jones
2012-09-20 17:43 ` Eric Dumazet
2012-09-20 18:37 ` Yuchung Cheng
2012-09-20 19:40 ` David Miller
2012-09-20 20:06 ` Rick Jones
2012-09-20 20:25 ` Eric Dumazet
2012-09-21 15:48 ` Eric Dumazet
2012-09-21 16:27 ` David Miller
2012-09-21 16:51 ` Eric Dumazet
2012-09-21 17:04 ` David Miller
2012-09-21 17:11 ` Eric Dumazet
2012-09-23 12:47 ` Jan Engelhardt
2012-09-23 16:16 ` David Miller
2012-09-23 17:40 ` Jan Engelhardt
2012-09-23 18:13 ` Eric Dumazet
2012-09-23 18:27 ` David Miller
2012-09-20 21:39 ` Vijay Subramanian
2012-09-20 22:01 ` Rick Jones
2012-11-15 7:52 ` Yan, Zheng
2012-11-15 13:06 ` Eric Dumazet
2012-11-16 2:36 ` Yan, Zheng
2012-11-15 13:47 ` Eric Dumazet
2012-11-21 8:05 ` Yan, Zheng
2012-11-15 18:33 ` Rick Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1348077308.26523.1158.camel@edumazet-glaptop \
--to=eric.dumazet@gmail.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=rick.jones2@hp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox