NFSD: Add tracepoints to NFSD's duplicate reply cache
Try to capture DRC failures. Two additional clean-ups: - Introduce Doxygen-style comments for the main entry points - Remove a dprintk that fires for an allocation failure. This was the only dprintk in the REPCACHE class. Reported-by: kbuild test robot <lkp@intel.com> [ cel: force typecast for display of checksum values ] Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
@@ -432,6 +432,65 @@ TRACE_EVENT(nfsd_file_fsnotify_handle_event,
|
||||
__entry->nlink, __entry->mode, __entry->mask)
|
||||
);
|
||||
|
||||
#include "cache.h"
|
||||
|
||||
TRACE_DEFINE_ENUM(RC_DROPIT);
|
||||
TRACE_DEFINE_ENUM(RC_REPLY);
|
||||
TRACE_DEFINE_ENUM(RC_DOIT);
|
||||
|
||||
#define show_drc_retval(x) \
|
||||
__print_symbolic(x, \
|
||||
{ RC_DROPIT, "DROPIT" }, \
|
||||
{ RC_REPLY, "REPLY" }, \
|
||||
{ RC_DOIT, "DOIT" })
|
||||
|
||||
TRACE_EVENT(nfsd_drc_found,
|
||||
TP_PROTO(
|
||||
const struct nfsd_net *nn,
|
||||
const struct svc_rqst *rqstp,
|
||||
int result
|
||||
),
|
||||
TP_ARGS(nn, rqstp, result),
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned long long, boot_time)
|
||||
__field(unsigned long, result)
|
||||
__field(u32, xid)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->boot_time = nn->boot_time;
|
||||
__entry->result = result;
|
||||
__entry->xid = be32_to_cpu(rqstp->rq_xid);
|
||||
),
|
||||
TP_printk("boot_time=%16llx xid=0x%08x result=%s",
|
||||
__entry->boot_time, __entry->xid,
|
||||
show_drc_retval(__entry->result))
|
||||
|
||||
);
|
||||
|
||||
TRACE_EVENT(nfsd_drc_mismatch,
|
||||
TP_PROTO(
|
||||
const struct nfsd_net *nn,
|
||||
const struct svc_cacherep *key,
|
||||
const struct svc_cacherep *rp
|
||||
),
|
||||
TP_ARGS(nn, key, rp),
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned long long, boot_time)
|
||||
__field(u32, xid)
|
||||
__field(u32, cached)
|
||||
__field(u32, ingress)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->boot_time = nn->boot_time;
|
||||
__entry->xid = be32_to_cpu(key->c_key.k_xid);
|
||||
__entry->cached = (__force u32)key->c_key.k_csum;
|
||||
__entry->ingress = (__force u32)rp->c_key.k_csum;
|
||||
),
|
||||
TP_printk("boot_time=%16llx xid=0x%08x cached-csum=0x%08x ingress-csum=0x%08x",
|
||||
__entry->boot_time, __entry->xid, __entry->cached,
|
||||
__entry->ingress)
|
||||
);
|
||||
|
||||
#endif /* _NFSD_TRACE_H */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
|
Reference in New Issue
Block a user