From: Dean <seattleplus@gmail.com>
To: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Andy Adamson <andros@netapp.com>,
Jeff Layton <jlayton@redhat.com>,
Badari Pulavarty <pbadari@us.ibm.com>,
Chuck Lever <chuck.lever@oracle.com>,
linux-nfs@vger.kernel.org, khoa@us.ibm.com
Subject: Re: [RFC][PATCH] Vector read/write support for NFS (DIO) client
Date: Wed, 13 Apr 2011 23:39:42 -0700 [thread overview]
Message-ID: <4DA696AE.3060002@gmail.com> (raw)
In-Reply-To: <1302741769.4789.7.camel@lade.trondhjem.org>
On 4/13/11 5:42 PM, Trond Myklebust wrote:
> On Wed, 2011-04-13 at 17:21 -0700, Dean wrote:
>>>>> This issue has come up several times recently. My preference would be to
>>>>> tie the availability of slots to the TCP window size, and basically say
>>>>> that if the SOCK_ASYNC_NOSPACE flag is set on the socket, then we hold
>>>>> off allocating more slots until we get a ->write_space() callback which
>>>>> clears that flag.
>>>>>
>>>>> For the RDMA case, we can continue to use the current system of a fixed
>>>>> number of preallocated slots.
>>>>>
>>>> I take it then that we'd want a similar scheme for UDP as well? I guess
>>>> I'm just not sure what the slot table is supposed to be for.
>>> [andros] I look at the rpc_slot table as a representation of the amount of data the connection to the server
>>> can handle - basically the #slots should = double the bandwidth-delay product divided by the max(rsize/wsize).
>>> For TCP, this is the window size. (ping of max MTU packet * interface bandwidth).
>>> There is no reason to allocate more rpc_rqsts that can fit on the wire.
>> I agree with checking for space on the link.
>>
>> The above formula is a good lower bound on the maximum number of slots,
>> but there are many times when a client could use more slots than the
>> above formula. For example, we don't want to punish writes if rsize>
>> wsize. Also, you have to account for the server memory, which can
>> sometimes hold several write requests while waiting for them to be
>> sync'd to disk, leaving the TCP buffers less than full.
> Err... No... On the contrary, it is a good _upper_ bound on the number
> of slots. There is no point in allocating a slot for an RPC request
> which you know you have no ability to transmit. That has nothing to do
> with rsize or wsize values: if the socket is backed up, it won't take
> more data.
Absolutely, I'm just trying to point out that checking the
SOCK_ASYNC_NOSPACE flag seems to be the only way to guarantee it won't
take more data.
Dean
> Trond
>
next prev parent reply other threads:[~2011-04-14 6:39 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-12 15:32 [RFC][PATCH] Vector read/write support for NFS (DIO) client Badari Pulavarty
2011-04-12 15:36 ` Chuck Lever
2011-04-12 16:15 ` Badari Pulavarty
2011-04-12 16:42 ` Chuck Lever
2011-04-12 17:46 ` Badari Pulavarty
2011-04-13 12:36 ` Jeff Layton
2011-04-13 13:43 ` Badari Pulavarty
2011-04-13 14:02 ` Jeff Layton
2011-04-13 14:22 ` Trond Myklebust
2011-04-13 14:27 ` Andy Adamson
2011-04-13 17:20 ` Jeff Layton
2011-04-13 17:35 ` Trond Myklebust
2011-04-13 17:56 ` Andy Adamson
2011-04-13 18:14 ` Trond Myklebust
2011-04-13 18:47 ` Chuck Lever
2011-04-13 19:04 ` Jeff Layton
2011-04-14 0:21 ` Dean
2011-04-14 0:42 ` Trond Myklebust
2011-04-14 6:39 ` Dean [this message]
2011-04-12 15:49 ` Trond Myklebust
[not found] ` <1302623369.4801.28.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2011-04-12 16:17 ` Badari Pulavarty
2011-04-12 16:26 ` Trond Myklebust
2011-04-15 17:33 ` Christoph Hellwig
2011-04-15 18:00 ` Trond Myklebust
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=4DA696AE.3060002@gmail.com \
--to=seattleplus@gmail.com \
--cc=Trond.Myklebust@netapp.com \
--cc=andros@netapp.com \
--cc=chuck.lever@oracle.com \
--cc=jlayton@redhat.com \
--cc=khoa@us.ibm.com \
--cc=linux-nfs@vger.kernel.org \
--cc=pbadari@us.ibm.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).