mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
nfsd: count nfsd_file allocations
We already count the frees (via nfsd_file_releases). Count the allocations as well. Also switch the direct call to nfsd_file_slab_free in nfsd_file_do_acquire to nfsd_file_free, so that the allocs and releases match up. Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
8a79261763
commit
700bb4ff91
@ -56,6 +56,7 @@
|
||||
|
||||
static DEFINE_PER_CPU(unsigned long, nfsd_file_cache_hits);
|
||||
static DEFINE_PER_CPU(unsigned long, nfsd_file_acquisitions);
|
||||
static DEFINE_PER_CPU(unsigned long, nfsd_file_allocations);
|
||||
static DEFINE_PER_CPU(unsigned long, nfsd_file_releases);
|
||||
static DEFINE_PER_CPU(unsigned long, nfsd_file_total_age);
|
||||
static DEFINE_PER_CPU(unsigned long, nfsd_file_evictions);
|
||||
@ -215,6 +216,7 @@ nfsd_file_alloc(struct net *net, struct inode *inode, unsigned char need,
|
||||
if (unlikely(!nf))
|
||||
return NULL;
|
||||
|
||||
this_cpu_inc(nfsd_file_allocations);
|
||||
INIT_LIST_HEAD(&nf->nf_lru);
|
||||
INIT_LIST_HEAD(&nf->nf_gc);
|
||||
nf->nf_birthtime = ktime_get();
|
||||
@ -911,6 +913,7 @@ nfsd_file_cache_shutdown(void)
|
||||
for_each_possible_cpu(i) {
|
||||
per_cpu(nfsd_file_cache_hits, i) = 0;
|
||||
per_cpu(nfsd_file_acquisitions, i) = 0;
|
||||
per_cpu(nfsd_file_allocations, i) = 0;
|
||||
per_cpu(nfsd_file_releases, i) = 0;
|
||||
per_cpu(nfsd_file_total_age, i) = 0;
|
||||
per_cpu(nfsd_file_evictions, i) = 0;
|
||||
@ -1026,7 +1029,7 @@ retry:
|
||||
if (unlikely(nf)) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
rcu_read_unlock();
|
||||
nfsd_file_slab_free(&new->nf_rcu);
|
||||
nfsd_file_free(new);
|
||||
goto wait_for_construction;
|
||||
}
|
||||
nf = new;
|
||||
@ -1200,7 +1203,7 @@ nfsd_file_acquire_opened(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
||||
*/
|
||||
int nfsd_file_cache_stats_show(struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned long releases = 0, evictions = 0;
|
||||
unsigned long allocations = 0, releases = 0, evictions = 0;
|
||||
unsigned long hits = 0, acquisitions = 0;
|
||||
unsigned int i, count = 0, buckets = 0;
|
||||
unsigned long lru = 0, total_age = 0;
|
||||
@ -1225,6 +1228,7 @@ int nfsd_file_cache_stats_show(struct seq_file *m, void *v)
|
||||
for_each_possible_cpu(i) {
|
||||
hits += per_cpu(nfsd_file_cache_hits, i);
|
||||
acquisitions += per_cpu(nfsd_file_acquisitions, i);
|
||||
allocations += per_cpu(nfsd_file_allocations, i);
|
||||
releases += per_cpu(nfsd_file_releases, i);
|
||||
total_age += per_cpu(nfsd_file_total_age, i);
|
||||
evictions += per_cpu(nfsd_file_evictions, i);
|
||||
@ -1235,6 +1239,7 @@ int nfsd_file_cache_stats_show(struct seq_file *m, void *v)
|
||||
seq_printf(m, "lru entries: %lu\n", lru);
|
||||
seq_printf(m, "cache hits: %lu\n", hits);
|
||||
seq_printf(m, "acquisitions: %lu\n", acquisitions);
|
||||
seq_printf(m, "allocations: %lu\n", allocations);
|
||||
seq_printf(m, "releases: %lu\n", releases);
|
||||
seq_printf(m, "evictions: %lu\n", evictions);
|
||||
if (releases)
|
||||
|
Loading…
Reference in New Issue
Block a user