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.cro...@gmail.com/ v2: https://lore.kernel.org/lkml/20200613155738.2249399-1-jim.cro...@gmail.com/ v1: https://lore.kernel.org/lkml/20200605162645.289174-1-jim.cro...@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