diff options
author | NeilBrown <neilb@suse.de> | 2014-09-24 11:28:32 +1000 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-09-25 08:25:38 -0400 |
commit | 353db7966288a2f18da22438aeec2b4862c0b241 (patch) | |
tree | 959b0fe5a246747af6db55bb7652d4d35b738ba8 /net/sunrpc/xprtsock.c | |
parent | 9590544694becc64f4874963dbfc4b4d391024b7 (diff) | |
download | op-kernel-dev-353db7966288a2f18da22438aeec2b4862c0b241.zip op-kernel-dev-353db7966288a2f18da22438aeec2b4862c0b241.tar.gz |
NFS: avoid waiting at all in nfs_release_page when congested.
If nfs_release_page() is called on a sequence of pages which are all
in the same file which is blocked on COMMIT, each page could
contribute a 1 second delay which could be come excessive. I have
seen delays of as much as 208 seconds.
To keep the delay to one second, mark the bdi as write-congested
if the commit didn't finished. Once it does finish, the
write-congested flag will be cleared by nfs_commit_release_pages().
With this, the longest total delay in try_to_free_pages that I have
seen is under 3 seconds. With no waiting in nfs_release_page at all
I have seen delays of nearly 1.5 seconds.
Signed-off-by: NeilBrown <neilb@suse.de>
Acked-by: Jeff Layton <jlayton@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'net/sunrpc/xprtsock.c')
0 files changed, 0 insertions, 0 deletions