Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /* FS-Cache statistics
0003  *
0004  * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved.
0005  * Written by David Howells (dhowells@redhat.com)
0006  */
0007 
0008 #define FSCACHE_DEBUG_LEVEL CACHE
0009 #include <linux/proc_fs.h>
0010 #include <linux/seq_file.h>
0011 #include "internal.h"
0012 
0013 /*
0014  * operation counters
0015  */
0016 atomic_t fscache_n_volumes;
0017 atomic_t fscache_n_volumes_collision;
0018 atomic_t fscache_n_volumes_nomem;
0019 atomic_t fscache_n_cookies;
0020 atomic_t fscache_n_cookies_lru;
0021 atomic_t fscache_n_cookies_lru_expired;
0022 atomic_t fscache_n_cookies_lru_removed;
0023 atomic_t fscache_n_cookies_lru_dropped;
0024 
0025 atomic_t fscache_n_acquires;
0026 atomic_t fscache_n_acquires_ok;
0027 atomic_t fscache_n_acquires_oom;
0028 
0029 atomic_t fscache_n_invalidates;
0030 
0031 atomic_t fscache_n_updates;
0032 EXPORT_SYMBOL(fscache_n_updates);
0033 
0034 atomic_t fscache_n_relinquishes;
0035 atomic_t fscache_n_relinquishes_retire;
0036 atomic_t fscache_n_relinquishes_dropped;
0037 
0038 atomic_t fscache_n_resizes;
0039 atomic_t fscache_n_resizes_null;
0040 
0041 atomic_t fscache_n_read;
0042 EXPORT_SYMBOL(fscache_n_read);
0043 atomic_t fscache_n_write;
0044 EXPORT_SYMBOL(fscache_n_write);
0045 atomic_t fscache_n_no_write_space;
0046 EXPORT_SYMBOL(fscache_n_no_write_space);
0047 atomic_t fscache_n_no_create_space;
0048 EXPORT_SYMBOL(fscache_n_no_create_space);
0049 atomic_t fscache_n_culled;
0050 EXPORT_SYMBOL(fscache_n_culled);
0051 
0052 /*
0053  * display the general statistics
0054  */
0055 int fscache_stats_show(struct seq_file *m, void *v)
0056 {
0057     seq_puts(m, "FS-Cache statistics\n");
0058     seq_printf(m, "Cookies: n=%d v=%d vcol=%u voom=%u\n",
0059            atomic_read(&fscache_n_cookies),
0060            atomic_read(&fscache_n_volumes),
0061            atomic_read(&fscache_n_volumes_collision),
0062            atomic_read(&fscache_n_volumes_nomem)
0063            );
0064 
0065     seq_printf(m, "Acquire: n=%u ok=%u oom=%u\n",
0066            atomic_read(&fscache_n_acquires),
0067            atomic_read(&fscache_n_acquires_ok),
0068            atomic_read(&fscache_n_acquires_oom));
0069 
0070     seq_printf(m, "LRU    : n=%u exp=%u rmv=%u drp=%u at=%ld\n",
0071            atomic_read(&fscache_n_cookies_lru),
0072            atomic_read(&fscache_n_cookies_lru_expired),
0073            atomic_read(&fscache_n_cookies_lru_removed),
0074            atomic_read(&fscache_n_cookies_lru_dropped),
0075            timer_pending(&fscache_cookie_lru_timer) ?
0076            fscache_cookie_lru_timer.expires - jiffies : 0);
0077 
0078     seq_printf(m, "Invals : n=%u\n",
0079            atomic_read(&fscache_n_invalidates));
0080 
0081     seq_printf(m, "Updates: n=%u rsz=%u rsn=%u\n",
0082            atomic_read(&fscache_n_updates),
0083            atomic_read(&fscache_n_resizes),
0084            atomic_read(&fscache_n_resizes_null));
0085 
0086     seq_printf(m, "Relinqs: n=%u rtr=%u drop=%u\n",
0087            atomic_read(&fscache_n_relinquishes),
0088            atomic_read(&fscache_n_relinquishes_retire),
0089            atomic_read(&fscache_n_relinquishes_dropped));
0090 
0091     seq_printf(m, "NoSpace: nwr=%u ncr=%u cull=%u\n",
0092            atomic_read(&fscache_n_no_write_space),
0093            atomic_read(&fscache_n_no_create_space),
0094            atomic_read(&fscache_n_culled));
0095 
0096     seq_printf(m, "IO     : rd=%u wr=%u\n",
0097            atomic_read(&fscache_n_read),
0098            atomic_read(&fscache_n_write));
0099 
0100     netfs_stats_show(m);
0101     return 0;
0102 }