Messages in this thread Patch in this message | | | Date | Thu, 19 Mar 2009 16:09:33 -0700 (PDT) | From | David Rientjes <> | Subject | [patch] vmscan: print shrink_slab symbol name on negative shrinker objects |
| |
When a shrinker has a negative number of objects to delete, the symbol name of the shrinker should be printed, not shrink_slab.
Signed-off-by: David Rientjes <rientjes@google.com> --- mm/vmscan.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -40,6 +40,7 @@ #include <linux/memcontrol.h> #include <linux/delayacct.h> #include <linux/sysctl.h> +#include <linux/kallsyms.h> #include <asm/tlbflush.h> #include <asm/div64.h> @@ -214,8 +215,12 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, do_div(delta, lru_pages + 1); shrinker->nr += delta; if (shrinker->nr < 0) { - printk(KERN_ERR "%s: nr=%ld\n", - __func__, shrinker->nr); + char symname[KSYM_NAME_LEN]; + + if (lookup_symbol_name((unsigned long)shrinker->shrink, + symname) > 0) + printk(KERN_ERR "shrink_slab: %s nr=%ld\n", + symname, shrinker->nr); shrinker->nr = max_pass; }
| |