aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2009-10-28 09:33:12 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2009-10-28 13:07:54 -0400
commitfefdd336b2a2f7617e0c8a0777c731d9ed6454ae (patch)
treee70e4478b5713863da5fc7fbd29f4d5a63ed559b /mm
parent0587da40be78d3704a48d3e9a619183891727f5f (diff)
kmemleak: Show the age of an unreferenced object
The jiffies shown for unreferenced objects isn't always meaningful to people debugging kernel memory leaks. This patch adds the age as well to the displayed information. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'mm')
-rw-r--r--mm/kmemleak.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index f06c0921e472..ce79d91eeef7 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -346,11 +346,13 @@ static void print_unreferenced(struct seq_file *seq,
346 struct kmemleak_object *object) 346 struct kmemleak_object *object)
347{ 347{
348 int i; 348 int i;
349 unsigned int msecs_age = jiffies_to_msecs(jiffies - object->jiffies);
349 350
350 seq_printf(seq, "unreferenced object 0x%08lx (size %zu):\n", 351 seq_printf(seq, "unreferenced object 0x%08lx (size %zu):\n",
351 object->pointer, object->size); 352 object->pointer, object->size);
352 seq_printf(seq, " comm \"%s\", pid %d, jiffies %lu\n", 353 seq_printf(seq, " comm \"%s\", pid %d, jiffies %lu (age %d.%03ds)\n",
353 object->comm, object->pid, object->jiffies); 354 object->comm, object->pid, object->jiffies,
355 msecs_age / 1000, msecs_age % 1000);
354 hex_dump_object(seq, object); 356 hex_dump_object(seq, object);
355 seq_printf(seq, " backtrace:\n"); 357 seq_printf(seq, " backtrace:\n");
356 358