All of lore.kernel.org
 help / color / mirror / Atom feed
From: dai.ngo@oracle.com
To: Chuck Lever <cel@kernel.org>
Cc: chuck.lever@oracle.com, jlayton@kernel.org, linux-nfs@vger.kernel.org
Subject: Re: [PATCH v6 5/5] NFSD: add counter for write delegation recall due to conflict GETATTR
Date: Thu, 29 Jun 2023 09:16:14 -0700	[thread overview]
Message-ID: <4da00a75-e291-17c5-ef35-e3d9771a83ce@oracle.com> (raw)
In-Reply-To: <ZJ2eRbqyeFxTIamR@manet.1015granger.net>


On 6/29/23 8:07 AM, Chuck Lever wrote:
> On Wed, Jun 28, 2023 at 07:36:16PM -0700, Dai Ngo wrote:
>> Add counter to keep track of how many times write delegations are
>> recalled due to conflict with GETATTR.
> Should this wee patch be squashed into 3/5 ?

Yes, will squash this into 3/5.

>
> The patch description ought to explain /why/ we want to track
> GETATTR conflicts. (even if you squash it into 3/5). Mostly I'm
> trying to get the important design choices written down so we
> can remember them in a year or two.

will do.

-Dai

>
>
>> Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
>> ---
>>   fs/nfsd/nfs4state.c | 1 +
>>   fs/nfsd/stats.c     | 2 ++
>>   fs/nfsd/stats.h     | 7 +++++++
>>   3 files changed, 10 insertions(+)
>>
>> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
>> index 2d2656c41ffb..6ce95e738359 100644
>> --- a/fs/nfsd/nfs4state.c
>> +++ b/fs/nfsd/nfs4state.c
>> @@ -8410,6 +8410,7 @@ nfsd4_deleg_getattr_conflict(struct svc_rqst *rqstp, struct inode *inode)
>>   			}
>>   break_lease:
>>   			spin_unlock(&ctx->flc_lock);
>> +			nfsd_stats_wdeleg_getattr_inc();
>>   			status = nfserrno(nfsd_open_break_lease(inode, NFSD_MAY_READ));
>>   			if (status != nfserr_jukebox ||
>>   					!nfsd_wait_for_delegreturn(rqstp, inode))
>> diff --git a/fs/nfsd/stats.c b/fs/nfsd/stats.c
>> index 777e24e5da33..63797635e1c3 100644
>> --- a/fs/nfsd/stats.c
>> +++ b/fs/nfsd/stats.c
>> @@ -65,6 +65,8 @@ static int nfsd_show(struct seq_file *seq, void *v)
>>   		seq_printf(seq, " %lld",
>>   			   percpu_counter_sum_positive(&nfsdstats.counter[NFSD_STATS_NFS4_OP(i)]));
>>   	}
>> +	seq_printf(seq, "\nwdeleg_getattr %lld",
>> +		percpu_counter_sum_positive(&nfsdstats.counter[NFSD_STATS_WDELEG_GETATTR]));
>>   
>>   	seq_putc(seq, '\n');
>>   #endif
>> diff --git a/fs/nfsd/stats.h b/fs/nfsd/stats.h
>> index 9b43dc3d9991..cf5524e7ca06 100644
>> --- a/fs/nfsd/stats.h
>> +++ b/fs/nfsd/stats.h
>> @@ -22,6 +22,7 @@ enum {
>>   	NFSD_STATS_FIRST_NFS4_OP,	/* count of individual nfsv4 operations */
>>   	NFSD_STATS_LAST_NFS4_OP = NFSD_STATS_FIRST_NFS4_OP + LAST_NFS4_OP,
>>   #define NFSD_STATS_NFS4_OP(op)	(NFSD_STATS_FIRST_NFS4_OP + (op))
>> +	NFSD_STATS_WDELEG_GETATTR,	/* count of getattr conflict with wdeleg */
>>   #endif
>>   	NFSD_STATS_COUNTERS_NUM
>>   };
>> @@ -93,4 +94,10 @@ static inline void nfsd_stats_drc_mem_usage_sub(struct nfsd_net *nn, s64 amount)
>>   	percpu_counter_sub(&nn->counter[NFSD_NET_DRC_MEM_USAGE], amount);
>>   }
>>   
>> +#ifdef CONFIG_NFSD_V4
>> +static inline void nfsd_stats_wdeleg_getattr_inc(void)
>> +{
>> +	percpu_counter_inc(&nfsdstats.counter[NFSD_STATS_WDELEG_GETATTR]);
>> +}
>> +#endif
>>   #endif /* _NFSD_STATS_H */
>> -- 
>> 2.39.3
>>

  reply	other threads:[~2023-06-29 16:16 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-29  2:36 [PATCH v6 0/5] NFSD: add support for NFSv4.1+ write delegation Dai Ngo
2023-06-29  2:36 ` [PATCH v6 1/5] locks: allow support for " Dai Ngo
2023-06-29  2:36 ` [PATCH v6 2/5] NFSD: Enable write delegation support for NFSv4.1+ client Dai Ngo
2023-06-29 14:54   ` Chuck Lever
2023-06-29 16:15     ` dai.ngo
2023-06-29  2:36 ` [PATCH v6 3/5] NFSD: handle GETATTR conflict with write delegation Dai Ngo
2023-06-29 15:00   ` Chuck Lever
2023-06-29 16:15     ` dai.ngo
2023-06-29  2:36 ` [PATCH v6 4/5] NFSD: allow client to use write delegation stateid for READ Dai Ngo
2023-06-29 15:02   ` Chuck Lever
2023-06-29 15:33     ` Jeff Layton
2023-06-29 16:16     ` dai.ngo
2023-06-29  2:36 ` [PATCH v6 5/5] NFSD: add counter for write delegation recall due to conflict GETATTR Dai Ngo
2023-06-29 15:07   ` Chuck Lever
2023-06-29 16:16     ` dai.ngo [this message]
2023-06-29 14:51 ` [PATCH v6 0/5] NFSD: add support for NFSv4.1+ write delegation Jeff Layton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4da00a75-e291-17c5-ef35-e3d9771a83ce@oracle.com \
    --to=dai.ngo@oracle.com \
    --cc=cel@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.