Message ID | 162083375498.3108.14242612463783055564.stgit@klimt.1015granger.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | NFSD callback and lease management observability | expand |
On Wed, May 12, 2021 at 11:36 AM Chuck Lever <chuck.lever@oracle.com> wrote: > > Improve observation of NFSv4 lease expiry. > > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> > --- > 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". > 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; > } > >
> On May 13, 2021, at 12:42 PM, David Wysochanski <dwysocha@redhat.com> wrote: > > On Wed, May 12, 2021 at 11:36 AM Chuck Lever <chuck.lever@oracle.com> wrote: >> >> Improve observation of NFSv4 lease expiry. >> >> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> >> --- >> 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
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); + 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); old = NULL; goto out; }
Improve observation of NFSv4 lease expiry. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> --- fs/nfsd/nfs4state.c | 3 +++ 1 file changed, 3 insertions(+)