mbox series

[RFC,00/21] NFSD operation monitoring tracepoints

Message ID 160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net (mailing list archive)
Headers show
Series NFSD operation monitoring tracepoints | expand


Chuck Lever Sept. 16, 2020, 9:42 p.m. UTC

As I've been working on various server bugs, I've been adding
tracepoints that record NFS operation arguments. Here's a snapshot
of this work for your review and comment.

The idea here is to provide a degree of NFS traffic observability
without needing network capture. Tracepoints are generally lighter-
weight than full network capture, allowing effective capture-time
data reduction:

- One or a handful of these can be enabled at a time
- Each tracepoint records much less data per operation than capture
- Extra capture-time filtering can reduce data amount even further
- Some of these operations are infrequent enough that their
  tracepoint could be enabled persistently without a significant
  performance impact (for example, for security auditing)

I've also pushed these patches into a topic branch:

git://git.linux-nfs.org/projects/cel/cel-2.6.git nfsd-more-tracepoints

There is probably more work to be done. For example, one thing I'd
like to do is move client-side helpers (like the macro to display
NFS4ERR status codes symbolically) into an include file that can be
shared with server tracepoints.


Chuck Lever (21):
      NFSD: Add SPDK header for fs/nfsd/trace.c
      SUNRPC: Move the svc_xdr_recvfrom() tracepoint
      SUNRPC: Add svc_xdr_authenticate tracepoint
      NFSD: Clean up the show_nf_may macro
      NFSD: Remove extra "0x" in tracepoint format specifier
      NFSD: Constify @fh argument of knfsd_fh_hash()
      NFSD: Add tracepoint in nfsd_setattr()
      NFSD: Add tracepoint for nfsd_access()
      NFSD: nfsd_compound_status tracepoint should record XID
      NFSD: Add client ID lifetime tracepoints
      NFSD: Add tracepoints to report NFSv4 session state
      NFSD: Add a tracepoint to report the current filehandle
      NFSD: Add GETATTR tracepoint
      NFSD: Add tracepoint in nfsd4_stateid_preprocess()
      NFSD: Add tracepoint to report arguments to NFSv4 OPEN
      NFSD: Add CLOSE tracepoint
      NFSD: Add a tracepoint for DELEGRETURN
      NFSD: Add a lookup tracepoint
      NFSD: Add lock and locku tracepoints
      NFSD: Add tracepoints to record the result of TEST_STATEID and FREE_STATEID
      NFSD: Rename nfsd_ tracepoints to nfsd4_

 fs/nfsd/nfs3proc.c            |    3 +
 fs/nfsd/nfs4callback.c        |   28 +-
 fs/nfsd/nfs4layouts.c         |   16 +-
 fs/nfsd/nfs4proc.c            |   39 +-
 fs/nfsd/nfs4state.c           |  103 ++--
 fs/nfsd/nfsfh.h               |    7 +-
 fs/nfsd/nfsproc.c             |    3 +
 fs/nfsd/trace.c               |    2 +
 fs/nfsd/trace.h               | 1083 +++++++++++++++++++++++++++++++--
 fs/nfsd/vfs.c                 |   21 +-
 include/trace/events/sunrpc.h |   25 +-
 net/sunrpc/svc_xprt.c         |    4 +-
 net/sunrpc/svcauth.c          |    5 +-
 13 files changed, 1151 insertions(+), 188 deletions(-)

Chuck Lever