Hi Ryan, Thanks for update!
On Sun, 5 Oct 2025 08:46:54 +0900 Ryan Chung <[email protected]> wrote: > This series aims to extend fprobe with list-style filters and a clear > entry/exist qualifier. Users can now specify a comma-separated symbol > list with ! exclusions, and use a spec-level suffix to select probe > type: > > - funcA*, !funcAB, funcC -> entry probes > - funcA*, !funcAB, funcC:entry -> explicit entry > - funcA*, !funcAB, funcC:exit -> return/exit across the whole list Just a note, it should not accept spaces in the list. The space is the highest level delimiter. I hope actual implementation does not accept spaces. So something like: "funcA*,!funcAB,funcC" "funcA*,!funcAB,funcC:entry" "funcA*,!funcAB,funcC:exit" > > For compatibility, %return remains supported for single, literal > symbols. When a list or wildcard is used, an explicit [GROUP/EVENT is > required and autogeneration is disabled. Autogen names are kept for > single-symbol specs, with wildcard sanitization. For list/wildcard forms > we set ctx->funcname = NULL so BTF lookups are not attempted. OK. So "funcA*%return" and "funcA,funcB%return" will fail. > > The series moves parsing to the parse path, documents the new syntax, > and adds selftests that accept valid list cases and reject empty tokens, > stray commas, and %return mixed with lists or wildcards. Selftests also > verify enable/disable flow and that entry+exit on the same set do not > double-count attached functions. Thanks for adding selftests and document, that is important to maintain features. > > Help wanted: This is my first time contributing ftrace selftests. I > would appreciate comments and recommendations on test structure and > coverage. OK, let me review it. Thanks, > > Basic coverage is included, but this likely needs broader testing across > architectures. Feedback and additional test ideas are welcome. > > Changes since v2: > - Introduce spec-level: :entry/:exit; reject %return with > lists/wildcards > - Require explict [GROUP/]EVENT for list/wildcard; keep autogen only for > single literal. > - Sanitize autogen names for single-symbol wildcards > - Set ctx->funcname = NULL for list/wildcard to bypass BTF > - Move list parsing out of __register_trace_fprobe() and into the parse > path > - Update docs and tracefs README and add dynevent selftests for > accept/reject and enable/disable flow > > Link: > https://lore.kernel.org/lkml/[email protected]/ > > Ryan Chung (5): > docs: tracing: fprobe: document list filters and :entry/:exit > tracing: fprobe: require explicit [GROUP/]EVENT for list/wildcard > tracing: fprobe: support comma-separated symbols and :entry/:exit > selftests/ftrace: dynevent: add reject cases for list/:entry/:exit > selftests/ftrace: dynevent: add reject cases > > Documentation/trace/fprobetrace.rst | 27 +- > kernel/trace/trace.c | 3 +- > kernel/trace/trace_fprobe.c | 247 ++++++++++++++---- > .../test.d/dynevent/add_remove_fprobe.tc | 121 +++++++++ > .../test.d/dynevent/fprobe_syntax_errors.tc | 13 + > 5 files changed, 349 insertions(+), 62 deletions(-) > > -- > 2.43.0 > -- Masami Hiramatsu (Google) <[email protected]>
