root/fs/nfs/iostat.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. nfs_inc_server_stats
  2. nfs_inc_stats
  3. nfs_add_server_stats
  4. nfs_add_stats
  5. nfs_add_fscache_stats
  6. nfs_inc_fscache_stats
  7. nfs_alloc_iostats
  8. nfs_free_iostats

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  *  linux/fs/nfs/iostat.h
   4  *
   5  *  Declarations for NFS client per-mount statistics
   6  *
   7  *  Copyright (C) 2005, 2006 Chuck Lever <cel@netapp.com>
   8  *
   9  */
  10 
  11 #ifndef _NFS_IOSTAT
  12 #define _NFS_IOSTAT
  13 
  14 #include <linux/percpu.h>
  15 #include <linux/cache.h>
  16 #include <linux/nfs_iostat.h>
  17 
  18 struct nfs_iostats {
  19         unsigned long long      bytes[__NFSIOS_BYTESMAX];
  20 #ifdef CONFIG_NFS_FSCACHE
  21         unsigned long long      fscache[__NFSIOS_FSCACHEMAX];
  22 #endif
  23         unsigned long           events[__NFSIOS_COUNTSMAX];
  24 } ____cacheline_aligned;
  25 
  26 static inline void nfs_inc_server_stats(const struct nfs_server *server,
  27                                         enum nfs_stat_eventcounters stat)
  28 {
  29         this_cpu_inc(server->io_stats->events[stat]);
  30 }
  31 
  32 static inline void nfs_inc_stats(const struct inode *inode,
  33                                  enum nfs_stat_eventcounters stat)
  34 {
  35         nfs_inc_server_stats(NFS_SERVER(inode), stat);
  36 }
  37 
  38 static inline void nfs_add_server_stats(const struct nfs_server *server,
  39                                         enum nfs_stat_bytecounters stat,
  40                                         long addend)
  41 {
  42         this_cpu_add(server->io_stats->bytes[stat], addend);
  43 }
  44 
  45 static inline void nfs_add_stats(const struct inode *inode,
  46                                  enum nfs_stat_bytecounters stat,
  47                                  long addend)
  48 {
  49         nfs_add_server_stats(NFS_SERVER(inode), stat, addend);
  50 }
  51 
  52 #ifdef CONFIG_NFS_FSCACHE
  53 static inline void nfs_add_fscache_stats(struct inode *inode,
  54                                          enum nfs_stat_fscachecounters stat,
  55                                          long addend)
  56 {
  57         this_cpu_add(NFS_SERVER(inode)->io_stats->fscache[stat], addend);
  58 }
  59 static inline void nfs_inc_fscache_stats(struct inode *inode,
  60                                          enum nfs_stat_fscachecounters stat)
  61 {
  62         this_cpu_inc(NFS_SERVER(inode)->io_stats->fscache[stat]);
  63 }
  64 #endif
  65 
  66 static inline struct nfs_iostats __percpu *nfs_alloc_iostats(void)
  67 {
  68         return alloc_percpu(struct nfs_iostats);
  69 }
  70 
  71 static inline void nfs_free_iostats(struct nfs_iostats __percpu *stats)
  72 {
  73         if (stats != NULL)
  74                 free_percpu(stats);
  75 }
  76 
  77 #endif /* _NFS_IOSTAT */

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