linux/tools/lib/traceevent
He Kuang e3d09ec812 tools lib traceevent: Export dynamic symbols used by traceevent plugins
Traceevent plugins need dynamic symbols exported from libtraceevent.a,
otherwise a dlopen error will occur during plugins loading.

This patch uses dynamic-list-file to export dynamic symbols which will
be used in plugins to perf executable.

The problem is covered up if feature-libpython is enabled, because
PYTHON_EMBED_LDOPTS contains '-Xlinker --export-dynamic' which adds all
symbols to the dynamic symbol table. So we should reproduce the problem
by setting NO_LIBPYTHON=1.

Before this patch:

  (Prepare plugins)
  $ ls /root/.traceevent/plugins/
  plugin_sched_switch.so
  plugin_function.so
  ...

  $ perf record -e 'ftrace:function' ls

  $ perf script
    Warning: could not load plugin '/mnt/data/root/.traceevent/plugins/plugin_sched_switch.so'
    /root/.traceevent/plugins/plugin_sched_switch.so: undefined symbol: pevent_unregister_event_handler

    Warning: could not load plugin '/root/.traceevent/plugins/plugin_function.so'
    /root/.traceevent/plugins/plugin_function.so: undefined symbol: warning
    ...
           :1049  1049 [000]  9666.754487: ftrace:function:  ffffffff8118bc50 <-- ffffffff8118c5b3
           :1049  1049 [000]  9666.754487: ftrace:function:  ffffffff818e2440 <-- ffffffff8118bc75
           :1049  1049 [000]  9666.754487: ftrace:function:  ffffffff8106eee0 <-- ffffffff811212e2

After this patch:

  $ perf record -e 'ftrace:function' ls
  $ perf script
           :1049  1049 [000]  9666.754487: ftrace:function: __set_task_comm
           :1049  1049 [000]  9666.754487: ftrace:function:    _raw_spin_lock
           :1049  1049 [000]  9666.754487: ftrace:function: task_tgid_nr_ns
           ...

Signed-off-by: He Kuang <hekuang@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1432819735-35040-1-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-06-08 10:30:31 -03:00
..
.gitignore tools lib traceevent: Ignore TRACEEVENT-CFLAGS file 2012-07-25 11:54:44 -03:00
Build tools lib traceevent: Use tools build framework 2015-02-12 17:55:38 -03:00
event-parse.c Merge branch 'perf/urgent' into perf/core, to resolve conflicts 2015-05-11 11:56:27 +02:00
event-parse.h tools lib traceevent: Add alias field to struct format_field 2015-04-29 10:37:45 -03:00
event-plugin.c tools lib traceevent: Make plugin options either string or boolean 2015-03-24 12:20:09 -03:00
event-utils.h tools lib traceevent: Get rid of die() finally!! 2014-01-15 15:10:36 -03:00
kbuffer-parse.c tools lib traceevent: Add way to find sub buffer boundary 2015-03-24 12:22:09 -03:00
kbuffer.h tools lib traceevent: Add way to find sub buffer boundary 2015-03-24 12:22:09 -03:00
Makefile tools lib traceevent: Export dynamic symbols used by traceevent plugins 2015-06-08 10:30:31 -03:00
parse-filter.c tools lib traceevent: Free filter tokens in process_filter() 2015-03-24 12:23:03 -03:00
parse-utils.c tools lib traceevent: Get rid of die() finally!! 2014-01-15 15:10:36 -03:00
plugin_cfg80211.c tools lib traceevent: Provide le16toh define for older systems 2015-05-14 12:28:11 -03:00
plugin_function.c tools lib traceevent: Add options to function plugin 2014-06-07 23:33:37 +02:00
plugin_hrtimer.c tools lib traceevent: Unregister handler when hrtimer plugin is unloaded 2014-01-16 16:26:24 -03:00
plugin_jbd2.c tools lib traceevent: Clean up format of args in jbd2 plugin 2014-06-19 18:18:37 +02:00
plugin_kmem.c tools lib traceevent: Unregister handler when kmem plugin is unloaded 2014-01-16 16:26:24 -03:00
plugin_kvm.c tools lib traceevent: Fix format in plugin_kvm 2014-06-19 18:18:33 +02:00
plugin_mac80211.c tools lib traceevent: Unregister handler when mac80211 plugin is unloaded 2014-01-16 16:26:25 -03:00
plugin_sched_switch.c tools lib traceevent: Unregister handler when sched_switch plugin is unloaded 2014-01-16 16:26:25 -03:00
plugin_scsi.c scsi: add SPC-3 command definitions 2014-11-24 20:01:44 +01:00
plugin_xen.c tools lib traceevent: Unregister handler when xen plugin is unloaded 2014-01-16 16:26:25 -03:00
trace-seq.c tools lib traceevent: Introduce trace_seq_do_fprintf function 2015-02-06 11:46:37 +01:00