netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rick Jones <rick.jones2@hp.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Laight <David.Laight@ACULAB.COM>,
	David Miller <davem@davemloft.net>,
	netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH net-next] tcp: auto corking
Date: Fri, 06 Dec 2013 10:02:54 -0800	[thread overview]
Message-ID: <52A2114E.1070208@hp.com> (raw)
In-Reply-To: <1386351976.30495.266.camel@edumazet-glaptop2.roam.corp.google.com>

On 12/06/2013 09:46 AM, Eric Dumazet wrote:
> On Fri, 2013-12-06 at 08:06 -0800, Rick Jones wrote:
>> On 12/06/2013 02:30 AM, David Laight wrote:
>>>> From: Eric Dumazet <edumazet@google.com>
>>>>
>>>> With the introduction of TCP Small Queues, TSO auto sizing, and TCP
>>>> pacing, we can implement Automatic Corking in the kernel, to help
>>>> applications doing small write()/sendmsg() to TCP sockets.
>>>
>>> Presumably this has the greatest effect on connections with Nagle
>>> disabled?
>>
>> I was wondering why Nagle didn't catch these things as well.  The
>> netperf command line Eric provided though didn't include the
>> test-specific -D option that would have disabled Nagle.  At least not
>> unless the "super_netperf" wrapper was adding it.
>>
>> So, why doesn't Nagle catch what is presumably a sub-MSS send while
>> there is data outstanding on the connection?
>
> super_netperf do not add any option.
>
> Note the netperf results do no really show the improvements of this
> patch. It's a side effect of the short cut.
>
> You kind of need a TCP_RR workload, but splitting the request into small
> chunks.

You mean write, write, read?

If all you need is multiple, small sends in flight at one time, you can 
light-up the burst mode option of netperf and ask it to put multiple 
"transactions" into flight at one time.  But that won't be the same as 
"write, write, read" (when an application presents logically associated 
data to the transport at the same time).  There will still be a 1-1 
correspondence between writes and reads with netperf's burst mode.

> Well written applications use TCP_CORK or MSG_MORE, but unfortunately
> many applications are not well written.

I still like the likes of writev() and other gathering sends better :)

rick jones

  parent reply	other threads:[~2013-12-06 18:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-06  6:36 [PATCH net-next] tcp: auto corking Eric Dumazet
2013-12-06 10:30 ` David Laight
2013-12-06 16:06   ` Rick Jones
2013-12-06 16:30     ` David Laight
2013-12-06 17:46     ` Eric Dumazet
2013-12-06 17:57       ` David Laight
2013-12-06 18:02       ` Rick Jones [this message]
2013-12-06 18:36         ` Eric Dumazet
2013-12-06 21:34     ` Rick Jones
2013-12-06 17:54 ` David Miller

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=52A2114E.1070208@hp.com \
    --to=rick.jones2@hp.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=netdev@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).