this is v3, changes from previous: - moved non-controversial commits up front, refactors to help this. - a few more minor cleanups - left out the WIP patches - export ddebug_exec_queries() - accept file=foo:func only, not module:foo - varname changes 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/
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.. Next, add a few query parsing conveniences accept combined file:line & file:func forms file inode.c:100-200 # file & line-range file inode.c:start_* # file & function accept keyword=value, not just "keyword value" (and not keyword:value) Then export ddebug_exec_queries, to tie to drm.debug, etc. Since its an export, I expect some discussion... gpl-only would be fine. The Flags extension stuff has received mixed reviews. Ive refactored these commits, partly to move drive-by-cleanups up front, which also decluttered these controversial patches; I think theres a cleanup value to the early rework patches, even if filterflags doesnt make it in. Ive reworked all the flag-features commit messages to improve the usefulness argument, hopefully well enough now. Jim Cromie (21): -cleanups: 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 -feature file:func dyndbg: refactor parse_linerange out of ddebug_parse_query dyndbg: accept 'file foo.c:func1' and 'file foo.c:10-100' -feature, new in v3 dyndbg: accept query terms like file=bar -export, new in v3 dyndbg: export ddebug_exec_queries -rework dyndbg: combine flags & mask into a struct, simplify with it dyndbg: refactor ddebug_read_flags out of ddebug_parse_flags dyndbg: add filter channel to the internals -flags features exposed dyndbg: extend ddebug_parse_flags to accept optional leading filter-flags dyndbg: add user-flag, negating-flags, and filtering on flags dyndbg: allow negating flag-chars in modifier flags .../admin-guide/dynamic-debug-howto.rst | 79 +++-- include/asm-generic/vmlinux.lds.h | 6 +- include/linux/dynamic_debug.h | 5 +- kernel/module.c | 2 +- lib/dynamic_debug.c | 334 ++++++++++-------- 5 files changed, 260 insertions(+), 166 deletions(-) -- 2.26.2