]> git.baikalelectronics.ru Git - kernel.git/commit
dyndbg: fix overcounting of ram used by dyndbg
authorJim Cromie <jim.cromie@gmail.com>
Sun, 19 Jul 2020 23:10:46 +0000 (17:10 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Jul 2020 15:00:08 +0000 (17:00 +0200)
commitb2b712bedf699a8c6f27cfc4a5ce6ec8c09ae1af
treeb900e4795e0931a86592978382745de69879d60f
parent82d267ea49d1e07dc42cc8eddbf428265f49464d
dyndbg: fix overcounting of ram used by dyndbg

during dyndbg init, verbose logging prints its ram overhead.  It
counted strlens of struct _ddebug's 4 string members, in all callsite
entries, which would be approximately correct if each had been
mallocd.  But they are pointers into shared .rodata; for example, all
10 kobject callsites have identical filename, module values.

Its best not to count that memory at all, since we cannot know they
were linked in because of CONFIG_DYNAMIC_DEBUG=y, and we want to
report a number that reflects what ram is saved by deconfiguring it.

Also fix wording and size under-reporting of the __dyndbg section.

Heres my overhead, on a virtme-run VM on a fedora-31 laptop:

  dynamic_debug:dynamic_debug_init: 260 modules, 2479 entries \
    and 10400 bytes in ddebug tables, 138824 bytes in __dyndbg section

Acked-by: <jbaron@akamai.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Link: https://lore.kernel.org/r/20200719231058.1586423-7-jim.cromie@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lib/dynamic_debug.c