Commit | Line | Data |
---|---|---|
1e1236b8 DH |
1 | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | /* FS-Cache statistics | |
3 | * | |
4 | * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved. | |
5 | * Written by David Howells (dhowells@redhat.com) | |
6 | */ | |
7 | ||
8 | #define FSCACHE_DEBUG_LEVEL CACHE | |
9 | #include <linux/proc_fs.h> | |
10 | #include <linux/seq_file.h> | |
11 | #include "internal.h" | |
12 | ||
62ab6335 DH |
13 | /* |
14 | * operation counters | |
15 | */ | |
16 | atomic_t fscache_n_volumes; | |
17 | atomic_t fscache_n_volumes_collision; | |
18 | atomic_t fscache_n_volumes_nomem; | |
7f3283ab | 19 | atomic_t fscache_n_cookies; |
12bb21a2 DH |
20 | atomic_t fscache_n_cookies_lru; |
21 | atomic_t fscache_n_cookies_lru_expired; | |
22 | atomic_t fscache_n_cookies_lru_removed; | |
23 | atomic_t fscache_n_cookies_lru_dropped; | |
7f3283ab DH |
24 | |
25 | atomic_t fscache_n_acquires; | |
26 | atomic_t fscache_n_acquires_ok; | |
27 | atomic_t fscache_n_acquires_oom; | |
28 | ||
d24af13e DH |
29 | atomic_t fscache_n_invalidates; |
30 | ||
7f3283ab DH |
31 | atomic_t fscache_n_updates; |
32 | EXPORT_SYMBOL(fscache_n_updates); | |
33 | ||
34 | atomic_t fscache_n_relinquishes; | |
35 | atomic_t fscache_n_relinquishes_retire; | |
36 | atomic_t fscache_n_relinquishes_dropped; | |
62ab6335 | 37 | |
16a96bdf DH |
38 | atomic_t fscache_n_resizes; |
39 | atomic_t fscache_n_resizes_null; | |
40 | ||
8e7a867b DH |
41 | atomic_t fscache_n_read; |
42 | EXPORT_SYMBOL(fscache_n_read); | |
43 | atomic_t fscache_n_write; | |
44 | EXPORT_SYMBOL(fscache_n_write); | |
3929eca7 DH |
45 | atomic_t fscache_n_no_write_space; |
46 | EXPORT_SYMBOL(fscache_n_no_write_space); | |
47 | atomic_t fscache_n_no_create_space; | |
48 | EXPORT_SYMBOL(fscache_n_no_create_space); | |
9f08ebc3 DH |
49 | atomic_t fscache_n_culled; |
50 | EXPORT_SYMBOL(fscache_n_culled); | |
8e7a867b | 51 | |
1e1236b8 DH |
52 | /* |
53 | * display the general statistics | |
54 | */ | |
55 | int fscache_stats_show(struct seq_file *m, void *v) | |
56 | { | |
57 | seq_puts(m, "FS-Cache statistics\n"); | |
7f3283ab DH |
58 | seq_printf(m, "Cookies: n=%d v=%d vcol=%u voom=%u\n", |
59 | atomic_read(&fscache_n_cookies), | |
62ab6335 DH |
60 | atomic_read(&fscache_n_volumes), |
61 | atomic_read(&fscache_n_volumes_collision), | |
62 | atomic_read(&fscache_n_volumes_nomem) | |
63 | ); | |
1e1236b8 | 64 | |
7f3283ab DH |
65 | seq_printf(m, "Acquire: n=%u ok=%u oom=%u\n", |
66 | atomic_read(&fscache_n_acquires), | |
67 | atomic_read(&fscache_n_acquires_ok), | |
68 | atomic_read(&fscache_n_acquires_oom)); | |
69 | ||
12bb21a2 DH |
70 | seq_printf(m, "LRU : n=%u exp=%u rmv=%u drp=%u at=%ld\n", |
71 | atomic_read(&fscache_n_cookies_lru), | |
72 | atomic_read(&fscache_n_cookies_lru_expired), | |
73 | atomic_read(&fscache_n_cookies_lru_removed), | |
74 | atomic_read(&fscache_n_cookies_lru_dropped), | |
75 | timer_pending(&fscache_cookie_lru_timer) ? | |
76 | fscache_cookie_lru_timer.expires - jiffies : 0); | |
77 | ||
d24af13e DH |
78 | seq_printf(m, "Invals : n=%u\n", |
79 | atomic_read(&fscache_n_invalidates)); | |
80 | ||
16a96bdf DH |
81 | seq_printf(m, "Updates: n=%u rsz=%u rsn=%u\n", |
82 | atomic_read(&fscache_n_updates), | |
83 | atomic_read(&fscache_n_resizes), | |
84 | atomic_read(&fscache_n_resizes_null)); | |
7f3283ab DH |
85 | |
86 | seq_printf(m, "Relinqs: n=%u rtr=%u drop=%u\n", | |
87 | atomic_read(&fscache_n_relinquishes), | |
88 | atomic_read(&fscache_n_relinquishes_retire), | |
89 | atomic_read(&fscache_n_relinquishes_dropped)); | |
90 | ||
9f08ebc3 | 91 | seq_printf(m, "NoSpace: nwr=%u ncr=%u cull=%u\n", |
3929eca7 | 92 | atomic_read(&fscache_n_no_write_space), |
9f08ebc3 DH |
93 | atomic_read(&fscache_n_no_create_space), |
94 | atomic_read(&fscache_n_culled)); | |
3929eca7 | 95 | |
8e7a867b DH |
96 | seq_printf(m, "IO : rd=%u wr=%u\n", |
97 | atomic_read(&fscache_n_read), | |
98 | atomic_read(&fscache_n_write)); | |
99 | ||
1e1236b8 DH |
100 | netfs_stats_show(m); |
101 | return 0; | |
102 | } |