0001
0002
0003
0004
0005
0006
0007
0008 #include <linux/export.h>
0009 #include <linux/seq_file.h>
0010 #include "internal.h"
0011
0012 atomic_t netfs_n_rh_readahead;
0013 atomic_t netfs_n_rh_readpage;
0014 atomic_t netfs_n_rh_rreq;
0015 atomic_t netfs_n_rh_sreq;
0016 atomic_t netfs_n_rh_download;
0017 atomic_t netfs_n_rh_download_done;
0018 atomic_t netfs_n_rh_download_failed;
0019 atomic_t netfs_n_rh_download_instead;
0020 atomic_t netfs_n_rh_read;
0021 atomic_t netfs_n_rh_read_done;
0022 atomic_t netfs_n_rh_read_failed;
0023 atomic_t netfs_n_rh_zero;
0024 atomic_t netfs_n_rh_short_read;
0025 atomic_t netfs_n_rh_write;
0026 atomic_t netfs_n_rh_write_begin;
0027 atomic_t netfs_n_rh_write_done;
0028 atomic_t netfs_n_rh_write_failed;
0029 atomic_t netfs_n_rh_write_zskip;
0030
0031 void netfs_stats_show(struct seq_file *m)
0032 {
0033 seq_printf(m, "RdHelp : RA=%u RP=%u WB=%u WBZ=%u rr=%u sr=%u\n",
0034 atomic_read(&netfs_n_rh_readahead),
0035 atomic_read(&netfs_n_rh_readpage),
0036 atomic_read(&netfs_n_rh_write_begin),
0037 atomic_read(&netfs_n_rh_write_zskip),
0038 atomic_read(&netfs_n_rh_rreq),
0039 atomic_read(&netfs_n_rh_sreq));
0040 seq_printf(m, "RdHelp : ZR=%u sh=%u sk=%u\n",
0041 atomic_read(&netfs_n_rh_zero),
0042 atomic_read(&netfs_n_rh_short_read),
0043 atomic_read(&netfs_n_rh_write_zskip));
0044 seq_printf(m, "RdHelp : DL=%u ds=%u df=%u di=%u\n",
0045 atomic_read(&netfs_n_rh_download),
0046 atomic_read(&netfs_n_rh_download_done),
0047 atomic_read(&netfs_n_rh_download_failed),
0048 atomic_read(&netfs_n_rh_download_instead));
0049 seq_printf(m, "RdHelp : RD=%u rs=%u rf=%u\n",
0050 atomic_read(&netfs_n_rh_read),
0051 atomic_read(&netfs_n_rh_read_done),
0052 atomic_read(&netfs_n_rh_read_failed));
0053 seq_printf(m, "RdHelp : WR=%u ws=%u wf=%u\n",
0054 atomic_read(&netfs_n_rh_write),
0055 atomic_read(&netfs_n_rh_write_done),
0056 atomic_read(&netfs_n_rh_write_failed));
0057 }
0058 EXPORT_SYMBOL(netfs_stats_show);