From: Greg Banks <gnb@melbourne.sgi.com>
To: Shantanu Goel <sgoel01@yahoo.com>
Cc: nfs@lists.sourceforge.net
Subject: Re: [PATCH 2.6.3] Add write throttling to NFS client
Date: Thu, 26 Feb 2004 14:34:05 +1100 [thread overview]
Message-ID: <403D692D.33C4D7E8@melbourne.sgi.com> (raw)
In-Reply-To: 20040225022210.51884.qmail@web12821.mail.yahoo.com
Shantanu Goel wrote:
>
> The stock NFS client does not regulate the # async
> write requests causing other accesses to block in the
> presence of streaming writes.
This is a real problem; the same problem in IRIX was fixed at
6.5.17 (about 2 years ago).
> This patch adds such
> support. For instance, a single dd running in the
> background writing to a file in my home directory
> causes my X session to hang until dd exits. With this
> patch the session does not experience such hangs.
> Please test it out and let me know if you see anything
> problems. I'd like to see this integrated soon.
I discussed this with Dave Chinner (who implemented IRIX' write
throttling), and our conclusion was that this is implementing
throttling at the wrong level. A better approach would be to
change the allocation algorithm of rpc_rqsts to divide the
RPC_MAXREQS space into three fixed spaces by class: sync calls,
async (writes & commits), and all other async calls. Attempts to
allocate a request slot can then be classified into one of
these classes in the struct rpc_procinfo, and when a class'
space is full the allocation fails; the rpc_task already knows
how to sleep and retry request slot allocation.
Alternately, the allocation could treat the classes as priority
classes with sync calls given the highest priority; allocations
would succeed only if there were slots available at the same or
less important priority. For example, there were patches to do
similar things to the block device layer.
The exact numbers chosen for the class sizes will be a subtle
and important tuning decision. It will probably pay to bump up
RPC_MAXREQS to compensate for the subdivision; you'll want the
class for async writes to still be 16 slots in size.
Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
next prev parent reply other threads:[~2004-02-26 3:35 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-25 2:22 [PATCH 2.6.3] Add write throttling to NFS client Shantanu Goel
2004-02-26 3:34 ` Greg Banks [this message]
2004-02-26 4:10 ` Shantanu Goel
2004-02-26 8:41 ` Olaf Kirch
2004-02-26 12:49 ` trond.myklebust
2004-02-26 13:20 ` Bogdan Costescu
2004-02-26 13:40 ` trond.myklebust
2004-02-26 14:50 ` Olaf Kirch
2004-02-26 16:24 ` Bogdan Costescu
2004-02-26 16:16 ` Bogdan Costescu
-- strict thread matches above, loose matches on Subject: below --
2004-02-25 3:19 Shantanu Goel
2004-02-26 17:22 Lever, Charles
2004-02-26 19:18 ` Bogdan Costescu
[not found] <20040301043316.69563.qmail@web12822.mail.yahoo.com>
2004-03-01 5:50 ` trond.myklebust
2004-03-01 6:52 Lever, Charles
[not found] <20040301065511.29682.qmail@web12824.mail.yahoo.com>
2004-03-01 7:49 ` trond.myklebust
[not found] <20040301081456.37082.qmail@web12823.mail.yahoo.com>
2004-03-01 17:38 ` trond.myklebust
[not found] ` <40437AE4.4030407@lehman.com>
2004-03-01 18:18 ` Bogdan Costescu
2004-03-01 18:58 ` trond.myklebust
[not found] ` <35345.207.214.87.84.1078167489.squirrel@webmail.uio.no>
2004-03-02 0:49 ` trond.myklebust
2004-03-01 18:48 ` trond.myklebust
[not found] ` <404387DD.5010205@lehman.com>
2004-03-01 19:03 ` trond.myklebust
[not found] <20040303032213.58494.qmail@web12823.mail.yahoo.com>
[not found] ` <40461CCC.5040609@lehman.com>
2004-03-03 18:35 ` Trond Myklebust
[not found] ` <40462D4C.1060006@lehman.com>
2004-03-03 23:27 ` Trond Myklebust
[not found] <20040303235442.31317.qmail@web12826.mail.yahoo.com>
2004-03-04 0:18 ` Trond Myklebust
2004-03-05 2:22 ` Trond Myklebust
2004-03-04 2:08 Lever, Charles
2004-03-04 2:13 ` Trond Myklebust
[not found] <20040306021648.85080.qmail@web12824.mail.yahoo.com>
2004-03-06 3:42 ` Trond Myklebust
[not found] <20040306035627.79190.qmail@web12822.mail.yahoo.com>
2004-03-06 4:15 ` 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=403D692D.33C4D7E8@melbourne.sgi.com \
--to=gnb@melbourne.sgi.com \
--cc=nfs@lists.sourceforge.net \
--cc=sgoel01@yahoo.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