[PATCH v2 0/7] tracing: Synthetic event dynamic string fixes

From: Tom Zanussi
Date: Mon Oct 12 2020 - 16:18:16 EST


This updates v1 to fix a couple of additional things that Masami
pointed out:

- The error logging for the BAD_TYPE error was actually pointing to
the name - it now points to the type as it should.

- Added a new test case that verifies most of the synthetic event
error messages and caret positions.

- Added a new patch that correctly strips off trailing semicolons and
everything else from array types, which wasn't happening before,
even before the dynamic array patches.

Thanks,

Tom

Original v1 text:

These patches provide fixes for the problems observed by Masami in the
new synthetic event dynamic string patchset.

The first patch (tracing: Don't show dynamic string internals in
synthetic event description) removes the __data_loc from the event
description but leaves it in the format.

The patch (tracing: Add synthetic event error logging) addresses the
lack of error messages when parse errors occur.

The remaining three patches address the other problems Masami noted
which result from allowing illegal characters in synthetic event and
field names when defining an event. The is_good_name() function is
used to check that's not possible for the probe events, but should
also be used for the synthetic events as well.

(tracing: Move is_good_name() from trace_probe.h to trace.h) makes
that function available to other trace subsystems by putting it in
trace.h. (tracing: Check that the synthetic event and field names are
legal) applies it to the synthetic events, and (selftests/ftrace:
Change synthetic event name for inter-event-combined test) changes a
testcase that now fails because it uses an illegal name.

The following changes since commit 848183553e431e6e9c2ea2f72421a7a1bbc6532e:

tracing: Fix synthetic print fmt check for use of __get_str() (2020-10-08 15:29:07 -0400)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git ftrace/dynstring-fixes-v2

Tom Zanussi (7):
tracing: Don't show dynamic string internals in synthetic event
description
tracing: Move is_good_name() from trace_probe.h to trace.h
tracing: Check that the synthetic event and field names are legal
tracing: Add synthetic event error logging
selftests/ftrace: Change synthetic event name for inter-event-combined
test
tracing: Handle synthetic event array field type checking correctly
selftests/ftrace: Add test case for synthetic event syntax errors

kernel/trace/trace.h | 13 ++
kernel/trace/trace_events_synth.c | 140 +++++++++++++++++-
kernel/trace/trace_probe.h | 13 --
.../trigger-inter-event-combined-hist.tc | 8 +-
.../trigger-synthetic_event_syntax_errors.tc | 19 +++
5 files changed, 171 insertions(+), 22 deletions(-)
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic_event_syntax_errors.tc

--
2.17.1