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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 19 Jul 2020 17:10:40 -0600
From:   Jim Cromie <jim.cromie@...il.com>
To:     jbaron@...mai.com, linux-kernel@...r.kernel.org,
        akpm@...uxfoundation.org, gregkh@...uxfoundation.org
Cc:     linux@...musvillemoes.dk, Jim Cromie <jim.cromie@...il.com>
Subject: [PATCH v5 00/18] dynamic_debug fixes, cleanups, features, export

this is v5, changes from previous:
 - moved a chunk from patch 13 to 12, per Jason
 - shorten logging prefix to "dyndbg", drop __func__
 - now with more commit-log advocacy
 - shuffle EXPORT_GPL(ddebug_exec_queries) last.
 - v4+ series Acked-by: jbaron@...mai.com

v4: https://lore.kernel.org/lkml/20200620180643.887546-1-jim.cromie@gmail.com/
v3: https://lore.kernel.org/lkml/20200617162536.611386-1-jim.cromie@gmail.com/
v2: https://lore.kernel.org/lkml/20200613155738.2249399-1-jim.cromie@gmail.com/
v1: https://lore.kernel.org/lkml/20200605162645.289174-1-jim.cromie@gmail.com/


Patchset starts with cleanups;
 - change section name from vague "__verbose" to specific "__dyndbg"
 - cleaner docs, drop obsolete comment & useless debug prints,
 - refine verbose/debug logging
 - fix a BUG_ON, ram reporting miscounts. etc..

Then adds query parsing conveniences
 - allow "file inode.c:100-200"		# combined file & line-range
 - allow "file inode.c:start_*"		# file & function
 - accept "module=foo" query form

internal improvement
 - combine flags & mask in a struct, clean 3 func interfaces with it.
 
make precise format queries easier
 - accept "format=^ClassString" anchored query

finally, EXPORT_GPL(ddebug_exec_queries)

This gives module authors complete run-time control over all their
*pr_debug* callsites (when CONFIG_DYNAMIC_DEBUG=y).

Following the drm.debug UI model, drm.debug_chan2 could be wired to a
callback which invokes ddebug_exec_queries to toggle arbitary groups
of pr_debug callsites.

Useful callsite groups would exploit existing message-prefix
classifcation schemes:

  "format=^[IF_TRACE]: +p; format=^[SURFACE]: +p" >control


Jim Cromie (18):
  dyndbg-docs: eschew file /full/path query in docs
  dyndbg-docs: initialization is done early, not arch
  dyndbg: drop obsolete comment on ddebug_proc_open
  dyndbg: refine debug verbosity; 1 is basic, 2 more chatty
  dyndbg: rename __verbose section to __dyndbg
  dyndbg: fix overcounting of ram used by dyndbg
  dyndbg: fix a BUG_ON in ddebug_describe_flags
  dyndbg: fix pr_err with empty string
  dyndbg: prefer declarative init in caller, to memset in callee
  dyndbg: make ddebug_tables list LIFO for add/remove_module
  dyndbg: use gcc ?: to reduce word count
  dyndbg: refactor parse_linerange out of ddebug_parse_query
  dyndbg: accept 'file foo.c:func1' and 'file foo.c:10-100'
  dyndbg: accept query terms like file=bar and module=foo
  dyndbg: combine flags & mask into a struct, simplify with it
  dyndbg: allow anchored match on format query term
  dyndbg: shorten our logging prefix, drop __func__
  dyndbg: export ddebug_exec_queries

 .../admin-guide/dynamic-debug-howto.rst       |  29 +-
 include/asm-generic/vmlinux.lds.h             |   6 +-
 include/linux/dynamic_debug.h                 |   4 +-
 kernel/module.c                               |   2 +-
 lib/dynamic_debug.c                           | 269 ++++++++++--------
 5 files changed, 173 insertions(+), 137 deletions(-)

-- 
2.26.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ