]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kmemleak: add checksum to backtrace report
authorJim Cromie <jim.cromie@gmail.com>
Thu, 16 Nov 2023 22:43:18 +0000 (15:43 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 20 Nov 2023 21:16:36 +0000 (13:16 -0800)
Change /sys/kernel/debug/kmemleak report format slightly, adding
"(extra info)" to the backtrace header:

from: "  backtrace:"
to:   "  backtrace (crc <cksum>):"

The <cksum> allows a user to see recurring backtraces without
detailed/careful reading of multiline stacks.  So after cycling
kmemleak-test a few times, I know some leaks are repeating.

  bash-5.2# grep backtrace /sys/kernel/debug/kmemleak | wc
     62     186    1792
  bash-5.2# grep backtrace /sys/kernel/debug/kmemleak | sort -u | wc
     37     111    1067

syzkaller parses kmemleak for "unreferenced object" only, so is
unaffected by this change.  Other github repos are moribund.

Link: https://lkml.kernel.org/r/20231116224318.124209-3-jim.cromie@gmail.com
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/kmemleak.c

index a87b3dd8f3b7415973673be59884035bb94b6283..0fb4dcc3b06ad58fab1c31e73d9e0acf27f1b856 100644 (file)
@@ -362,7 +362,7 @@ static void print_unreferenced(struct seq_file *seq,
        warn_or_seq_printf(seq, "  comm \"%s\", pid %d, jiffies %lu\n",
                           object->comm, object->pid, object->jiffies);
        hex_dump_object(seq, object);
-       warn_or_seq_printf(seq, "  backtrace:\n");
+       warn_or_seq_printf(seq, "  backtrace (crc %x):\n", object->checksum);
 
        for (i = 0; i < nr_entries; i++) {
                void *ptr = (void *)entries[i];