Commit 86d7de66 authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk Committed by Greg Kroah-Hartman

zcache: Move the last of the debugfs counters out

We now have in zcache-main only the counters that are
are not debugfs related.
Acked-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9c0ad59e
...@@ -128,34 +128,56 @@ static inline unsigned long curr_pageframes_count(void) ...@@ -128,34 +128,56 @@ static inline unsigned long curr_pageframes_count(void)
atomic_read(&zcache_pers_pageframes_atomic); atomic_read(&zcache_pers_pageframes_atomic);
}; };
/* but for the rest of these, counting races are ok */ /* but for the rest of these, counting races are ok */
extern ssize_t zcache_flush_total; static ssize_t zcache_flush_total;
extern ssize_t zcache_flush_found; static ssize_t zcache_flush_found;
extern ssize_t zcache_flobj_total; static ssize_t zcache_flobj_total;
extern ssize_t zcache_flobj_found; static ssize_t zcache_flobj_found;
extern ssize_t zcache_failed_eph_puts; static ssize_t zcache_failed_eph_puts;
extern ssize_t zcache_failed_pers_puts; static ssize_t zcache_failed_pers_puts;
extern ssize_t zcache_failed_getfreepages; static ssize_t zcache_failed_getfreepages;
extern ssize_t zcache_failed_alloc; static ssize_t zcache_failed_alloc;
extern ssize_t zcache_put_to_flush; static ssize_t zcache_put_to_flush;
extern ssize_t zcache_compress_poor; static ssize_t zcache_compress_poor;
extern ssize_t zcache_mean_compress_poor; static ssize_t zcache_mean_compress_poor;
extern ssize_t zcache_eph_ate_tail; static ssize_t zcache_eph_ate_tail;
extern ssize_t zcache_eph_ate_tail_failed; static ssize_t zcache_eph_ate_tail_failed;
extern ssize_t zcache_pers_ate_eph; static ssize_t zcache_pers_ate_eph;
extern ssize_t zcache_pers_ate_eph_failed; static ssize_t zcache_pers_ate_eph_failed;
extern ssize_t zcache_evicted_eph_zpages; static ssize_t zcache_evicted_eph_zpages;
extern ssize_t zcache_evicted_eph_pageframes; static ssize_t zcache_evicted_eph_pageframes;
extern ssize_t zcache_last_active_file_pageframes; extern ssize_t zcache_last_active_file_pageframes;
extern ssize_t zcache_last_inactive_file_pageframes; extern ssize_t zcache_last_inactive_file_pageframes;
extern ssize_t zcache_last_active_anon_pageframes; extern ssize_t zcache_last_active_anon_pageframes;
extern ssize_t zcache_last_inactive_anon_pageframes; extern ssize_t zcache_last_inactive_anon_pageframes;
extern ssize_t zcache_eph_nonactive_puts_ignored; static ssize_t zcache_eph_nonactive_puts_ignored;
extern ssize_t zcache_pers_nonactive_puts_ignored; static ssize_t zcache_pers_nonactive_puts_ignored;
#ifdef CONFIG_ZCACHE_WRITEBACK #ifdef CONFIG_ZCACHE_WRITEBACK
extern ssize_t zcache_writtenback_pages; extern ssize_t zcache_writtenback_pages;
extern ssize_t zcache_outstanding_writeback_pages; extern ssize_t zcache_outstanding_writeback_pages;
#endif #endif
static inline void inc_zcache_flush_total(void) { zcache_flush_total ++; };
static inline void inc_zcache_flush_found(void) { zcache_flush_found ++; };
static inline void inc_zcache_flobj_total(void) { zcache_flobj_total ++; };
static inline void inc_zcache_flobj_found(void) { zcache_flobj_found ++; };
static inline void inc_zcache_failed_eph_puts(void) { zcache_failed_eph_puts ++; };
static inline void inc_zcache_failed_pers_puts(void) { zcache_failed_pers_puts ++; };
static inline void inc_zcache_failed_getfreepages(void) { zcache_failed_getfreepages ++; };
static inline void inc_zcache_failed_alloc(void) { zcache_failed_alloc ++; };
static inline void inc_zcache_put_to_flush(void) { zcache_put_to_flush ++; };
static inline void inc_zcache_compress_poor(void) { zcache_compress_poor ++; };
static inline void inc_zcache_mean_compress_poor(void) { zcache_mean_compress_poor ++; };
static inline void inc_zcache_eph_ate_tail(void) { zcache_eph_ate_tail ++; };
static inline void inc_zcache_eph_ate_tail_failed(void) { zcache_eph_ate_tail_failed ++; };
static inline void inc_zcache_pers_ate_eph(void) { zcache_pers_ate_eph ++; };
static inline void inc_zcache_pers_ate_eph_failed(void) { zcache_pers_ate_eph_failed ++; };
static inline void inc_zcache_evicted_eph_zpages(unsigned zpages) { zcache_evicted_eph_zpages += zpages; };
static inline void inc_zcache_evicted_eph_pageframes(void) { zcache_evicted_eph_pageframes ++; };
static inline void inc_zcache_eph_nonactive_puts_ignored(void) { zcache_eph_nonactive_puts_ignored ++; };
static inline void inc_zcache_pers_nonactive_puts_ignored(void) { zcache_pers_nonactive_puts_ignored ++; };
int zcache_debugfs_init(void); int zcache_debugfs_init(void);
#else #else
static inline void inc_zcache_obj_count(void) { }; static inline void inc_zcache_obj_count(void) { };
...@@ -184,4 +206,24 @@ static inline int zcache_debugfs_init(void) ...@@ -184,4 +206,24 @@ static inline int zcache_debugfs_init(void)
{ {
return 0; return 0;
}; };
static inline void inc_zcache_flush_total(void) { };
static inline void inc_zcache_flush_found(void) { };
static inline void inc_zcache_flobj_total(void) { };
static inline void inc_zcache_flobj_found(void) { };
static inline void inc_zcache_failed_eph_puts(void) { };
static inline void inc_zcache_failed_pers_puts(void) { };
static inline void inc_zcache_failed_getfreepages(void) { };
static inline void inc_zcache_failed_alloc(void) { };
static inline void inc_zcache_put_to_flush(void) { };
static inline void inc_zcache_compress_poor(void) { };
static inline void inc_zcache_mean_compress_poor(void) { };
static inline void inc_zcache_eph_ate_tail(void) { };
static inline void inc_zcache_eph_ate_tail_failed(void) { };
static inline void inc_zcache_pers_ate_eph(void) { };
static inline void inc_zcache_pers_ate_eph_failed(void) { };
static inline void inc_zcache_evicted_eph_zpages(unsigned zpages) { };
static inline void inc_zcache_evicted_eph_pageframes(void) { };
static inline void inc_zcache_eph_nonactive_puts_ignored(void) { };
static inline void inc_zcache_pers_nonactive_puts_ignored(void) { };
#endif #endif
...@@ -142,32 +142,13 @@ ssize_t zcache_eph_pageframes; ...@@ -142,32 +142,13 @@ ssize_t zcache_eph_pageframes;
ssize_t zcache_pers_pageframes; ssize_t zcache_pers_pageframes;
/* Used by this code. */ /* Used by this code. */
static ssize_t zcache_flush_total; ssize_t zcache_last_active_file_pageframes;
static ssize_t zcache_flush_found; ssize_t zcache_last_inactive_file_pageframes;
static ssize_t zcache_flobj_total; ssize_t zcache_last_active_anon_pageframes;
static ssize_t zcache_flobj_found; ssize_t zcache_last_inactive_anon_pageframes;
static ssize_t zcache_failed_eph_puts;
static ssize_t zcache_failed_pers_puts;
static ssize_t zcache_failed_getfreepages;
static ssize_t zcache_failed_alloc;
static ssize_t zcache_put_to_flush;
static ssize_t zcache_compress_poor;
static ssize_t zcache_mean_compress_poor;
static ssize_t zcache_eph_ate_tail;
static ssize_t zcache_eph_ate_tail_failed;
static ssize_t zcache_pers_ate_eph;
static ssize_t zcache_pers_ate_eph_failed;
static ssize_t zcache_evicted_eph_zpages;
static ssize_t zcache_evicted_eph_pageframes;
static ssize_t zcache_last_active_file_pageframes;
static ssize_t zcache_last_inactive_file_pageframes;
static ssize_t zcache_last_active_anon_pageframes;
static ssize_t zcache_last_inactive_anon_pageframes;
static ssize_t zcache_eph_nonactive_puts_ignored;
static ssize_t zcache_pers_nonactive_puts_ignored;
#ifdef CONFIG_ZCACHE_WRITEBACK #ifdef CONFIG_ZCACHE_WRITEBACK
static ssize_t zcache_writtenback_pages; ssize_t zcache_writtenback_pages;
static ssize_t zcache_outstanding_writeback_pages; ssize_t zcache_outstanding_writeback_pages;
#endif #endif
/* /*
* zcache core code starts here * zcache core code starts here
...@@ -354,7 +335,7 @@ static void *zcache_pampd_eph_create(char *data, size_t size, bool raw, ...@@ -354,7 +335,7 @@ static void *zcache_pampd_eph_create(char *data, size_t size, bool raw,
if (!raw) { if (!raw) {
zcache_compress(page, &cdata, &clen); zcache_compress(page, &cdata, &clen);
if (clen > zbud_max_buddy_size()) { if (clen > zbud_max_buddy_size()) {
zcache_compress_poor++; inc_zcache_compress_poor();
goto out; goto out;
} }
} else { } else {
...@@ -371,14 +352,14 @@ static void *zcache_pampd_eph_create(char *data, size_t size, bool raw, ...@@ -371,14 +352,14 @@ static void *zcache_pampd_eph_create(char *data, size_t size, bool raw,
if (newpage != NULL) if (newpage != NULL)
goto create_in_new_page; goto create_in_new_page;
zcache_failed_getfreepages++; inc_zcache_failed_getfreepages();
/* can't allocate a page, evict an ephemeral page via LRU */ /* can't allocate a page, evict an ephemeral page via LRU */
newpage = zcache_evict_eph_pageframe(); newpage = zcache_evict_eph_pageframe();
if (newpage == NULL) { if (newpage == NULL) {
zcache_eph_ate_tail_failed++; inc_zcache_eph_ate_tail_failed();
goto out; goto out;
} }
zcache_eph_ate_tail++; inc_zcache_eph_ate_tail();
create_in_new_page: create_in_new_page:
pampd = (void *)zbud_create_prep(th, true, cdata, clen, newpage); pampd = (void *)zbud_create_prep(th, true, cdata, clen, newpage);
...@@ -413,7 +394,7 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw, ...@@ -413,7 +394,7 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw,
zcache_compress(page, &cdata, &clen); zcache_compress(page, &cdata, &clen);
/* reject if compression is too poor */ /* reject if compression is too poor */
if (clen > zbud_max_zsize) { if (clen > zbud_max_zsize) {
zcache_compress_poor++; inc_zcache_compress_poor();
goto out; goto out;
} }
/* reject if mean compression is too poor */ /* reject if mean compression is too poor */
...@@ -424,7 +405,7 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw, ...@@ -424,7 +405,7 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw,
zbud_mean_zsize = div_u64(total_zsize, zbud_mean_zsize = div_u64(total_zsize,
curr_pers_zpages); curr_pers_zpages);
if (zbud_mean_zsize > zbud_max_mean_zsize) { if (zbud_mean_zsize > zbud_max_mean_zsize) {
zcache_mean_compress_poor++; inc_zcache_mean_compress_poor();
goto out; goto out;
} }
} }
...@@ -445,14 +426,14 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw, ...@@ -445,14 +426,14 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw,
* (global_page_state(NR_LRU_BASE + LRU_ACTIVE_FILE) + * (global_page_state(NR_LRU_BASE + LRU_ACTIVE_FILE) +
* global_page_state(NR_LRU_BASE + LRU_INACTIVE_FILE))) * global_page_state(NR_LRU_BASE + LRU_INACTIVE_FILE)))
*/ */
zcache_failed_getfreepages++; inc_zcache_failed_getfreepages();
/* can't allocate a page, evict an ephemeral page via LRU */ /* can't allocate a page, evict an ephemeral page via LRU */
newpage = zcache_evict_eph_pageframe(); newpage = zcache_evict_eph_pageframe();
if (newpage == NULL) { if (newpage == NULL) {
zcache_pers_ate_eph_failed++; inc_zcache_pers_ate_eph_failed();
goto out; goto out;
} }
zcache_pers_ate_eph++; inc_zcache_pers_ate_eph();
create_in_new_page: create_in_new_page:
pampd = (void *)zbud_create_prep(th, false, cdata, clen, newpage); pampd = (void *)zbud_create_prep(th, false, cdata, clen, newpage);
...@@ -492,7 +473,7 @@ void *zcache_pampd_create(char *data, unsigned int size, bool raw, ...@@ -492,7 +473,7 @@ void *zcache_pampd_create(char *data, unsigned int size, bool raw,
objnode = kmem_cache_alloc(zcache_objnode_cache, objnode = kmem_cache_alloc(zcache_objnode_cache,
ZCACHE_GFP_MASK); ZCACHE_GFP_MASK);
if (unlikely(objnode == NULL)) { if (unlikely(objnode == NULL)) {
zcache_failed_alloc++; inc_zcache_failed_alloc();
goto out; goto out;
} }
kp->objnodes[i] = objnode; kp->objnodes[i] = objnode;
...@@ -503,7 +484,7 @@ void *zcache_pampd_create(char *data, unsigned int size, bool raw, ...@@ -503,7 +484,7 @@ void *zcache_pampd_create(char *data, unsigned int size, bool raw,
kp->obj = obj; kp->obj = obj;
} }
if (unlikely(kp->obj == NULL)) { if (unlikely(kp->obj == NULL)) {
zcache_failed_alloc++; inc_zcache_failed_alloc();
goto out; goto out;
} }
/* /*
...@@ -781,9 +762,9 @@ static struct page *zcache_evict_eph_pageframe(void) ...@@ -781,9 +762,9 @@ static struct page *zcache_evict_eph_pageframe(void)
goto out; goto out;
dec_zcache_eph_zbytes(zsize); dec_zcache_eph_zbytes(zsize);
dec_zcache_eph_zpages(zpages); dec_zcache_eph_zpages(zpages);
zcache_evicted_eph_zpages += zpages; inc_zcache_evicted_eph_zpages(zpages);
dec_zcache_eph_pageframes(); dec_zcache_eph_pageframes();
zcache_evicted_eph_pageframes++; inc_zcache_evicted_eph_pageframes();
out: out:
return page; return page;
} }
...@@ -1166,9 +1147,9 @@ int zcache_put_page(int cli_id, int pool_id, struct tmem_oid *oidp, ...@@ -1166,9 +1147,9 @@ int zcache_put_page(int cli_id, int pool_id, struct tmem_oid *oidp,
if (pampd == NULL) { if (pampd == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
if (ephemeral) if (ephemeral)
zcache_failed_eph_puts++; inc_zcache_failed_eph_puts();
else else
zcache_failed_pers_puts++; inc_zcache_failed_pers_puts();
} else { } else {
if (ramster_enabled) if (ramster_enabled)
ramster_do_preload_flnode(pool); ramster_do_preload_flnode(pool);
...@@ -1178,7 +1159,7 @@ int zcache_put_page(int cli_id, int pool_id, struct tmem_oid *oidp, ...@@ -1178,7 +1159,7 @@ int zcache_put_page(int cli_id, int pool_id, struct tmem_oid *oidp,
} }
zcache_put_pool(pool); zcache_put_pool(pool);
} else { } else {
zcache_put_to_flush++; inc_zcache_put_to_flush();
if (ramster_enabled) if (ramster_enabled)
ramster_do_preload_flnode(pool); ramster_do_preload_flnode(pool);
if (atomic_read(&pool->obj_count) > 0) if (atomic_read(&pool->obj_count) > 0)
...@@ -1228,7 +1209,7 @@ int zcache_flush_page(int cli_id, int pool_id, ...@@ -1228,7 +1209,7 @@ int zcache_flush_page(int cli_id, int pool_id,
unsigned long flags; unsigned long flags;
local_irq_save(flags); local_irq_save(flags);
zcache_flush_total++; inc_zcache_flush_total();
pool = zcache_get_pool_by_id(cli_id, pool_id); pool = zcache_get_pool_by_id(cli_id, pool_id);
if (ramster_enabled) if (ramster_enabled)
ramster_do_preload_flnode(pool); ramster_do_preload_flnode(pool);
...@@ -1238,7 +1219,7 @@ int zcache_flush_page(int cli_id, int pool_id, ...@@ -1238,7 +1219,7 @@ int zcache_flush_page(int cli_id, int pool_id,
zcache_put_pool(pool); zcache_put_pool(pool);
} }
if (ret >= 0) if (ret >= 0)
zcache_flush_found++; inc_zcache_flush_found();
local_irq_restore(flags); local_irq_restore(flags);
return ret; return ret;
} }
...@@ -1251,7 +1232,7 @@ int zcache_flush_object(int cli_id, int pool_id, ...@@ -1251,7 +1232,7 @@ int zcache_flush_object(int cli_id, int pool_id,
unsigned long flags; unsigned long flags;
local_irq_save(flags); local_irq_save(flags);
zcache_flobj_total++; inc_zcache_flobj_total();
pool = zcache_get_pool_by_id(cli_id, pool_id); pool = zcache_get_pool_by_id(cli_id, pool_id);
if (ramster_enabled) if (ramster_enabled)
ramster_do_preload_flnode(pool); ramster_do_preload_flnode(pool);
...@@ -1261,7 +1242,7 @@ int zcache_flush_object(int cli_id, int pool_id, ...@@ -1261,7 +1242,7 @@ int zcache_flush_object(int cli_id, int pool_id,
zcache_put_pool(pool); zcache_put_pool(pool);
} }
if (ret >= 0) if (ret >= 0)
zcache_flobj_found++; inc_zcache_flobj_found();
local_irq_restore(flags); local_irq_restore(flags);
return ret; return ret;
} }
...@@ -1424,7 +1405,7 @@ static void zcache_cleancache_put_page(int pool_id, ...@@ -1424,7 +1405,7 @@ static void zcache_cleancache_put_page(int pool_id,
struct tmem_oid oid = *(struct tmem_oid *)&key; struct tmem_oid oid = *(struct tmem_oid *)&key;
if (!disable_cleancache_ignore_nonactive && !PageWasActive(page)) { if (!disable_cleancache_ignore_nonactive && !PageWasActive(page)) {
zcache_eph_nonactive_puts_ignored++; inc_zcache_eph_nonactive_puts_ignored();
return; return;
} }
if (likely(ind == index)) if (likely(ind == index))
...@@ -1553,7 +1534,7 @@ static int zcache_frontswap_put_page(unsigned type, pgoff_t offset, ...@@ -1553,7 +1534,7 @@ static int zcache_frontswap_put_page(unsigned type, pgoff_t offset,
BUG_ON(!PageLocked(page)); BUG_ON(!PageLocked(page));
if (!disable_frontswap_ignore_nonactive && !PageWasActive(page)) { if (!disable_frontswap_ignore_nonactive && !PageWasActive(page)) {
zcache_pers_nonactive_puts_ignored++; inc_zcache_pers_nonactive_puts_ignored();
ret = -ERANGE; ret = -ERANGE;
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment