root/fs/fscache/stats.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. fscache_stats_show

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /* FS-Cache statistics
   3  *
   4  * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   5  * Written by David Howells (dhowells@redhat.com)
   6  */
   7 
   8 #define FSCACHE_DEBUG_LEVEL THREAD
   9 #include <linux/module.h>
  10 #include <linux/proc_fs.h>
  11 #include <linux/seq_file.h>
  12 #include "internal.h"
  13 
  14 /*
  15  * operation counters
  16  */
  17 atomic_t fscache_n_op_pend;
  18 atomic_t fscache_n_op_run;
  19 atomic_t fscache_n_op_enqueue;
  20 atomic_t fscache_n_op_deferred_release;
  21 atomic_t fscache_n_op_initialised;
  22 atomic_t fscache_n_op_release;
  23 atomic_t fscache_n_op_gc;
  24 atomic_t fscache_n_op_cancelled;
  25 atomic_t fscache_n_op_rejected;
  26 
  27 atomic_t fscache_n_attr_changed;
  28 atomic_t fscache_n_attr_changed_ok;
  29 atomic_t fscache_n_attr_changed_nobufs;
  30 atomic_t fscache_n_attr_changed_nomem;
  31 atomic_t fscache_n_attr_changed_calls;
  32 
  33 atomic_t fscache_n_allocs;
  34 atomic_t fscache_n_allocs_ok;
  35 atomic_t fscache_n_allocs_wait;
  36 atomic_t fscache_n_allocs_nobufs;
  37 atomic_t fscache_n_allocs_intr;
  38 atomic_t fscache_n_allocs_object_dead;
  39 atomic_t fscache_n_alloc_ops;
  40 atomic_t fscache_n_alloc_op_waits;
  41 
  42 atomic_t fscache_n_retrievals;
  43 atomic_t fscache_n_retrievals_ok;
  44 atomic_t fscache_n_retrievals_wait;
  45 atomic_t fscache_n_retrievals_nodata;
  46 atomic_t fscache_n_retrievals_nobufs;
  47 atomic_t fscache_n_retrievals_intr;
  48 atomic_t fscache_n_retrievals_nomem;
  49 atomic_t fscache_n_retrievals_object_dead;
  50 atomic_t fscache_n_retrieval_ops;
  51 atomic_t fscache_n_retrieval_op_waits;
  52 
  53 atomic_t fscache_n_stores;
  54 atomic_t fscache_n_stores_ok;
  55 atomic_t fscache_n_stores_again;
  56 atomic_t fscache_n_stores_nobufs;
  57 atomic_t fscache_n_stores_oom;
  58 atomic_t fscache_n_store_ops;
  59 atomic_t fscache_n_store_calls;
  60 atomic_t fscache_n_store_pages;
  61 atomic_t fscache_n_store_radix_deletes;
  62 atomic_t fscache_n_store_pages_over_limit;
  63 
  64 atomic_t fscache_n_store_vmscan_not_storing;
  65 atomic_t fscache_n_store_vmscan_gone;
  66 atomic_t fscache_n_store_vmscan_busy;
  67 atomic_t fscache_n_store_vmscan_cancelled;
  68 atomic_t fscache_n_store_vmscan_wait;
  69 
  70 atomic_t fscache_n_marks;
  71 atomic_t fscache_n_uncaches;
  72 
  73 atomic_t fscache_n_acquires;
  74 atomic_t fscache_n_acquires_null;
  75 atomic_t fscache_n_acquires_no_cache;
  76 atomic_t fscache_n_acquires_ok;
  77 atomic_t fscache_n_acquires_nobufs;
  78 atomic_t fscache_n_acquires_oom;
  79 
  80 atomic_t fscache_n_invalidates;
  81 atomic_t fscache_n_invalidates_run;
  82 
  83 atomic_t fscache_n_updates;
  84 atomic_t fscache_n_updates_null;
  85 atomic_t fscache_n_updates_run;
  86 
  87 atomic_t fscache_n_relinquishes;
  88 atomic_t fscache_n_relinquishes_null;
  89 atomic_t fscache_n_relinquishes_waitcrt;
  90 atomic_t fscache_n_relinquishes_retire;
  91 
  92 atomic_t fscache_n_cookie_index;
  93 atomic_t fscache_n_cookie_data;
  94 atomic_t fscache_n_cookie_special;
  95 
  96 atomic_t fscache_n_object_alloc;
  97 atomic_t fscache_n_object_no_alloc;
  98 atomic_t fscache_n_object_lookups;
  99 atomic_t fscache_n_object_lookups_negative;
 100 atomic_t fscache_n_object_lookups_positive;
 101 atomic_t fscache_n_object_lookups_timed_out;
 102 atomic_t fscache_n_object_created;
 103 atomic_t fscache_n_object_avail;
 104 atomic_t fscache_n_object_dead;
 105 
 106 atomic_t fscache_n_checkaux_none;
 107 atomic_t fscache_n_checkaux_okay;
 108 atomic_t fscache_n_checkaux_update;
 109 atomic_t fscache_n_checkaux_obsolete;
 110 
 111 atomic_t fscache_n_cop_alloc_object;
 112 atomic_t fscache_n_cop_lookup_object;
 113 atomic_t fscache_n_cop_lookup_complete;
 114 atomic_t fscache_n_cop_grab_object;
 115 atomic_t fscache_n_cop_invalidate_object;
 116 atomic_t fscache_n_cop_update_object;
 117 atomic_t fscache_n_cop_drop_object;
 118 atomic_t fscache_n_cop_put_object;
 119 atomic_t fscache_n_cop_sync_cache;
 120 atomic_t fscache_n_cop_attr_changed;
 121 atomic_t fscache_n_cop_read_or_alloc_page;
 122 atomic_t fscache_n_cop_read_or_alloc_pages;
 123 atomic_t fscache_n_cop_allocate_page;
 124 atomic_t fscache_n_cop_allocate_pages;
 125 atomic_t fscache_n_cop_write_page;
 126 atomic_t fscache_n_cop_uncache_page;
 127 atomic_t fscache_n_cop_dissociate_pages;
 128 
 129 atomic_t fscache_n_cache_no_space_reject;
 130 atomic_t fscache_n_cache_stale_objects;
 131 atomic_t fscache_n_cache_retired_objects;
 132 atomic_t fscache_n_cache_culled_objects;
 133 
 134 /*
 135  * display the general statistics
 136  */
 137 int fscache_stats_show(struct seq_file *m, void *v)
 138 {
 139         seq_puts(m, "FS-Cache statistics\n");
 140 
 141         seq_printf(m, "Cookies: idx=%u dat=%u spc=%u\n",
 142                    atomic_read(&fscache_n_cookie_index),
 143                    atomic_read(&fscache_n_cookie_data),
 144                    atomic_read(&fscache_n_cookie_special));
 145 
 146         seq_printf(m, "Objects: alc=%u nal=%u avl=%u ded=%u\n",
 147                    atomic_read(&fscache_n_object_alloc),
 148                    atomic_read(&fscache_n_object_no_alloc),
 149                    atomic_read(&fscache_n_object_avail),
 150                    atomic_read(&fscache_n_object_dead));
 151         seq_printf(m, "ChkAux : non=%u ok=%u upd=%u obs=%u\n",
 152                    atomic_read(&fscache_n_checkaux_none),
 153                    atomic_read(&fscache_n_checkaux_okay),
 154                    atomic_read(&fscache_n_checkaux_update),
 155                    atomic_read(&fscache_n_checkaux_obsolete));
 156 
 157         seq_printf(m, "Pages  : mrk=%u unc=%u\n",
 158                    atomic_read(&fscache_n_marks),
 159                    atomic_read(&fscache_n_uncaches));
 160 
 161         seq_printf(m, "Acquire: n=%u nul=%u noc=%u ok=%u nbf=%u"
 162                    " oom=%u\n",
 163                    atomic_read(&fscache_n_acquires),
 164                    atomic_read(&fscache_n_acquires_null),
 165                    atomic_read(&fscache_n_acquires_no_cache),
 166                    atomic_read(&fscache_n_acquires_ok),
 167                    atomic_read(&fscache_n_acquires_nobufs),
 168                    atomic_read(&fscache_n_acquires_oom));
 169 
 170         seq_printf(m, "Lookups: n=%u neg=%u pos=%u crt=%u tmo=%u\n",
 171                    atomic_read(&fscache_n_object_lookups),
 172                    atomic_read(&fscache_n_object_lookups_negative),
 173                    atomic_read(&fscache_n_object_lookups_positive),
 174                    atomic_read(&fscache_n_object_created),
 175                    atomic_read(&fscache_n_object_lookups_timed_out));
 176 
 177         seq_printf(m, "Invals : n=%u run=%u\n",
 178                    atomic_read(&fscache_n_invalidates),
 179                    atomic_read(&fscache_n_invalidates_run));
 180 
 181         seq_printf(m, "Updates: n=%u nul=%u run=%u\n",
 182                    atomic_read(&fscache_n_updates),
 183                    atomic_read(&fscache_n_updates_null),
 184                    atomic_read(&fscache_n_updates_run));
 185 
 186         seq_printf(m, "Relinqs: n=%u nul=%u wcr=%u rtr=%u\n",
 187                    atomic_read(&fscache_n_relinquishes),
 188                    atomic_read(&fscache_n_relinquishes_null),
 189                    atomic_read(&fscache_n_relinquishes_waitcrt),
 190                    atomic_read(&fscache_n_relinquishes_retire));
 191 
 192         seq_printf(m, "AttrChg: n=%u ok=%u nbf=%u oom=%u run=%u\n",
 193                    atomic_read(&fscache_n_attr_changed),
 194                    atomic_read(&fscache_n_attr_changed_ok),
 195                    atomic_read(&fscache_n_attr_changed_nobufs),
 196                    atomic_read(&fscache_n_attr_changed_nomem),
 197                    atomic_read(&fscache_n_attr_changed_calls));
 198 
 199         seq_printf(m, "Allocs : n=%u ok=%u wt=%u nbf=%u int=%u\n",
 200                    atomic_read(&fscache_n_allocs),
 201                    atomic_read(&fscache_n_allocs_ok),
 202                    atomic_read(&fscache_n_allocs_wait),
 203                    atomic_read(&fscache_n_allocs_nobufs),
 204                    atomic_read(&fscache_n_allocs_intr));
 205         seq_printf(m, "Allocs : ops=%u owt=%u abt=%u\n",
 206                    atomic_read(&fscache_n_alloc_ops),
 207                    atomic_read(&fscache_n_alloc_op_waits),
 208                    atomic_read(&fscache_n_allocs_object_dead));
 209 
 210         seq_printf(m, "Retrvls: n=%u ok=%u wt=%u nod=%u nbf=%u"
 211                    " int=%u oom=%u\n",
 212                    atomic_read(&fscache_n_retrievals),
 213                    atomic_read(&fscache_n_retrievals_ok),
 214                    atomic_read(&fscache_n_retrievals_wait),
 215                    atomic_read(&fscache_n_retrievals_nodata),
 216                    atomic_read(&fscache_n_retrievals_nobufs),
 217                    atomic_read(&fscache_n_retrievals_intr),
 218                    atomic_read(&fscache_n_retrievals_nomem));
 219         seq_printf(m, "Retrvls: ops=%u owt=%u abt=%u\n",
 220                    atomic_read(&fscache_n_retrieval_ops),
 221                    atomic_read(&fscache_n_retrieval_op_waits),
 222                    atomic_read(&fscache_n_retrievals_object_dead));
 223 
 224         seq_printf(m, "Stores : n=%u ok=%u agn=%u nbf=%u oom=%u\n",
 225                    atomic_read(&fscache_n_stores),
 226                    atomic_read(&fscache_n_stores_ok),
 227                    atomic_read(&fscache_n_stores_again),
 228                    atomic_read(&fscache_n_stores_nobufs),
 229                    atomic_read(&fscache_n_stores_oom));
 230         seq_printf(m, "Stores : ops=%u run=%u pgs=%u rxd=%u olm=%u\n",
 231                    atomic_read(&fscache_n_store_ops),
 232                    atomic_read(&fscache_n_store_calls),
 233                    atomic_read(&fscache_n_store_pages),
 234                    atomic_read(&fscache_n_store_radix_deletes),
 235                    atomic_read(&fscache_n_store_pages_over_limit));
 236 
 237         seq_printf(m, "VmScan : nos=%u gon=%u bsy=%u can=%u wt=%u\n",
 238                    atomic_read(&fscache_n_store_vmscan_not_storing),
 239                    atomic_read(&fscache_n_store_vmscan_gone),
 240                    atomic_read(&fscache_n_store_vmscan_busy),
 241                    atomic_read(&fscache_n_store_vmscan_cancelled),
 242                    atomic_read(&fscache_n_store_vmscan_wait));
 243 
 244         seq_printf(m, "Ops    : pend=%u run=%u enq=%u can=%u rej=%u\n",
 245                    atomic_read(&fscache_n_op_pend),
 246                    atomic_read(&fscache_n_op_run),
 247                    atomic_read(&fscache_n_op_enqueue),
 248                    atomic_read(&fscache_n_op_cancelled),
 249                    atomic_read(&fscache_n_op_rejected));
 250         seq_printf(m, "Ops    : ini=%u dfr=%u rel=%u gc=%u\n",
 251                    atomic_read(&fscache_n_op_initialised),
 252                    atomic_read(&fscache_n_op_deferred_release),
 253                    atomic_read(&fscache_n_op_release),
 254                    atomic_read(&fscache_n_op_gc));
 255 
 256         seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
 257                    atomic_read(&fscache_n_cop_alloc_object),
 258                    atomic_read(&fscache_n_cop_lookup_object),
 259                    atomic_read(&fscache_n_cop_lookup_complete),
 260                    atomic_read(&fscache_n_cop_grab_object));
 261         seq_printf(m, "CacheOp: inv=%d upo=%d dro=%d pto=%d atc=%d syn=%d\n",
 262                    atomic_read(&fscache_n_cop_invalidate_object),
 263                    atomic_read(&fscache_n_cop_update_object),
 264                    atomic_read(&fscache_n_cop_drop_object),
 265                    atomic_read(&fscache_n_cop_put_object),
 266                    atomic_read(&fscache_n_cop_attr_changed),
 267                    atomic_read(&fscache_n_cop_sync_cache));
 268         seq_printf(m, "CacheOp: rap=%d ras=%d alp=%d als=%d wrp=%d ucp=%d dsp=%d\n",
 269                    atomic_read(&fscache_n_cop_read_or_alloc_page),
 270                    atomic_read(&fscache_n_cop_read_or_alloc_pages),
 271                    atomic_read(&fscache_n_cop_allocate_page),
 272                    atomic_read(&fscache_n_cop_allocate_pages),
 273                    atomic_read(&fscache_n_cop_write_page),
 274                    atomic_read(&fscache_n_cop_uncache_page),
 275                    atomic_read(&fscache_n_cop_dissociate_pages));
 276         seq_printf(m, "CacheEv: nsp=%d stl=%d rtr=%d cul=%d\n",
 277                    atomic_read(&fscache_n_cache_no_space_reject),
 278                    atomic_read(&fscache_n_cache_stale_objects),
 279                    atomic_read(&fscache_n_cache_retired_objects),
 280                    atomic_read(&fscache_n_cache_culled_objects));
 281         return 0;
 282 }

/* [<][>][^][v][top][bottom][index][help] */