Skip to content

Commit

Permalink
NFSD: Trace NFSv4 COMPOUND tags
Browse files Browse the repository at this point in the history
The Linux NFSv4 client implementation does not use COMPOUND tags,
but the Solaris and MacOS implementations do, and so does pynfs.
Record these eye-catchers in the server's trace buffer to annotate
client requests while troubleshooting.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
  • Loading branch information
Chuck Lever committed Sep 26, 2022
1 parent 948755e commit de29cf7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
2 changes: 1 addition & 1 deletion fs/nfsd/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2643,7 +2643,7 @@ nfsd4_proc_compound(struct svc_rqst *rqstp)

rqstp->rq_lease_breaker = (void **)&cstate->clp;

trace_nfsd_compound(rqstp, args->client_opcnt);
trace_nfsd_compound(rqstp, args->tag, args->taglen, args->client_opcnt);
while (!status && resp->opcnt < args->opcnt) {
op = &args->ops[resp->opcnt++];

Expand Down
21 changes: 14 additions & 7 deletions fs/nfsd/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,19 +84,26 @@ DEFINE_NFSD_XDR_ERR_EVENT(cant_encode);
{ NFSD_MAY_64BIT_COOKIE, "64BIT_COOKIE" })

TRACE_EVENT(nfsd_compound,
TP_PROTO(const struct svc_rqst *rqst,
u32 args_opcnt),
TP_ARGS(rqst, args_opcnt),
TP_PROTO(
const struct svc_rqst *rqst,
const char *tag,
u32 taglen,
u32 opcnt
),
TP_ARGS(rqst, tag, taglen, opcnt),
TP_STRUCT__entry(
__field(u32, xid)
__field(u32, args_opcnt)
__field(u32, opcnt)
__string_len(tag, tag, taglen)
),
TP_fast_assign(
__entry->xid = be32_to_cpu(rqst->rq_xid);
__entry->args_opcnt = args_opcnt;
__entry->opcnt = opcnt;
__assign_str_len(tag, tag, taglen);
),
TP_printk("xid=0x%08x opcnt=%u",
__entry->xid, __entry->args_opcnt)
TP_printk("xid=0x%08x opcnt=%u tag=%s",
__entry->xid, __entry->opcnt, __get_str(tag)
)
)

TRACE_EVENT(nfsd_compound_status,
Expand Down

0 comments on commit de29cf7

Please sign in to comment.