[PATCHSET 00/17] tools lib traceevent: Plugin unload enhancement

From: Namhyung Kim
Date: Tue Jan 14 2014 - 20:49:29 EST


Hello,

When plugins are loaded, they register various event and function
handlers. But they don't unregister even after the plugins unloaded
so that events could have refererences to non-existing handlers.

This patchset added relevant unregister functions to handle that.

Note that this is not a problem as of now since all of users unload
plugins after finishing their access to events. But being a generic
library, it should be handled properly IMHO.

The patch 1-4 are resend of the previous die removal series so
independent to this series.

I put the series on the 'libtraceevent/plugin-v1' branch in my tree

git://git.kernel.org/pub/scm/linux/kernel/git/namhyung/linux-perf.git

Any comments are welcome, thanks
Namhyung


Namhyung Kim (17):
tools lib traceevent: Add state member to struct trace_seq
tools lib traceevent: Check return value of realloc()
tools lib traceevent: Get rid of malloc_or_die() in trace_seq_init()
tools lib traceevent: Get rid of die() finally!!
tools lib traceevent: Make plugin unload function receive pevent
tools lib traceevent: Add pevent_unregister_event_handler()
tools lib traceevent: Add pevent_unregister_print_function()
tools lib traceevent: Unregister handler when function plugin
unloaded
tools lib traceevent: Unregister handler when hrtimer plugin unloaded
tools lib traceevent: Unregister handler when kmem plugin unloaded
tools lib traceevent: Unregister handler when kvm plugin unloaded
tools lib traceevent: Unregister handler when sched_switch plugin
unloaded
tools lib traceevent: Unregister handler when mac80211 plugin
unloaded
tools lib traceevent: Unregister handler when cfg80211 plugin
unloaded
tools lib traceevent: Unregister handler when jbd2 plugin unloaded
tools lib traceevent: Unregister handler when scsi plugin unloaded
tools lib traceevent: Unregister handler when xen plugin unloaded

tools/lib/traceevent/Makefile | 2 +-
tools/lib/traceevent/event-parse.c | 136 ++++++++++++++++++++++++++---
tools/lib/traceevent/event-parse.h | 19 +++-
tools/lib/traceevent/event-plugin.c | 4 +-
tools/lib/traceevent/event-utils.h | 4 -
tools/lib/traceevent/parse-utils.c | 44 ----------
tools/lib/traceevent/plugin_cfg80211.c | 7 ++
tools/lib/traceevent/plugin_function.c | 5 +-
tools/lib/traceevent/plugin_hrtimer.c | 10 +++
tools/lib/traceevent/plugin_jbd2.c | 11 +++
tools/lib/traceevent/plugin_kmem.c | 22 +++++
tools/lib/traceevent/plugin_kvm.c | 30 +++++++
tools/lib/traceevent/plugin_mac80211.c | 7 ++
tools/lib/traceevent/plugin_sched_switch.c | 12 +++
tools/lib/traceevent/plugin_scsi.c | 7 ++
tools/lib/traceevent/plugin_xen.c | 7 ++
tools/lib/traceevent/trace-seq.c | 58 ++++++++++--
tools/perf/util/trace-event.c | 2 +-
18 files changed, 310 insertions(+), 77 deletions(-)

--
1.7.11.7

--
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/