linux/drivers/md/bcache/stats.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _BCACHE_STATS_H_
   3#define _BCACHE_STATS_H_
   4
   5struct cache_stat_collector {
   6        atomic_t cache_hits;
   7        atomic_t cache_misses;
   8        atomic_t cache_bypass_hits;
   9        atomic_t cache_bypass_misses;
  10        atomic_t cache_readaheads;
  11        atomic_t cache_miss_collisions;
  12        atomic_t sectors_bypassed;
  13};
  14
  15struct cache_stats {
  16        struct kobject          kobj;
  17
  18        unsigned long cache_hits;
  19        unsigned long cache_misses;
  20        unsigned long cache_bypass_hits;
  21        unsigned long cache_bypass_misses;
  22        unsigned long cache_readaheads;
  23        unsigned long cache_miss_collisions;
  24        unsigned long sectors_bypassed;
  25
  26        unsigned                rescale;
  27};
  28
  29struct cache_accounting {
  30        struct closure          cl;
  31        struct timer_list       timer;
  32        atomic_t                closing;
  33
  34        struct cache_stat_collector collector;
  35
  36        struct cache_stats total;
  37        struct cache_stats five_minute;
  38        struct cache_stats hour;
  39        struct cache_stats day;
  40};
  41
  42struct cache_set;
  43struct cached_dev;
  44struct bcache_device;
  45
  46void bch_cache_accounting_init(struct cache_accounting *acc,
  47                               struct closure *parent);
  48
  49int bch_cache_accounting_add_kobjs(struct cache_accounting *acc,
  50                                   struct kobject *parent);
  51
  52void bch_cache_accounting_clear(struct cache_accounting *acc);
  53
  54void bch_cache_accounting_destroy(struct cache_accounting *acc);
  55
  56void bch_mark_cache_accounting(struct cache_set *, struct bcache_device *,
  57                               bool, bool);
  58void bch_mark_cache_readahead(struct cache_set *, struct bcache_device *);
  59void bch_mark_cache_miss_collision(struct cache_set *, struct bcache_device *);
  60void bch_mark_sectors_bypassed(struct cache_set *, struct cached_dev *, int);
  61
  62#endif /* _BCACHE_STATS_H_ */
  63