diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2009-10-28 09:33:12 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2009-10-28 13:07:54 -0400 |
commit | fefdd336b2a2f7617e0c8a0777c731d9ed6454ae (patch) | |
tree | e70e4478b5713863da5fc7fbd29f4d5a63ed559b /mm | |
parent | 0587da40be78d3704a48d3e9a619183891727f5f (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.c | 6 |
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 | ||