Hi- 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