Messages in this thread | ![/](/images/icornerl.gif) | | From | Jim Cromie <> | Subject | [PATCH v4 00/17] dynamic_debug cleanups, query features, export | Date | Sat, 20 Jun 2020 12:06:26 -0600 |
| |
this is v4, changes from previous: - dropped flags extensions, one internal optimization kept - export ddebug_exec_queries() - done previously, but warrants attention - add ^anchor to format matching
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/
Jim Cromie (17):
Patchset starts with 11 cleanups; - change section name from vague "__verbose" to "__dyndbg" - cleaner docs, drop obsolete comment & useless debug prints, refine verbosity, fix a BUG_ON, ram reporting miscounts. etc..
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
accept combined file:line & file:func forms file inode.c:100-200 # file & line-range file inode.c:start_* # file & function
dyndbg: refactor parse_linerange out of ddebug_parse_query dyndbg: accept 'file foo.c:func1' and 'file foo.c:10-100'
accept keyword=value, not just "keyword value" (and not keyword:value) dyndbg: accept query terms like file=bar and module=foo
dyndbg: export ddebug_exec_queries
This will afford module authors complete run-time control over all the *pr_debug* callsites theyve coded. They can attach a callback to their existing debug interface (drm.debug for example), and map bits, bytes, or strings to particular queries.
dyndbg: allow anchored match on format query term
This makes "format=^PCI" work, which is far more specific than just "format=PCI". It is ideal for the most common convention in logging; a string prefix which classifies the log-entry in some way.
dyndbg: combine flags & mask into a struct, simplify with it 1 less parameter on the stack.
.../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 | 263 ++++++++++-------- 5 files changed, 169 insertions(+), 135 deletions(-)
-- 2.26.2
| ![\](/images/icornerr.gif) |