diff options
Diffstat (limited to 'libbcache/stats_types.h')
-rw-r--r-- | libbcache/stats_types.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libbcache/stats_types.h b/libbcache/stats_types.h new file mode 100644 index 00000000..28e4c69e --- /dev/null +++ b/libbcache/stats_types.h @@ -0,0 +1,56 @@ +#ifndef _BCACHE_STATS_TYPES_H_ +#define _BCACHE_STATS_TYPES_H_ + +struct cache_stat_collector { + union { + struct { + atomic_t cache_hits; + atomic_t cache_misses; + atomic_t cache_bypass_hits; + atomic_t cache_bypass_misses; + }; + + /* cache_hit_array[!bypass][!hit]: */ + atomic_t cache_hit_array[2][2]; + }; + + + atomic_t cache_readaheads; + atomic_t cache_miss_collisions; + atomic_t sectors_bypassed; + atomic_t foreground_write_sectors; + atomic_t gc_write_sectors; + atomic_t discard_sectors; +}; + +struct cache_stats { + struct kobject kobj; + + unsigned long cache_hits; + unsigned long cache_misses; + unsigned long cache_bypass_hits; + unsigned long cache_bypass_misses; + unsigned long cache_readaheads; + unsigned long cache_miss_collisions; + unsigned long sectors_bypassed; + unsigned long foreground_write_sectors; + unsigned long gc_write_sectors; + unsigned long discard_sectors; + + unsigned rescale; +}; + +struct cache_accounting { + struct closure cl; + struct timer_list timer; + atomic_t closing; + + struct cache_stat_collector collector; + + struct cache_stats total; + struct cache_stats five_minute; + struct cache_stats hour; + struct cache_stats day; +}; + +#endif /* _BCACHE_STATS_TYPES_H_ */ |