> On May 13, 2021, at 12:42 PM, David Wysochanski <dwysocha@xxxxxxxxxx> wrote: > > On Wed, May 12, 2021 at 11:36 AM Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: >> >> Improve observation of NFSv4 lease expiry. >> >> Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> >> --- >> fs/nfsd/nfs4state.c | 3 +++ >> 1 file changed, 3 insertions(+) >> > > How about adding a parameter to explain the location of the expiry to > make it more slightly more readable? > Below is an attempt at the two added here, I think there's one more > not shown though in nfs4_laundromat, which you could just use > "laundromat". The usual idiom is to create a trace class, and then create a uniquely named tracepoint for each call site. We already have nfsd_clientid_class so half the work is already done! I'll look into it splitting clid_expired into several tracecpoints. >> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c >> index 08ff643e96fb..7fa90a3177fa 100644 >> --- a/fs/nfsd/nfs4state.c >> +++ b/fs/nfsd/nfs4state.c >> @@ -2665,6 +2665,8 @@ static void force_expire_client(struct nfs4_client *clp) >> struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id); >> bool already_expired; >> >> + trace_nfsd_clid_expired(&clp->cl_clientid); >> + > > trace_nfsd_clid_expired(..., "admin forced"); > >> spin_lock(&clp->cl_lock); >> clp->cl_time = 0; >> spin_unlock(&clp->cl_lock); >> @@ -4075,6 +4077,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, >> goto out; >> status = mark_client_expired_locked(old); >> if (status) { >> + trace_nfsd_clid_expired(&old->cl_clientid); > > trace_nfsd_clid_expired(..., "setclientid_confirm existing"); /* found > an existing confirmed clientid by name */ > >> old = NULL; >> goto out; >> } >> >> > -- Chuck Lever