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

iostat.h (1870B)


      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
     18struct 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
     26static 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
     32static 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
     38static 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
     45static 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
     53static 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}
     59static 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
     66static inline struct nfs_iostats __percpu *nfs_alloc_iostats(void)
     67{
     68	return alloc_percpu(struct nfs_iostats);
     69}
     70
     71static 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 */