[PATCH 07/16] zcache: Move debugfs code out of zcache-main.c file.
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.
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.
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.
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); +