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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to