Linux NFS development
 help / color / mirror / Atom feed
* [PATCH RESEND 0/3] Improvements to page writeback commit policy
@ 2017-06-20 23:35 Trond Myklebust
  2017-06-20 23:35 ` [PATCH RESEND 1/3] NFS: Remove unused fields in the page I/O structures Trond Myklebust
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Trond Myklebust @ 2017-06-20 23:35 UTC (permalink / raw)
  To: Anna Schumaker; +Cc: linux-nfs

The following patches are intended to smooth out the page writeback
performance by ensuring that we commit the data earlier on the server.

We assume that if something is starting writeback on the pages, then
that process wants to commit the data as soon as possible, whether it
is an application or just the background flush process.
We also assume that for streaming type processes, we don't want to pause
the I/O in order to commit, so we don't want to rely on a counter of
in-flight I/O to the entire inode going to zero.

We therefore set up a monitor that counts the number of in-flight
writes for each call to nfs_writepages(). Once all the writes to that
call to nfs_writepages has completed, we send the commit. Note that this
mirrors the behaviour for O_DIRECT writes, where we similarly track the
in-flight writes on a per-call basis.

Trond Myklebust (3):
  NFS: Remove unused fields in the page I/O structures
  NFS: Ensure we commit after writeback is complete
  NFS: Fix commit policy for non-blocking calls to nfs_write_inode()

 fs/nfs/pagelist.c        |  5 ++--
 fs/nfs/write.c           | 59 +++++++++++++++++++++++++++++++++++++++++++++++-
 include/linux/nfs_page.h |  2 +-
 include/linux/nfs_xdr.h  |  3 ++-
 4 files changed, 64 insertions(+), 5 deletions(-)

-- 
2.9.4


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-06-23 21:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-20 23:35 [PATCH RESEND 0/3] Improvements to page writeback commit policy Trond Myklebust
2017-06-20 23:35 ` [PATCH RESEND 1/3] NFS: Remove unused fields in the page I/O structures Trond Myklebust
2017-06-20 23:35   ` [PATCH RESEND 2/3] NFS: Ensure we commit after writeback is complete Trond Myklebust
2017-06-20 23:35     ` [PATCH RESEND 3/3] NFS: Fix commit policy for non-blocking calls to nfs_write_inode() Trond Myklebust
2017-06-20 23:35       ` [PATCH] SUNRPC: Make slot allocation more reliable Trond Myklebust
2017-06-21 14:31 ` [PATCH RESEND 0/3] Improvements to page writeback commit policy Chuck Lever
2017-06-23 20:48   ` Chuck Lever
2017-06-23 21:17     ` Trond Myklebust
2017-06-23 21:35       ` Chuck Lever
2017-06-23 14:56 ` J. Bruce Fields
2017-06-23 15:25   ` Trond Myklebust
2017-06-23 15:29     ` Trond Myklebust

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox