[RFC PATCH v6 0/3] Tracepoint API simplification/cleanup

From: Mathieu Desnoyers
Date: Wed Mar 19 2014 - 18:32:58 EST


Here is v6 of the tracepoint register/unregister API simplification.

Changes since v1:
- Adapt ftrace/perf callers,
- Update tracepoint.h macro,
- Build tested.

Changes since v2:
- Introduce for_each_tracepoint() iterator to allow listing the
currently loaded tracepoints, for modules using coming/going
notifiers to track tracepoints.

Changes since v3:
- Introduce module coming and going notifiers each with their own
priority to ensure that other coming notifiers are called after, and
coming notifiers are called before the tracepoint notifiers.
- Fix: move for_each_tracepoint() outside of the CONFIG_MODULE ifdef.

Changes since v4:
- Split tracepoints_mutex into two locks: tp_modlist_mutex, which
protects the tracepoint list of modules, and a tracepoint_mutex, which
protects the tracepoints per se. tracepoint_mutex nests inside
tp_modlist_mutex.
- Introduce a tracepoint module notifier, to ensure consistency between
iteration on tracepoints with for_each_tracepoint() and module coming
and going notifications. This consistency is ensured by holding
tp_modlist_mutex when calling the notifier and when iterating on the
tracepoint module list.

Changes since v5:
- Remove tracepoint_add_old_probes within "Tracepoint cleanup: remove
unused API functions" rather than in later patch.
- Remove struct tp_probes "old probes" list within "Tracepoint cleanup:
remove unused API functions", as it is not needed anymore.
- Within "Tracepoint cleanup: remove unused API functions", simply add
the new module to tail of list, since there is no need to keep it
ordered anymore.

Still need testing.

Feedback is welcome,

Thanks!

Mathieu

Mathieu Desnoyers (3):
Tracepoint cleanup: remove unused API functions
Tracepoint API doc update: data argument
Tracepoint: register/unregister struct tracepoint

include/linux/ftrace_event.h | 1 +
include/linux/tracepoint.h | 62 ++--
include/trace/ftrace.h | 2 +
kernel/trace/trace_events.c | 8 +-
kernel/tracepoint.c | 707 ++++++++++++++----------------------------
5 files changed, 268 insertions(+), 512 deletions(-)

--
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/