All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.