[PATCH 07/16] zcache: Move debugfs code out of zcache-main.c file.

2013-02-13 Thread Konrad Rzeszutek Wilk
Note that at this point there is no CONFIG_ZCACHE_DEBUG
option in the Kconfig. So in effect all of the counters
are nop until that option gets re-introduced in:
zcache/debug: Coalesce all debug under CONFIG_ZCACHE_DEBUG

Signed-off-by: Konrad Rzeszutek Wilk 
---
 drivers/staging/zcache/Makefile  |   1 +
 drivers/staging/zcache/debug.c   | 132 +
 drivers/staging/zcache/debug.h   | 187 
 drivers/staging/zcache/zcache-main.c | 265 ++-
 4 files changed, 328 insertions(+), 257 deletions(-)
 create mode 100644 drivers/staging/zcache/debug.c
 create mode 100644 drivers/staging/zcache/debug.h

diff --git a/drivers/staging/zcache/Makefile b/drivers/staging/zcache/Makefile
index 4711049..24fd6aa 100644
--- a/drivers/staging/zcache/Makefile
+++ b/drivers/staging/zcache/Makefile
@@ -1,4 +1,5 @@
 zcache-y   :=  zcache-main.o tmem.o zbud.o
+zcache-$(CONFIG_ZCACHE_DEBUG) += debug.o
 zcache-$(CONFIG_RAMSTER)   +=  ramster/ramster.o ramster/r2net.o
 zcache-$(CONFIG_RAMSTER)   +=  ramster/nodemanager.o ramster/tcp.o
 zcache-$(CONFIG_RAMSTER)   +=  ramster/heartbeat.o ramster/masklog.o
diff --git a/drivers/staging/zcache/debug.c b/drivers/staging/zcache/debug.c
new file mode 100644
index 000..622d5f3
--- /dev/null
+++ b/drivers/staging/zcache/debug.c
@@ -0,0 +1,132 @@
+#include 
+#include "debug.h"
+
+#ifdef CONFIG_DEBUG_FS
+#include 
+#definezdfsdebugfs_create_size_t
+#definezdfs64  debugfs_create_u64
+int zcache_debugfs_init(void)
+{
+   struct dentry *root = debugfs_create_dir("zcache", NULL);
+   if (root == NULL)
+   return -ENXIO;
+
+   zdfs("obj_count", S_IRUGO, root, _obj_count);
+   zdfs("obj_count_max", S_IRUGO, root, _obj_count_max);
+   zdfs("objnode_count", S_IRUGO, root, _objnode_count);
+   zdfs("objnode_count_max", S_IRUGO, root, _objnode_count_max);
+   zdfs("flush_total", S_IRUGO, root, _flush_total);
+   zdfs("flush_found", S_IRUGO, root, _flush_found);
+   zdfs("flobj_total", S_IRUGO, root, _flobj_total);
+   zdfs("flobj_found", S_IRUGO, root, _flobj_found);
+   zdfs("failed_eph_puts", S_IRUGO, root, _failed_eph_puts);
+   zdfs("failed_pers_puts", S_IRUGO, root, _failed_pers_puts);
+   zdfs("failed_get_free_pages", S_IRUGO, root,
+   _failed_getfreepages);
+   zdfs("failed_alloc", S_IRUGO, root, _failed_alloc);
+   zdfs("put_to_flush", S_IRUGO, root, _put_to_flush);
+   zdfs("compress_poor", S_IRUGO, root, _compress_poor);
+   zdfs("mean_compress_poor", S_IRUGO, root, _mean_compress_poor);
+   zdfs("eph_ate_tail", S_IRUGO, root, _eph_ate_tail);
+   zdfs("eph_ate_tail_failed", S_IRUGO, root, _eph_ate_tail_failed);
+   zdfs("pers_ate_eph", S_IRUGO, root, _pers_ate_eph);
+   zdfs("pers_ate_eph_failed", S_IRUGO, root, _pers_ate_eph_failed);
+   zdfs("evicted_eph_zpages", S_IRUGO, root, _evicted_eph_zpages);
+   zdfs("evicted_eph_pageframes", S_IRUGO, root,
+   _evicted_eph_pageframes);
+   zdfs("eph_pageframes", S_IRUGO, root, _eph_pageframes);
+   zdfs("eph_pageframes_max", S_IRUGO, root, _eph_pageframes_max);
+   zdfs("pers_pageframes", S_IRUGO, root, _pers_pageframes);
+   zdfs("pers_pageframes_max", S_IRUGO, root, _pers_pageframes_max);
+   zdfs("eph_zpages", S_IRUGO, root, _eph_zpages);
+   zdfs("eph_zpages_max", S_IRUGO, root, _eph_zpages_max);
+   zdfs("pers_zpages", S_IRUGO, root, _pers_zpages);
+   zdfs("pers_zpages_max", S_IRUGO, root, _pers_zpages_max);
+   zdfs("last_active_file_pageframes", S_IRUGO, root,
+   _last_active_file_pageframes);
+   zdfs("last_inactive_file_pageframes", S_IRUGO, root,
+   _last_inactive_file_pageframes);
+   zdfs("last_active_anon_pageframes", S_IRUGO, root,
+   _last_active_anon_pageframes);
+   zdfs("last_inactive_anon_pageframes", S_IRUGO, root,
+   _last_inactive_anon_pageframes);
+   zdfs("eph_nonactive_puts_ignored", S_IRUGO, root,
+   _eph_nonactive_puts_ignored);
+   zdfs("pers_nonactive_puts_ignored", S_IRUGO, root,
+   _pers_nonactive_puts_ignored);
+   zdfs64("eph_zbytes", S_IRUGO, root, _eph_zbytes);
+   zdfs64("eph_zbytes_max", S_IRUGO, root, _eph_zbytes_max);
+   zdfs64("pers_zbytes", S_IRUGO, root, _pers_zbytes);
+   zdfs64("pers_zbytes_max", S_IRUGO, root, _pers_zbytes_max);
+   zdfs("outstanding_writeback_pages", S_IRUGO, root,
+   _outstanding_writeback_pages);
+   zdfs("writtenback_pages", S_IRUGO, root, _writtenback_pages);
+
+   return 0;
+}
+#undef zdebugfs
+#undef zdfs64
+
+/* developers can call this in case of ooms, e.g. to find memory leaks */
+void 

[PATCH 07/16] zcache: Move debugfs code out of zcache-main.c file.

2013-02-13 Thread Konrad Rzeszutek Wilk
Note that at this point there is no CONFIG_ZCACHE_DEBUG
option in the Kconfig. So in effect all of the counters
are nop until that option gets re-introduced in:
zcache/debug: Coalesce all debug under CONFIG_ZCACHE_DEBUG

Signed-off-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
---
 drivers/staging/zcache/Makefile  |   1 +
 drivers/staging/zcache/debug.c   | 132 +
 drivers/staging/zcache/debug.h   | 187 
 drivers/staging/zcache/zcache-main.c | 265 ++-
 4 files changed, 328 insertions(+), 257 deletions(-)
 create mode 100644 drivers/staging/zcache/debug.c
 create mode 100644 drivers/staging/zcache/debug.h

diff --git a/drivers/staging/zcache/Makefile b/drivers/staging/zcache/Makefile
index 4711049..24fd6aa 100644
--- a/drivers/staging/zcache/Makefile
+++ b/drivers/staging/zcache/Makefile
@@ -1,4 +1,5 @@
 zcache-y   :=  zcache-main.o tmem.o zbud.o
+zcache-$(CONFIG_ZCACHE_DEBUG) += debug.o
 zcache-$(CONFIG_RAMSTER)   +=  ramster/ramster.o ramster/r2net.o
 zcache-$(CONFIG_RAMSTER)   +=  ramster/nodemanager.o ramster/tcp.o
 zcache-$(CONFIG_RAMSTER)   +=  ramster/heartbeat.o ramster/masklog.o
diff --git a/drivers/staging/zcache/debug.c b/drivers/staging/zcache/debug.c
new file mode 100644
index 000..622d5f3
--- /dev/null
+++ b/drivers/staging/zcache/debug.c
@@ -0,0 +1,132 @@
+#include linux/atomic.h
+#include debug.h
+
+#ifdef CONFIG_DEBUG_FS
+#include linux/debugfs.h
+#definezdfsdebugfs_create_size_t
+#definezdfs64  debugfs_create_u64
+int zcache_debugfs_init(void)
+{
+   struct dentry *root = debugfs_create_dir(zcache, NULL);
+   if (root == NULL)
+   return -ENXIO;
+
+   zdfs(obj_count, S_IRUGO, root, zcache_obj_count);
+   zdfs(obj_count_max, S_IRUGO, root, zcache_obj_count_max);
+   zdfs(objnode_count, S_IRUGO, root, zcache_objnode_count);
+   zdfs(objnode_count_max, S_IRUGO, root, zcache_objnode_count_max);
+   zdfs(flush_total, S_IRUGO, root, zcache_flush_total);
+   zdfs(flush_found, S_IRUGO, root, zcache_flush_found);
+   zdfs(flobj_total, S_IRUGO, root, zcache_flobj_total);
+   zdfs(flobj_found, S_IRUGO, root, zcache_flobj_found);
+   zdfs(failed_eph_puts, S_IRUGO, root, zcache_failed_eph_puts);
+   zdfs(failed_pers_puts, S_IRUGO, root, zcache_failed_pers_puts);
+   zdfs(failed_get_free_pages, S_IRUGO, root,
+   zcache_failed_getfreepages);
+   zdfs(failed_alloc, S_IRUGO, root, zcache_failed_alloc);
+   zdfs(put_to_flush, S_IRUGO, root, zcache_put_to_flush);
+   zdfs(compress_poor, S_IRUGO, root, zcache_compress_poor);
+   zdfs(mean_compress_poor, S_IRUGO, root, zcache_mean_compress_poor);
+   zdfs(eph_ate_tail, S_IRUGO, root, zcache_eph_ate_tail);
+   zdfs(eph_ate_tail_failed, S_IRUGO, root, zcache_eph_ate_tail_failed);
+   zdfs(pers_ate_eph, S_IRUGO, root, zcache_pers_ate_eph);
+   zdfs(pers_ate_eph_failed, S_IRUGO, root, zcache_pers_ate_eph_failed);
+   zdfs(evicted_eph_zpages, S_IRUGO, root, zcache_evicted_eph_zpages);
+   zdfs(evicted_eph_pageframes, S_IRUGO, root,
+   zcache_evicted_eph_pageframes);
+   zdfs(eph_pageframes, S_IRUGO, root, zcache_eph_pageframes);
+   zdfs(eph_pageframes_max, S_IRUGO, root, zcache_eph_pageframes_max);
+   zdfs(pers_pageframes, S_IRUGO, root, zcache_pers_pageframes);
+   zdfs(pers_pageframes_max, S_IRUGO, root, zcache_pers_pageframes_max);
+   zdfs(eph_zpages, S_IRUGO, root, zcache_eph_zpages);
+   zdfs(eph_zpages_max, S_IRUGO, root, zcache_eph_zpages_max);
+   zdfs(pers_zpages, S_IRUGO, root, zcache_pers_zpages);
+   zdfs(pers_zpages_max, S_IRUGO, root, zcache_pers_zpages_max);
+   zdfs(last_active_file_pageframes, S_IRUGO, root,
+   zcache_last_active_file_pageframes);
+   zdfs(last_inactive_file_pageframes, S_IRUGO, root,
+   zcache_last_inactive_file_pageframes);
+   zdfs(last_active_anon_pageframes, S_IRUGO, root,
+   zcache_last_active_anon_pageframes);
+   zdfs(last_inactive_anon_pageframes, S_IRUGO, root,
+   zcache_last_inactive_anon_pageframes);
+   zdfs(eph_nonactive_puts_ignored, S_IRUGO, root,
+   zcache_eph_nonactive_puts_ignored);
+   zdfs(pers_nonactive_puts_ignored, S_IRUGO, root,
+   zcache_pers_nonactive_puts_ignored);
+   zdfs64(eph_zbytes, S_IRUGO, root, zcache_eph_zbytes);
+   zdfs64(eph_zbytes_max, S_IRUGO, root, zcache_eph_zbytes_max);
+   zdfs64(pers_zbytes, S_IRUGO, root, zcache_pers_zbytes);
+   zdfs64(pers_zbytes_max, S_IRUGO, root, zcache_pers_zbytes_max);
+   zdfs(outstanding_writeback_pages, S_IRUGO, root,
+   zcache_outstanding_writeback_pages);
+   

[PATCH 07/16] zcache: Move debugfs code out of zcache-main.c file.

2013-02-01 Thread Konrad Rzeszutek Wilk
Signed-off-by: Konrad Rzeszutek Wilk 
---
 drivers/staging/zcache/Makefile  |   3 +-
 drivers/staging/zcache/debug.c   | 113 
 drivers/staging/zcache/debug.h   | 183 ++
 drivers/staging/zcache/zcache-main.c | 247 +--
 4 files changed, 305 insertions(+), 241 deletions(-)
 create mode 100644 drivers/staging/zcache/debug.c
 create mode 100644 drivers/staging/zcache/debug.h

diff --git a/drivers/staging/zcache/Makefile b/drivers/staging/zcache/Makefile
index 98c4e32..62e2bc9 100644
--- a/drivers/staging/zcache/Makefile
+++ b/drivers/staging/zcache/Makefile
@@ -1,5 +1,6 @@
 obj-$(CONFIG_ZCACHE)   += zcache.o
-zcache-y   :=  zcache-main.o tmem.o zbud.o
+zcache-y   :=  zcache-main.o tmem.o zbud.o
+zcache-$(CONFIG_ZCACHE_DEBUG) += debug.o
 zcache-$(CONFIG_RAMSTER)+= ramster/ramster.o ramster/r2net.o
 zcache-$(CONFIG_RAMSTER)+= ramster/nodemanager.o ramster/tcp.o
 zcache-$(CONFIG_RAMSTER)+= ramster/heartbeat.o ramster/masklog.o
diff --git a/drivers/staging/zcache/debug.c b/drivers/staging/zcache/debug.c
new file mode 100644
index 000..0d19715
--- /dev/null
+++ b/drivers/staging/zcache/debug.c
@@ -0,0 +1,113 @@
+#include 
+#include "debug.h"
+
+#ifdef CONFIG_DEBUG_FS
+#include 
+#definezdfsdebugfs_create_size_t
+#definezdfs64  debugfs_create_u64
+int zcache_debugfs_init(void)
+{
+   struct dentry *root = debugfs_create_dir("zcache", NULL);
+   if (root == NULL)
+   return -ENXIO;
+
+   zdfs("obj_count", S_IRUGO, root, _obj_count);
+   zdfs("obj_count_max", S_IRUGO, root, _obj_count_max);
+   zdfs("objnode_count", S_IRUGO, root, _objnode_count);
+   zdfs("objnode_count_max", S_IRUGO, root, _objnode_count_max);
+   zdfs("flush_total", S_IRUGO, root, _flush_total);
+   zdfs("flush_found", S_IRUGO, root, _flush_found);
+   zdfs("flobj_total", S_IRUGO, root, _flobj_total);
+   zdfs("flobj_found", S_IRUGO, root, _flobj_found);
+   zdfs("failed_eph_puts", S_IRUGO, root, _failed_eph_puts);
+   zdfs("failed_pers_puts", S_IRUGO, root, _failed_pers_puts);
+   zdfs("failed_get_free_pages", S_IRUGO, root,
+   _failed_getfreepages);
+   zdfs("failed_alloc", S_IRUGO, root, _failed_alloc);
+   zdfs("put_to_flush", S_IRUGO, root, _put_to_flush);
+   zdfs("compress_poor", S_IRUGO, root, _compress_poor);
+   zdfs("mean_compress_poor", S_IRUGO, root, _mean_compress_poor);
+   zdfs("eph_ate_tail", S_IRUGO, root, _eph_ate_tail);
+   zdfs("eph_ate_tail_failed", S_IRUGO, root, _eph_ate_tail_failed);
+   zdfs("pers_ate_eph", S_IRUGO, root, _pers_ate_eph);
+   zdfs("pers_ate_eph_failed", S_IRUGO, root, _pers_ate_eph_failed);
+   zdfs("evicted_eph_zpages", S_IRUGO, root, _evicted_eph_zpages);
+   zdfs("evicted_eph_pageframes", S_IRUGO, root,
+   _evicted_eph_pageframes);
+   zdfs("eph_pageframes", S_IRUGO, root, _eph_pageframes);
+   zdfs("eph_pageframes_max", S_IRUGO, root, _eph_pageframes_max);
+   zdfs("pers_pageframes", S_IRUGO, root, _pers_pageframes);
+   zdfs("pers_pageframes_max", S_IRUGO, root, _pers_pageframes_max);
+   zdfs("eph_zpages", S_IRUGO, root, _eph_zpages);
+   zdfs("eph_zpages_max", S_IRUGO, root, _eph_zpages_max);
+   zdfs("pers_zpages", S_IRUGO, root, _pers_zpages);
+   zdfs("pers_zpages_max", S_IRUGO, root, _pers_zpages_max);
+   zdfs("last_active_file_pageframes", S_IRUGO, root,
+   _last_active_file_pageframes);
+   zdfs("last_inactive_file_pageframes", S_IRUGO, root,
+   _last_inactive_file_pageframes);
+   zdfs("last_active_anon_pageframes", S_IRUGO, root,
+   _last_active_anon_pageframes);
+   zdfs("last_inactive_anon_pageframes", S_IRUGO, root,
+   _last_inactive_anon_pageframes);
+   zdfs("eph_nonactive_puts_ignored", S_IRUGO, root,
+   _eph_nonactive_puts_ignored);
+   zdfs("pers_nonactive_puts_ignored", S_IRUGO, root,
+   _pers_nonactive_puts_ignored);
+   zdfs64("eph_zbytes", S_IRUGO, root, _eph_zbytes);
+   zdfs64("eph_zbytes_max", S_IRUGO, root, _eph_zbytes_max);
+   zdfs64("pers_zbytes", S_IRUGO, root, _pers_zbytes);
+   zdfs64("pers_zbytes_max", S_IRUGO, root, _pers_zbytes_max);
+   return 0;
+}
+#undef zdebugfs
+#undef zdfs64
+
+/* developers can call this in case of ooms, e.g. to find memory leaks */
+void zcache_dump(void)
+{
+   pr_debug("zcache: obj_count=%u\n", zcache_obj_count);
+   pr_debug("zcache: obj_count_max=%u\n", zcache_obj_count_max);
+   pr_debug("zcache: objnode_count=%u\n", zcache_objnode_count);
+   pr_debug("zcache: objnode_count_max=%u\n", zcache_objnode_count_max);
+   pr_debug("zcache: flush_total=%u\n", 

[PATCH 07/16] zcache: Move debugfs code out of zcache-main.c file.

2013-02-01 Thread Konrad Rzeszutek Wilk
Signed-off-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
---
 drivers/staging/zcache/Makefile  |   3 +-
 drivers/staging/zcache/debug.c   | 113 
 drivers/staging/zcache/debug.h   | 183 ++
 drivers/staging/zcache/zcache-main.c | 247 +--
 4 files changed, 305 insertions(+), 241 deletions(-)
 create mode 100644 drivers/staging/zcache/debug.c
 create mode 100644 drivers/staging/zcache/debug.h

diff --git a/drivers/staging/zcache/Makefile b/drivers/staging/zcache/Makefile
index 98c4e32..62e2bc9 100644
--- a/drivers/staging/zcache/Makefile
+++ b/drivers/staging/zcache/Makefile
@@ -1,5 +1,6 @@
 obj-$(CONFIG_ZCACHE)   += zcache.o
-zcache-y   :=  zcache-main.o tmem.o zbud.o
+zcache-y   :=  zcache-main.o tmem.o zbud.o
+zcache-$(CONFIG_ZCACHE_DEBUG) += debug.o
 zcache-$(CONFIG_RAMSTER)+= ramster/ramster.o ramster/r2net.o
 zcache-$(CONFIG_RAMSTER)+= ramster/nodemanager.o ramster/tcp.o
 zcache-$(CONFIG_RAMSTER)+= ramster/heartbeat.o ramster/masklog.o
diff --git a/drivers/staging/zcache/debug.c b/drivers/staging/zcache/debug.c
new file mode 100644
index 000..0d19715
--- /dev/null
+++ b/drivers/staging/zcache/debug.c
@@ -0,0 +1,113 @@
+#include linux/atomic.h
+#include debug.h
+
+#ifdef CONFIG_DEBUG_FS
+#include linux/debugfs.h
+#definezdfsdebugfs_create_size_t
+#definezdfs64  debugfs_create_u64
+int zcache_debugfs_init(void)
+{
+   struct dentry *root = debugfs_create_dir(zcache, NULL);
+   if (root == NULL)
+   return -ENXIO;
+
+   zdfs(obj_count, S_IRUGO, root, zcache_obj_count);
+   zdfs(obj_count_max, S_IRUGO, root, zcache_obj_count_max);
+   zdfs(objnode_count, S_IRUGO, root, zcache_objnode_count);
+   zdfs(objnode_count_max, S_IRUGO, root, zcache_objnode_count_max);
+   zdfs(flush_total, S_IRUGO, root, zcache_flush_total);
+   zdfs(flush_found, S_IRUGO, root, zcache_flush_found);
+   zdfs(flobj_total, S_IRUGO, root, zcache_flobj_total);
+   zdfs(flobj_found, S_IRUGO, root, zcache_flobj_found);
+   zdfs(failed_eph_puts, S_IRUGO, root, zcache_failed_eph_puts);
+   zdfs(failed_pers_puts, S_IRUGO, root, zcache_failed_pers_puts);
+   zdfs(failed_get_free_pages, S_IRUGO, root,
+   zcache_failed_getfreepages);
+   zdfs(failed_alloc, S_IRUGO, root, zcache_failed_alloc);
+   zdfs(put_to_flush, S_IRUGO, root, zcache_put_to_flush);
+   zdfs(compress_poor, S_IRUGO, root, zcache_compress_poor);
+   zdfs(mean_compress_poor, S_IRUGO, root, zcache_mean_compress_poor);
+   zdfs(eph_ate_tail, S_IRUGO, root, zcache_eph_ate_tail);
+   zdfs(eph_ate_tail_failed, S_IRUGO, root, zcache_eph_ate_tail_failed);
+   zdfs(pers_ate_eph, S_IRUGO, root, zcache_pers_ate_eph);
+   zdfs(pers_ate_eph_failed, S_IRUGO, root, zcache_pers_ate_eph_failed);
+   zdfs(evicted_eph_zpages, S_IRUGO, root, zcache_evicted_eph_zpages);
+   zdfs(evicted_eph_pageframes, S_IRUGO, root,
+   zcache_evicted_eph_pageframes);
+   zdfs(eph_pageframes, S_IRUGO, root, zcache_eph_pageframes);
+   zdfs(eph_pageframes_max, S_IRUGO, root, zcache_eph_pageframes_max);
+   zdfs(pers_pageframes, S_IRUGO, root, zcache_pers_pageframes);
+   zdfs(pers_pageframes_max, S_IRUGO, root, zcache_pers_pageframes_max);
+   zdfs(eph_zpages, S_IRUGO, root, zcache_eph_zpages);
+   zdfs(eph_zpages_max, S_IRUGO, root, zcache_eph_zpages_max);
+   zdfs(pers_zpages, S_IRUGO, root, zcache_pers_zpages);
+   zdfs(pers_zpages_max, S_IRUGO, root, zcache_pers_zpages_max);
+   zdfs(last_active_file_pageframes, S_IRUGO, root,
+   zcache_last_active_file_pageframes);
+   zdfs(last_inactive_file_pageframes, S_IRUGO, root,
+   zcache_last_inactive_file_pageframes);
+   zdfs(last_active_anon_pageframes, S_IRUGO, root,
+   zcache_last_active_anon_pageframes);
+   zdfs(last_inactive_anon_pageframes, S_IRUGO, root,
+   zcache_last_inactive_anon_pageframes);
+   zdfs(eph_nonactive_puts_ignored, S_IRUGO, root,
+   zcache_eph_nonactive_puts_ignored);
+   zdfs(pers_nonactive_puts_ignored, S_IRUGO, root,
+   zcache_pers_nonactive_puts_ignored);
+   zdfs64(eph_zbytes, S_IRUGO, root, zcache_eph_zbytes);
+   zdfs64(eph_zbytes_max, S_IRUGO, root, zcache_eph_zbytes_max);
+   zdfs64(pers_zbytes, S_IRUGO, root, zcache_pers_zbytes);
+   zdfs64(pers_zbytes_max, S_IRUGO, root, zcache_pers_zbytes_max);
+   return 0;
+}
+#undef zdebugfs
+#undef zdfs64
+
+/* developers can call this in case of ooms, e.g. to find memory leaks */
+void zcache_dump(void)
+{
+   pr_debug(zcache: obj_count=%u\n, zcache_obj_count);
+   pr_debug(zcache: obj_count_max=%u\n, zcache_obj_count_max);
+