Re: [PATCH 3/3] nfsd: add new reply_cache_stats file in nfsdfs

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

 



On Thu, Feb 14, 2013 at 04:45:15PM -0500, Jeff Layton wrote:
> For presenting statistics relating to duplicate reply cache.

Looks to me like a reasonable way to do it.  Holding off on applying for
now.

--b.

> 
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  fs/nfsd/cache.h    |  1 +
>  fs/nfsd/nfscache.c | 18 ++++++++++++++++++
>  fs/nfsd/nfsctl.c   |  9 +++++++++
>  3 files changed, 28 insertions(+)
> 
> diff --git a/fs/nfsd/cache.h b/fs/nfsd/cache.h
> index 87fd141..d5c5b3e 100644
> --- a/fs/nfsd/cache.h
> +++ b/fs/nfsd/cache.h
> @@ -82,6 +82,7 @@ int	nfsd_reply_cache_init(void);
>  void	nfsd_reply_cache_shutdown(void);
>  int	nfsd_cache_lookup(struct svc_rqst *);
>  void	nfsd_cache_update(struct svc_rqst *, int, __be32 *);
> +int	nfsd_reply_cache_stats_open(struct inode *, struct file *);
>  
>  #ifdef CONFIG_NFSD_V4
>  void	nfsd4_set_statp(struct svc_rqst *rqstp, __be32 *statp);
> diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
> index bccf74f..517b92d 100644
> --- a/fs/nfsd/nfscache.c
> +++ b/fs/nfsd/nfscache.c
> @@ -540,3 +540,21 @@ nfsd_cache_append(struct svc_rqst *rqstp, struct kvec *data)
>  	vec->iov_len += data->iov_len;
>  	return 1;
>  }
> +
> +static int nfsd_reply_cache_stats_show(struct seq_file *m, void *v)
> +{
> +	spin_lock(&cache_lock);
> +	seq_printf(m, "max entries:     %u\n", max_drc_entries);
> +	seq_printf(m, "num entries:     %u\n", num_drc_entries);
> +	seq_printf(m, "cache hits:      %u\n", nfsdstats.rchits);
> +	seq_printf(m, "cache misses:    %u\n", nfsdstats.rcmisses);
> +	seq_printf(m, "not cached:      %u\n", nfsdstats.rcnocache);
> +	seq_printf(m, "checksum misses: %u\n", csum_misses);
> +	spin_unlock(&cache_lock);
> +	return 0;
> +}
> +
> +int nfsd_reply_cache_stats_open(struct inode *inode, struct file *file)
> +{
> +	return single_open(file, nfsd_reply_cache_stats_show, NULL);
> +}
> diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
> index 29c3f0d..5dea5af 100644
> --- a/fs/nfsd/nfsctl.c
> +++ b/fs/nfsd/nfsctl.c
> @@ -35,6 +35,7 @@ enum {
>  	NFSD_Threads,
>  	NFSD_Pool_Threads,
>  	NFSD_Pool_Stats,
> +	NFSD_Reply_Cache_Stats,
>  	NFSD_Versions,
>  	NFSD_Ports,
>  	NFSD_MaxBlkSize,
> @@ -194,6 +195,13 @@ static const struct file_operations pool_stats_operations = {
>  	.owner		= THIS_MODULE,
>  };
>  
> +static struct file_operations reply_cache_stats_operations = {
> +	.open		= nfsd_reply_cache_stats_open,
> +	.read		= seq_read,
> +	.llseek		= seq_lseek,
> +	.release	= single_release,
> +};
> +
>  /*----------------------------------------------------------------------------*/
>  /*
>   * payload - write methods
> @@ -1024,6 +1032,7 @@ static int nfsd_fill_super(struct super_block * sb, void * data, int silent)
>  		[NFSD_Threads] = {"threads", &transaction_ops, S_IWUSR|S_IRUSR},
>  		[NFSD_Pool_Threads] = {"pool_threads", &transaction_ops, S_IWUSR|S_IRUSR},
>  		[NFSD_Pool_Stats] = {"pool_stats", &pool_stats_operations, S_IRUGO},
> +		[NFSD_Reply_Cache_Stats] = {"reply_cache_stats", &reply_cache_stats_operations, S_IRUGO},
>  		[NFSD_Versions] = {"versions", &transaction_ops, S_IWUSR|S_IRUSR},
>  		[NFSD_Ports] = {"portlist", &transaction_ops, S_IWUSR|S_IRUGO},
>  		[NFSD_MaxBlkSize] = {"max_block_size", &transaction_ops, S_IWUSR|S_IRUGO},
> -- 
> 1.7.11.7
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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