1*289af54cSDavid Howells // SPDX-License-Identifier: GPL-2.0-or-later 2*289af54cSDavid Howells /* Netfs support statistics 3*289af54cSDavid Howells * 4*289af54cSDavid Howells * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved. 5*289af54cSDavid Howells * Written by David Howells (dhowells@redhat.com) 6*289af54cSDavid Howells */ 7*289af54cSDavid Howells 8*289af54cSDavid Howells #include <linux/export.h> 9*289af54cSDavid Howells #include <linux/seq_file.h> 10*289af54cSDavid Howells #include <linux/netfs.h> 11*289af54cSDavid Howells #include "internal.h" 12*289af54cSDavid Howells 13*289af54cSDavid Howells atomic_t netfs_n_rh_readahead; 14*289af54cSDavid Howells atomic_t netfs_n_rh_readpage; 15*289af54cSDavid Howells atomic_t netfs_n_rh_rreq; 16*289af54cSDavid Howells atomic_t netfs_n_rh_sreq; 17*289af54cSDavid Howells atomic_t netfs_n_rh_download; 18*289af54cSDavid Howells atomic_t netfs_n_rh_download_done; 19*289af54cSDavid Howells atomic_t netfs_n_rh_download_failed; 20*289af54cSDavid Howells atomic_t netfs_n_rh_download_instead; 21*289af54cSDavid Howells atomic_t netfs_n_rh_read; 22*289af54cSDavid Howells atomic_t netfs_n_rh_read_done; 23*289af54cSDavid Howells atomic_t netfs_n_rh_read_failed; 24*289af54cSDavid Howells atomic_t netfs_n_rh_zero; 25*289af54cSDavid Howells atomic_t netfs_n_rh_short_read; 26*289af54cSDavid Howells atomic_t netfs_n_rh_write; 27*289af54cSDavid Howells atomic_t netfs_n_rh_write_done; 28*289af54cSDavid Howells atomic_t netfs_n_rh_write_failed; 29*289af54cSDavid Howells 30*289af54cSDavid Howells void netfs_stats_show(struct seq_file *m) 31*289af54cSDavid Howells { 32*289af54cSDavid Howells seq_printf(m, "RdHelp : RA=%u RP=%u rr=%u sr=%u\n", 33*289af54cSDavid Howells atomic_read(&netfs_n_rh_readahead), 34*289af54cSDavid Howells atomic_read(&netfs_n_rh_readpage), 35*289af54cSDavid Howells atomic_read(&netfs_n_rh_rreq), 36*289af54cSDavid Howells atomic_read(&netfs_n_rh_sreq)); 37*289af54cSDavid Howells seq_printf(m, "RdHelp : ZR=%u sh=%u\n", 38*289af54cSDavid Howells atomic_read(&netfs_n_rh_zero), 39*289af54cSDavid Howells atomic_read(&netfs_n_rh_short_read)); 40*289af54cSDavid Howells seq_printf(m, "RdHelp : DL=%u ds=%u df=%u di=%u\n", 41*289af54cSDavid Howells atomic_read(&netfs_n_rh_download), 42*289af54cSDavid Howells atomic_read(&netfs_n_rh_download_done), 43*289af54cSDavid Howells atomic_read(&netfs_n_rh_download_failed), 44*289af54cSDavid Howells atomic_read(&netfs_n_rh_download_instead)); 45*289af54cSDavid Howells seq_printf(m, "RdHelp : RD=%u rs=%u rf=%u\n", 46*289af54cSDavid Howells atomic_read(&netfs_n_rh_read), 47*289af54cSDavid Howells atomic_read(&netfs_n_rh_read_done), 48*289af54cSDavid Howells atomic_read(&netfs_n_rh_read_failed)); 49*289af54cSDavid Howells seq_printf(m, "RdHelp : WR=%u ws=%u wf=%u\n", 50*289af54cSDavid Howells atomic_read(&netfs_n_rh_write), 51*289af54cSDavid Howells atomic_read(&netfs_n_rh_write_done), 52*289af54cSDavid Howells atomic_read(&netfs_n_rh_write_failed)); 53*289af54cSDavid Howells } 54*289af54cSDavid Howells EXPORT_SYMBOL(netfs_stats_show); 55