~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/nfs_iostat.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*
  3  *  User-space visible declarations for NFS client per-mount
  4  *  point statistics
  5  *
  6  *  Copyright (C) 2005, 2006 Chuck Lever <cel@netapp.com>
  7  *
  8  *  NFS client per-mount statistics provide information about the
  9  *  health of the NFS client and the health of each NFS mount point.
 10  *  Generally these are not for detailed problem diagnosis, but
 11  *  simply to indicate that there is a problem.
 12  *
 13  *  These counters are not meant to be human-readable, but are meant
 14  *  to be integrated into system monitoring tools such as "sar" and
 15  *  "iostat".  As such, the counters are sampled by the tools over
 16  *  time, and are never zeroed after a file system is mounted.
 17  *  Moving averages can be computed by the tools by taking the
 18  *  difference between two instantaneous samples  and dividing that
 19  *  by the time between the samples.
 20  */
 21 
 22 #ifndef _LINUX_NFS_IOSTAT
 23 #define _LINUX_NFS_IOSTAT
 24 
 25 #define NFS_IOSTAT_VERS         "1.1"
 26 
 27 /*
 28  * NFS byte counters
 29  *
 30  * 1.  SERVER - the number of payload bytes read from or written
 31  *     to the server by the NFS client via an NFS READ or WRITE
 32  *     request.
 33  *
 34  * 2.  NORMAL - the number of bytes read or written by applications
 35  *     via the read(2) and write(2) system call interfaces.
 36  *
 37  * 3.  DIRECT - the number of bytes read or written from files
 38  *     opened with the O_DIRECT flag.
 39  *
 40  * These counters give a view of the data throughput into and out
 41  * of the NFS client.  Comparing the number of bytes requested by
 42  * an application with the number of bytes the client requests from
 43  * the server can provide an indication of client efficiency
 44  * (per-op, cache hits, etc).
 45  *
 46  * These counters can also help characterize which access methods
 47  * are in use.  DIRECT by itself shows whether there is any O_DIRECT
 48  * traffic.  NORMAL + DIRECT shows how much data is going through
 49  * the system call interface.  A large amount of SERVER traffic
 50  * without much NORMAL or DIRECT traffic shows that applications
 51  * are using mapped files.
 52  *
 53  * NFS page counters
 54  *
 55  * These count the number of pages read or written via nfs_readpage(),
 56  * nfs_readpages(), or their write equivalents.
 57  *
 58  * NB: When adding new byte counters, please include the measured
 59  * units in the name of each byte counter to help users of this
 60  * interface determine what exactly is being counted.
 61  */
 62 enum nfs_stat_bytecounters {
 63         NFSIOS_NORMALREADBYTES = 0,
 64         NFSIOS_NORMALWRITTENBYTES,
 65         NFSIOS_DIRECTREADBYTES,
 66         NFSIOS_DIRECTWRITTENBYTES,
 67         NFSIOS_SERVERREADBYTES,
 68         NFSIOS_SERVERWRITTENBYTES,
 69         NFSIOS_READPAGES,
 70         NFSIOS_WRITEPAGES,
 71         __NFSIOS_BYTESMAX,
 72 };
 73 
 74 /*
 75  * NFS event counters
 76  *
 77  * These counters provide a low-overhead way of monitoring client
 78  * activity without enabling NFS trace debugging.  The counters
 79  * show the rate at which VFS requests are made, and how often the
 80  * client invalidates its data and attribute caches.  This allows
 81  * system administrators to monitor such things as how close-to-open
 82  * is working, and answer questions such as "why are there so many
 83  * GETATTR requests on the wire?"
 84  *
 85  * They also count anamolous events such as short reads and writes,
 86  * silly renames due to close-after-delete, and operations that
 87  * change the size of a file (such operations can often be the
 88  * source of data corruption if applications aren't using file
 89  * locking properly).
 90  */
 91 enum nfs_stat_eventcounters {
 92         NFSIOS_INODEREVALIDATE = 0,
 93         NFSIOS_DENTRYREVALIDATE,
 94         NFSIOS_DATAINVALIDATE,
 95         NFSIOS_ATTRINVALIDATE,
 96         NFSIOS_VFSOPEN,
 97         NFSIOS_VFSLOOKUP,
 98         NFSIOS_VFSACCESS,
 99         NFSIOS_VFSUPDATEPAGE,
100         NFSIOS_VFSREADPAGE,
101         NFSIOS_VFSREADPAGES,
102         NFSIOS_VFSWRITEPAGE,
103         NFSIOS_VFSWRITEPAGES,
104         NFSIOS_VFSGETDENTS,
105         NFSIOS_VFSSETATTR,
106         NFSIOS_VFSFLUSH,
107         NFSIOS_VFSFSYNC,
108         NFSIOS_VFSLOCK,
109         NFSIOS_VFSRELEASE,
110         NFSIOS_CONGESTIONWAIT,
111         NFSIOS_SETATTRTRUNC,
112         NFSIOS_EXTENDWRITE,
113         NFSIOS_SILLYRENAME,
114         NFSIOS_SHORTREAD,
115         NFSIOS_SHORTWRITE,
116         NFSIOS_DELAY,
117         NFSIOS_PNFS_READ,
118         NFSIOS_PNFS_WRITE,
119         __NFSIOS_COUNTSMAX,
120 };
121 
122 #endif  /* _LINUX_NFS_IOSTAT */
123 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php