This series is nearly all maintenance: it refactors/splits functions,
tightens an internal callchain, drops linked-listing where an
array,length is already available, reduces verbose=3 logging for
usability, and reorganizes several structs for better organization.

Getting these into linux-next for integration testing would clear the
deck for fixing Dynamic-debug classmaps, which is needed to restore
the un-BROKEN status of DRM_USE_DYNAMIC_DEBUG.

Theyre on master at v7.1-rc2

The "modules" intersection is on the re-composing of struct
ddebug_info, which is a member in struct module, and maps a module's
__dyndbg* elf sections.

The user visible change to /proc/dynamic_debug/control is s/class
unknown/class:_UNKNOWN_/, which is a more visible/greppable indication
of incomplete class definitions.

Coder visible change is to drop the enum ddebug_class_map_type's
unused vals - namely: DD_CLASS_TYPE_DISJOINT_NAMES
& DD_CLASS_TYPE_LEVEL_NAMES

These allowed more symbolic named inputs:
  echo +DRM_UT_CORE > /sys/module/drm/parameters/debug

But theyre unused 3 years later, and probably not worth keeping.
With a removal commit in the log, its easy enough to restore them later.

Signed-off-by: Jim Cromie <[email protected]>
---
Jim Cromie (17):
      dyndbg: factor ddebug_match_desc out from ddebug_change
      dyndbg: add stub macro for DECLARE_DYNDBG_CLASSMAP
      dyndbg: reword "class unknown," to "class:_UNKNOWN_"
      dyndbg: make ddebug_class_param union members same size
      dyndbg: drop NUM_TYPE_ARRAY
      dyndbg: tweak pr_fmt to avoid expansion conflicts
      dyndbg: reduce verbose/debug clutter
      dyndbg: refactor param_set_dyndbg_classes and below
      dyndbg: tighten fn-sig of ddebug_apply_class_bitmap
      dyndbg: replace classmap list with a vector
      dyndbg: macrofy a 2-index for-loop pattern
      dyndbg,module: make proper substructs in _ddebug_info
      dyndbg: move mod_name down from struct ddebug_table to _ddebug_info
      dyndbg: hoist classmap-filter-by-modname up to ddebug_add_module
      dyndbg-API: remove DD_CLASS_TYPE_(DISJOINT|LEVEL)_NAMES and code
      selftests-dyndbg: add a dynamic_debug run_tests target
      dyndbg: change __dynamic_func_call_cls* macros into expressions

 MAINTAINERS                                        |   1 +
 include/linux/dynamic_debug.h                      | 106 ++---
 kernel/module/main.c                               |  12 +-
 lib/dynamic_debug.c                                | 504 ++++++++++-----------
 lib/test_dynamic_debug.c                           |  28 +-
 tools/testing/selftests/Makefile                   |   1 +
 tools/testing/selftests/dynamic_debug/Makefile     |   9 +
 tools/testing/selftests/dynamic_debug/config       |   7 +
 .../selftests/dynamic_debug/dyndbg_selftest.sh     | 257 +++++++++++
 9 files changed, 582 insertions(+), 343 deletions(-)
---
base-commit: 6d35786de28116ecf78797a62b84e6bf3c45aa5a
change-id: 20260504-dd-cleanups-2-5c37432d5c03

Best regards,
-- 
Jim Cromie <[email protected]>


Reply via email to