lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231012194834.3288085-1-jim.cromie@gmail.com>
Date:   Thu, 12 Oct 2023 13:48:24 -0600
From:   Jim Cromie <jim.cromie@...il.com>
To:     linux-kernel@...r.kernel.org, jbaron@...mai.com,
        gregkh@...uxfoundation.org
Cc:     david@...hat.com, lb@...ihalf.com, linux@...musvillemoes.dk,
        joe@...ches.com, mcgrof@...nel.org, Liam.Howlett@...cle.com,
        linux-mm@...ck.org, Jim Cromie <jim.cromie@...il.com>
Subject: [RFC PATCH 00/10] how to reclaim unneeded vmlinux memory ?

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ