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)
atomic_read(&zcache_pers_pageframes_atomic);
};
/* but for the rest of these, counting races are ok */
extern ssize_t zcache_flush_total;
extern ssize_t zcache_flush_found;
extern ssize_t zcache_flobj_total;
extern ssize_t zcache_flobj_found;
extern ssize_t zcache_failed_eph_puts;
extern ssize_t zcache_failed_pers_puts;
extern ssize_t zcache_failed_getfreepages;
extern ssize_t zcache_failed_alloc;
extern ssize_t zcache_put_to_flush;
extern ssize_t zcache_compress_poor;
extern ssize_t zcache_mean_compress_poor;
extern ssize_t zcache_eph_ate_tail;
extern ssize_t zcache_eph_ate_tail_failed;
extern ssize_t zcache_pers_ate_eph;
extern ssize_t zcache_pers_ate_eph_failed;
extern ssize_t zcache_evicted_eph_zpages;
extern ssize_t zcache_evicted_eph_pageframes;
static ssize_t zcache_flush_total;
static ssize_t zcache_flush_found;
static ssize_t zcache_flobj_total;
static ssize_t zcache_flobj_found;
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;
extern ssize_t zcache_last_active_file_pageframes;
extern ssize_t zcache_last_inactive_file_pageframes;
extern ssize_t zcache_last_active_anon_pageframes;
extern ssize_t zcache_last_inactive_anon_pageframes;
extern ssize_t zcache_eph_nonactive_puts_ignored;
extern ssize_t zcache_pers_nonactive_puts_ignored;
static ssize_t zcache_eph_nonactive_puts_ignored;
static ssize_t zcache_pers_nonactive_puts_ignored;
#ifdef CONFIG_ZCACHE_WRITEBACK
extern ssize_t zcache_writtenback_pages;
extern ssize_t zcache_outstanding_writeback_pages;
#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);
#else
static inline void inc_zcache_obj_count(void) { };
......@@ -184,4 +206,24 @@ static inline int zcache_debugfs_init(void)
{
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
......@@ -142,32 +142,13 @@ ssize_t zcache_eph_pageframes;
ssize_t zcache_pers_pageframes;
/* Used by this code. */
static ssize_t zcache_flush_total;
static ssize_t zcache_flush_found;
static ssize_t zcache_flobj_total;
static ssize_t zcache_flobj_found;
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;
ssize_t zcache_last_active_file_pageframes;
ssize_t zcache_last_inactive_file_pageframes;
ssize_t zcache_last_active_anon_pageframes;
ssize_t zcache_last_inactive_anon_pageframes;
#ifdef CONFIG_ZCACHE_WRITEBACK
static ssize_t zcache_writtenback_pages;
static ssize_t zcache_outstanding_writeback_pages;
ssize_t zcache_writtenback_pages;
ssize_t zcache_outstanding_writeback_pages;
#endif
/*
* zcache core code starts here
......@@ -354,7 +335,7 @@ static void *zcache_pampd_eph_create(char *data, size_t size, bool raw,
if (!raw) {
zcache_compress(page, &cdata, &clen);
if (clen > zbud_max_buddy_size()) {
zcache_compress_poor++;
inc_zcache_compress_poor();
goto out;
}
} else {
......@@ -371,14 +352,14 @@ static void *zcache_pampd_eph_create(char *data, size_t size, bool raw,
if (newpage != NULL)
goto create_in_new_page;
zcache_failed_getfreepages++;
inc_zcache_failed_getfreepages();
/* can't allocate a page, evict an ephemeral page via LRU */
newpage = zcache_evict_eph_pageframe();
if (newpage == NULL) {
zcache_eph_ate_tail_failed++;
inc_zcache_eph_ate_tail_failed();
goto out;
}
zcache_eph_ate_tail++;
inc_zcache_eph_ate_tail();
create_in_new_page:
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,
zcache_compress(page, &cdata, &clen);
/* reject if compression is too poor */
if (clen > zbud_max_zsize) {
zcache_compress_poor++;
inc_zcache_compress_poor();
goto out;
}
/* reject if mean compression is too poor */
......@@ -424,7 +405,7 @@ static void *zcache_pampd_pers_create(char *data, size_t size, bool raw,
zbud_mean_zsize = div_u64(total_zsize,
curr_pers_zpages);
if (zbud_mean_zsize > zbud_max_mean_zsize) {
zcache_mean_compress_poor++;
inc_zcache_mean_compress_poor();
goto out;
}
}
......@@ -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_INACTIVE_FILE)))
*/
zcache_failed_getfreepages++;
inc_zcache_failed_getfreepages();
/* can't allocate a page, evict an ephemeral page via LRU */
newpage = zcache_evict_eph_pageframe();
if (newpage == NULL) {
zcache_pers_ate_eph_failed++;
inc_zcache_pers_ate_eph_failed();
goto out;
}
zcache_pers_ate_eph++;
inc_zcache_pers_ate_eph();
create_in_new_page:
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,
objnode = kmem_cache_alloc(zcache_objnode_cache,
ZCACHE_GFP_MASK);
if (unlikely(objnode == NULL)) {
zcache_failed_alloc++;
inc_zcache_failed_alloc();
goto out;
}
kp->objnodes[i] = objnode;
......@@ -503,7 +484,7 @@ void *zcache_pampd_create(char *data, unsigned int size, bool raw,
kp->obj = obj;
}
if (unlikely(kp->obj == NULL)) {
zcache_failed_alloc++;
inc_zcache_failed_alloc();
goto out;
}
/*
......@@ -781,9 +762,9 @@ static struct page *zcache_evict_eph_pageframe(void)
goto out;
dec_zcache_eph_zbytes(zsize);
dec_zcache_eph_zpages(zpages);
zcache_evicted_eph_zpages += zpages;
inc_zcache_evicted_eph_zpages(zpages);
dec_zcache_eph_pageframes();
zcache_evicted_eph_pageframes++;
inc_zcache_evicted_eph_pageframes();
out:
return page;
}
......@@ -1166,9 +1147,9 @@ int zcache_put_page(int cli_id, int pool_id, struct tmem_oid *oidp,
if (pampd == NULL) {
ret = -ENOMEM;
if (ephemeral)
zcache_failed_eph_puts++;
inc_zcache_failed_eph_puts();
else
zcache_failed_pers_puts++;
inc_zcache_failed_pers_puts();
} else {
if (ramster_enabled)
ramster_do_preload_flnode(pool);
......@@ -1178,7 +1159,7 @@ int zcache_put_page(int cli_id, int pool_id, struct tmem_oid *oidp,
}
zcache_put_pool(pool);
} else {
zcache_put_to_flush++;
inc_zcache_put_to_flush();
if (ramster_enabled)
ramster_do_preload_flnode(pool);
if (atomic_read(&pool->obj_count) > 0)
......@@ -1228,7 +1209,7 @@ int zcache_flush_page(int cli_id, int pool_id,
unsigned long flags;
local_irq_save(flags);
zcache_flush_total++;
inc_zcache_flush_total();
pool = zcache_get_pool_by_id(cli_id, pool_id);
if (ramster_enabled)
ramster_do_preload_flnode(pool);
......@@ -1238,7 +1219,7 @@ int zcache_flush_page(int cli_id, int pool_id,
zcache_put_pool(pool);
}
if (ret >= 0)
zcache_flush_found++;
inc_zcache_flush_found();
local_irq_restore(flags);
return ret;
}
......@@ -1251,7 +1232,7 @@ int zcache_flush_object(int cli_id, int pool_id,
unsigned long flags;
local_irq_save(flags);
zcache_flobj_total++;
inc_zcache_flobj_total();
pool = zcache_get_pool_by_id(cli_id, pool_id);
if (ramster_enabled)
ramster_do_preload_flnode(pool);
......@@ -1261,7 +1242,7 @@ int zcache_flush_object(int cli_id, int pool_id,
zcache_put_pool(pool);
}
if (ret >= 0)
zcache_flobj_found++;
inc_zcache_flobj_found();
local_irq_restore(flags);
return ret;
}
......@@ -1424,7 +1405,7 @@ static void zcache_cleancache_put_page(int pool_id,
struct tmem_oid oid = *(struct tmem_oid *)&key;
if (!disable_cleancache_ignore_nonactive && !PageWasActive(page)) {
zcache_eph_nonactive_puts_ignored++;
inc_zcache_eph_nonactive_puts_ignored();
return;
}
if (likely(ind == index))
......@@ -1553,7 +1534,7 @@ static int zcache_frontswap_put_page(unsigned type, pgoff_t offset,
BUG_ON(!PageLocked(page));
if (!disable_frontswap_ignore_nonactive && !PageWasActive(page)) {
zcache_pers_nonactive_puts_ignored++;
inc_zcache_pers_nonactive_puts_ignored();
ret = -ERANGE;
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