lkml.org 
[lkml]   [2023]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH 00/10] how to reclaim unneeded vmlinux memory ?
Date
For builtin modules, dynamic-debug allocates blocks of memory into
DATA, via vmlinux.lds.h.

dyndbg's struct _ddebug has fields: modname, filename, function, which
keeps the the code's structural/organizational info used to enable &
prefix prdbg callsites.

The linker packs the callsites in-order, which means the repetition in
those 3 columns can be compactly encoded in non-overlapping intervals.

So this saves each unique column-val and its interval into a
maple-tree per column, and retrieves them as needed with accessors.

It also splits out _ddebug_site and __dyndbg_sites section, and no
longer needs the section, so that block is ready to reclaim.

Somethings wrong with patch-9, but it seems worth showing around.


Jim Cromie (10):
dyndbg: prep to isolate 3 repetetive fields
dyndbg: split __dyndbg_sites section out from __dyndbg
dyndbg: add 2nd cursor pair to init-fn
dyndbg: save _ddebug_site mod,file,func fields into maple-trees
dyndbg: avoid _ddebug.site in ddebug_condense_sites
dyndbg: add site_*() macros to avoid using _ddebug.site
dyndbg: wire in __desc_*() functions
dyndbg: drop _ddebug.site member
dyndbg: add dd_clear_range to prune mtrees
dyndbg: cache the dynamically generated prefixes per callsite

include/asm-generic/vmlinux.lds.h | 1 +
include/linux/dynamic_debug.h | 40 +++--
kernel/module/main.c | 3 +
lib/dynamic_debug.c | 238 +++++++++++++++++++++++++++---
4 files changed, 252 insertions(+), 30 deletions(-)

--
2.41.0

\
 
 \ /
  Last update: 2023-10-12 21:48    [W:0.048 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site