cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

nfs_iostat.h (4285B)


      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 */
     62enum 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 */
     91enum 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/*
    123 * NFS local caching servicing counters
    124 */
    125enum nfs_stat_fscachecounters {
    126	NFSIOS_FSCACHE_PAGES_READ_OK,
    127	NFSIOS_FSCACHE_PAGES_READ_FAIL,
    128	NFSIOS_FSCACHE_PAGES_WRITTEN_OK,
    129	NFSIOS_FSCACHE_PAGES_WRITTEN_FAIL,
    130	NFSIOS_FSCACHE_PAGES_UNCACHED,
    131	__NFSIOS_FSCACHEMAX,
    132};
    133
    134#endif	/* _LINUX_NFS_IOSTAT */