netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Rick Jones <rick.jones2@hp.com>, Chris Snook <csnook@redhat.com>,
	Netdev <netdev@vger.kernel.org>
Subject: Re: RFC: Nagle latency tuning
Date: Tue, 9 Sep 2008 14:21:30 -0300	[thread overview]
Message-ID: <20080909172130.GG12726@ghostprotocols.net> (raw)
In-Reply-To: <732BEAC4-63ED-413B-8BE6-E194DFA6DD7B@oracle.com>

Em Tue, Sep 09, 2008 at 12:54:31PM -0400, Chuck Lever escreveu:
> On Sep 9, 2008, at Sep 9, 2008, 12:33 PM, Rick Jones wrote:
>>> Most of the apps where people care about this enough to complain to  
>>> their vendor (the cases I hear about) are in messaging apps, where  
>>> they're relaying a stream of events that have little to do with each 
>>> other, and they want TCP to maintain the integrity of the connection 
>>> and do a modicum of bandwidth management, but 40 ms stalls greatly 
>>> exceed their latency tolerances.
>>
>> What _are_ their latency tolerances?  How often are they willing to  
>> tolerate a modicum of TCP bandwidth management?  Do they go ape when  
>> TCP sits waiting not just for 40ms, but for an entire RTO timer?
>>
>>> Using TCP_NODELAY is often the least bad option, but sometimes it's
>>> infeasible because of its effect on the network, and it certainly
>>> adds to the network stack overhead.  A more tunable Nagle delay would
>>> probably serve many of these apps much better.
>>
>> If the applications are sending streams of logically unrelated sends  
>> down the same socket, then setting TCP_NODELAY is IMO fine.  Where it 
>> isn't fine is where these applications are generating their logically 
>> associated data in two or more small sends.  One send per message good. 
>> Two sends per message bad.
>
> Can the same be said of the Linux kernel's RPC client, which uses  
> MSG_MORE and multiple sends to construct a single RPC request on a TCP  
> socket?
>
> See net/sunrpc/xprtsock.c:xs_send_pagedata() for details.

That is not a problem, it should be equivalent to corking the socket.
I.e. the uncorking operation will be the last part of the buffer, where
'more' will be 0.

- Arnaldo

  reply	other threads:[~2008-09-09 17:30 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-08 21:56 RFC: Nagle latency tuning Christopher Snook
2008-09-08 22:39 ` Rick Jones
2008-09-09  5:10   ` Chris Snook
2008-09-09  5:17     ` David Miller
2008-09-09  5:56       ` Chris Snook
2008-09-09  6:02         ` David Miller
2008-09-09 10:31           ` Mark Brown
2008-09-09 12:05             ` David Miller
2008-09-09 12:09               ` Mark Brown
2008-09-09 12:19                 ` David Miller
2008-09-09  6:22         ` Evgeniy Polyakov
2008-09-09  6:28           ` Chris Snook
2008-09-09 13:00           ` Arnaldo Carvalho de Melo
2008-09-09 14:36     ` Andi Kleen
2008-09-09 18:40       ` Chris Snook
2008-09-09 19:07         ` Andi Kleen
2008-09-09 19:21           ` Arnaldo Carvalho de Melo
2008-09-11  4:08           ` Chris Snook
2008-09-09 19:59         ` David Miller
2008-09-09 20:25           ` Chris Snook
2008-09-22 10:49           ` David Miller
2008-09-22 11:09             ` David Miller
2008-09-22 20:30               ` Andi Kleen
2008-09-22 22:22                 ` Chris Snook
2008-09-22 22:26                   ` David Miller
2008-09-22 23:00                     ` Chris Snook
2008-09-22 23:13                       ` David Miller
2008-09-22 23:24                         ` Andi Kleen
2008-09-22 23:21                           ` David Miller
2008-09-23  0:14                             ` Andi Kleen
2008-09-23  0:33                               ` Rick Jones
2008-09-23  2:12                                 ` Andi Kleen
2008-09-23  1:40                               ` David Miller
2008-09-23  2:23                                 ` Andi Kleen
2008-09-23  2:28                                   ` David Miller
2008-09-23  2:41                                     ` Andi Kleen
2008-09-22 22:47                   ` Rick Jones
2008-09-22 22:57                     ` Chris Snook
2008-09-09 16:33     ` Rick Jones
2008-09-09 16:54       ` Chuck Lever
2008-09-09 17:21         ` Arnaldo Carvalho de Melo [this message]
2008-09-09 17:54         ` Rick Jones
2008-09-08 22:55 ` Andi Kleen
2008-09-09  5:22   ` Chris Snook

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=20080909172130.GG12726@ghostprotocols.net \
    --to=acme@redhat.com \
    --cc=chuck.lever@oracle.com \
    --cc=csnook@redhat.com \
    --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;
as well as URLs for NNTP newsgroup(s).