All of
 help / color / mirror / Atom feed
From: Tom Zanussi <>
Subject: [PATCH v8 0/4] tracing: Add and use event_command parsing func helpers
Date: Fri,  4 Feb 2022 16:12:03 -0600	[thread overview]
Message-ID: <> (raw)

With more event commands being implemented, it's been pointed out that
it would make sense to clean up the existing ones and make it easier
to implement new ones without copying a lot of boilerplate.  The main
culprit here is the event_command.func() callback - the rest of the
event_command infrastructure has default implementations that work for
most implementations.  The func() callback is a little different in
that every new command needs to customize parsing to some extent.

This patchset attempts to help clean that up and make it easier for
new users to deal with.

v8: Patches 1-4 of v7 were merged and so don't appear here.

    Added new patch 'tracing: Remove logic for registering multiple
    event triggers at a time' because the code doesn't ever register
    multiple triggers and it just complicates the code.  Doing this
    also removes the unreg() call along with just about everything
    else from event_trigger_register() so is no longer a policy
    violation.  Also added a new function event_trigger_unregister()
    to match event_trigger_register() and clean up the code even more.

    Moved 'tracing: Remove redundant trigger_ops params' so it doesn't
    depend on the following patches.

    Added 'tracing: Separate hist state updates from hist
    registration' to remove the confusing logic concerning
    pause/cont/clear and which caused problems in v7.

v7: Missed a fixup in patch 6/6 to a data->ops->print() in the debug
    code since I forgot to build with CONFIG_HIST_TRIGGERS_DEBUG.

    Patches 1-5 remain the same.

v6: Fixed warning for an uninitialized trigger_ops local in
    event_trigger_parse() pointed out by Steve and the kernel test
    robot. This was done by removing the need for the local by
    removing the redundant trigger_ops params in [PATCH v6 3/6]
    tracing: Remove ops param from event_command reg()/unreg()

    Also added a follow-on patch to remove all the other instances of
    redundant trigger_ops in [PATCH v6 6/6] tracing: Remove redundant
    trigger_ops params

v5: Changed the parsing helper function example components param and
    filter to reflect only the param and filter components, and added
    param_and_filter which now appears in the functions.

    Removed the check for a NULL *param following the strsep
    separating the param from the filter in
    event_trigger_separate_filter() because it will never be true due
    to the previous check for NULL param_and_filter previously.

    Changed the param name from trigger to param and updated the
    function documentation in event_trigger_parse_num().

v4: Added two patches changing the names of event_command.func() and
    event_trigger_ops.func() to make them reflect their functions.

    Added back missing kfree(trigger_data) in event_trigger_callback().

    Changed char *param to const char *param in
    event_trigger_check_remove() and event_trigger_empty_param().

    Changed event_trigger_separate_filter() to use separate param and
    filter outparams, and changed the name of the param inparam to
    param_and_filter to better reflect its contents and avoid the
    clash with new param outparam.  Changed all parse()
    implementations to use this new scheme.

    Fixed some typos and added more extensive comments with examples
    explaining various things that were mentioned as causing confusion
    and just in general tried to clarify things with respect to the
    callbacks and parameters.

v3: broke up event_trigger_check() into smaller functions instead of
    parameterizing it, and added function documentation.

v2: removed unused event_trigger_remove(). No change in functionality.

The following changes since commit f125ef075cd648a7794aa0cc61a188b1c40c8f94:

  tracing: Remove size restriction on synthetic event cmd error logging (2022-01-27 19:15:51 -0500)

are available in the Git repository at:

  git:// ftrace/cleanup-hist-func-v8

Tom Zanussi (4):
  tracing: Remove logic for registering multiple event triggers at a
  tracing: Remove redundant trigger_ops params
  tracing: Have existing event_command.parse() implementations use
  tracing: Separate hist state updates from hist registration

 kernel/trace/trace.h                |  26 ++-
 kernel/trace/trace_eprobe.c         |  10 +-
 kernel/trace/trace_events_hist.c    | 166 ++++++++--------
 kernel/trace/trace_events_trigger.c | 292 +++++++++-------------------
 4 files changed, 193 insertions(+), 301 deletions(-)


             reply	other threads:[~2022-02-04 22:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-04 22:12 Tom Zanussi [this message]
2022-02-04 22:12 ` [PATCH v8 1/4] tracing: Remove logic for registering multiple event triggers at a time Tom Zanussi
2022-02-04 22:12 ` [PATCH v8 2/4] tracing: Remove redundant trigger_ops params Tom Zanussi
2022-02-04 22:12 ` [PATCH v8 3/4] tracing: Have existing event_command.parse() implementations use helpers Tom Zanussi
2022-02-04 22:12 ` [PATCH v8 4/4] tracing: Separate hist state updates from hist registration Tom Zanussi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.