Re: [PATCH v2 09/25] NFSD: Add a couple more nfsd_clid_expired call sites

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> 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







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux