All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] nfs-utils: support for lifting grace period early
@ 2014-08-19 18:49 Jeff Layton
  2014-08-19 18:49 ` [PATCH v2 1/7] sm-notify: inform the kernel if there were no hosts to notify Jeff Layton
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Jeff Layton @ 2014-08-19 18:49 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

This patchset adds some support to sm-notify and nfsdcltrack for lifting
the grace periods early. Allowing this to actually work depends on the
companion kernel patchset, but the approach I've taken here should deal
properly with userland/kernel mismatches.

There are two main pieces:

sm-notify: in the event that sm-notify isn't sending any NOTIFY
requests, we don't expect to see any reclaims from clients. In that
case, we should be able to safely lift the lockd grace period early.
The first patch in the series implements this (though we'll probably
need a bit of selinux work to get that working in Fedora under enforcing
mode).

nfsdcltrack: if there are no v4.0 clients and all v4.1+ clients have
issued a RECLAIM_COMPLETE, then we can go ahead and end the nfsd grace
period. The remainder of the patchset adds the support for this. This
requires revving the DB schema for it, and making use of the environment
variables that are passed to the upcall by the kernel.

With an updated kernel and nfs-utils, I typically see the grace period
being lifted just a few seconds after it starts. It may take a little
longer with more clients, but this is a vast improvement over having
to wait 90s after each reboot to get meaningful work done.

Assuming that the kernel parts are acceptable to Bruce et. al., then I
think we'll want this merged around the same time.

Jeff Layton (7):
  sm-notify: inform the kernel if there were no hosts to notify
  nfsdcltrack: update comments in sqlite.c
  nfsdcltrack: rename CLD_* constants with CLTRACK_* prefixes
  nfsdcltrack: overhaul database initializtion
  nfsdcltrack: update schema to v2
  nfsdcltrack: grab the client minorversion from the env var if it's
    present
  nfsdcltrack: fetch NFSDCLTRACK_GRACE_START out of environment

 utils/nfsdcltrack/nfsdcltrack.c | 106 +++++++++++-
 utils/nfsdcltrack/sqlite.c      | 375 ++++++++++++++++++++++++++++++----------
 utils/nfsdcltrack/sqlite.h      |   5 +-
 utils/statd/sm-notify.c         |  25 +++
 4 files changed, 413 insertions(+), 98 deletions(-)

-- 
1.9.3


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

end of thread, other threads:[~2014-08-19 18:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-19 18:49 [PATCH v2 0/7] nfs-utils: support for lifting grace period early Jeff Layton
2014-08-19 18:49 ` [PATCH v2 1/7] sm-notify: inform the kernel if there were no hosts to notify Jeff Layton
2014-08-19 18:49 ` [PATCH v2 2/7] nfsdcltrack: update comments in sqlite.c Jeff Layton
2014-08-19 18:49 ` [PATCH v2 3/7] nfsdcltrack: rename CLD_* constants with CLTRACK_* prefixes Jeff Layton
2014-08-19 18:49 ` [PATCH v2 4/7] nfsdcltrack: overhaul database initializtion Jeff Layton
2014-08-19 18:49 ` [PATCH v2 5/7] nfsdcltrack: update schema to v2 Jeff Layton
2014-08-19 18:49 ` [PATCH v2 6/7] nfsdcltrack: grab the client minorversion from the env var if it's present Jeff Layton
2014-08-19 18:49 ` [PATCH v2 7/7] nfsdcltrack: fetch NFSDCLTRACK_GRACE_START out of environment Jeff Layton

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.