Linux-Trace-Devel Archive on
 help / color / Atom feed
From: "Tzvetomir Stoyanov (VMware)" <>
Subject: [PATCH 03/15] tools lib traceevent: Remove trace-cmd plugin handling routines
Date: Thu, 25 Jun 2020 13:05:10 +0300
Message-ID: <> (raw)
In-Reply-To: <>

Currently there are no trace-cmd related plugins, all of them
are designed to be used with libtraceeevnt. As both libtraceevent
and trace-cmd have logic for managing plugins, the one in trace-cmd
is redundant. Those redundant code is removed and replaced with calls
to libtraceeevnt plugin APIs. When trace-cmd has to load any plugins,
it uses libtraceeevnt to do the job.

Removed trace-cmd functions:

A new libtraceevent API is added:
  tep_load_plugins_hook() - the local static
function load_plugins() is exposed as API, as this
functionality is needed be trace-cmd.


Signed-off-by: Tzvetomir Stoyanov (VMware) <>
Signed-off-by: Steven Rostedt (VMware) <>
 tools/lib/traceevent/event-parse.h  |  6 ++++++
 tools/lib/traceevent/event-plugin.c | 19 +++++++++----------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/tools/lib/traceevent/event-parse.h b/tools/lib/traceevent/event-parse.h
index b77837f75a0d..776c7c24ee79 100644
--- a/tools/lib/traceevent/event-parse.h
+++ b/tools/lib/traceevent/event-parse.h
@@ -396,6 +396,12 @@ struct tep_plugin_list;
 struct tep_plugin_list *tep_load_plugins(struct tep_handle *tep);
 void tep_unload_plugins(struct tep_plugin_list *plugin_list,
 			struct tep_handle *tep);
+void tep_load_plugins_hook(struct tep_handle *tep, const char *suffix,
+			   void (*load_plugin)(struct tep_handle *tep,
+					       const char *path,
+					       const char *name,
+					       void *data),
+			   void *data);
 char **tep_plugin_list_options(void);
 void tep_plugin_free_options_list(char **list);
 int tep_plugin_add_options(const char *name,
diff --git a/tools/lib/traceevent/event-plugin.c b/tools/lib/traceevent/event-plugin.c
index e1f7ddd5a6cf..b53d9a53bcf9 100644
--- a/tools/lib/traceevent/event-plugin.c
+++ b/tools/lib/traceevent/event-plugin.c
@@ -365,20 +365,19 @@ load_plugins_dir(struct tep_handle *tep, const char *suffix,
-static void
-load_plugins(struct tep_handle *tep, const char *suffix,
-	     void (*load_plugin)(struct tep_handle *tep,
-				 const char *path,
-				 const char *name,
-				 void *data),
-	     void *data)
+void tep_load_plugins_hook(struct tep_handle *tep, const char *suffix,
+			   void (*load_plugin)(struct tep_handle *tep,
+					       const char *path,
+					       const char *name,
+					       void *data),
+			   void *data)
 	char *home;
 	char *path;
 	char *envdir;
 	int ret;
-	if (tep->flags & TEP_DISABLE_PLUGINS)
+	if (tep && tep->flags & TEP_DISABLE_PLUGINS)
@@ -386,7 +385,7 @@ load_plugins(struct tep_handle *tep, const char *suffix,
 	 * check that first.
 #ifdef PLUGIN_DIR
-	if (!(tep->flags & TEP_DISABLE_SYS_PLUGINS))
+	if (!tep || !(tep->flags & TEP_DISABLE_SYS_PLUGINS))
 		load_plugins_dir(tep, suffix, PLUGIN_DIR,
 				 load_plugin, data);
@@ -423,7 +422,7 @@ tep_load_plugins(struct tep_handle *tep)
 	struct tep_plugin_list *list = NULL;
-	load_plugins(tep, ".so", load_plugin, &list);
+	tep_load_plugins_hook(tep, ".so", load_plugin, &list);
 	return list;

  parent reply index

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-25 10:05 [PATCH 00/15] Synchronize libtraceevent with trace-cmd Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 01/15] tools lib traceevent: Add --debug to trace-cmd report Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 02/15] tools lib traceevent: Add proper KBUFFER_TYPE_TIME_STAMP handling Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` Tzvetomir Stoyanov (VMware) [this message]
2020-06-25 10:05 ` [PATCH 04/15] tools lib traceevent: Move plugin options from trace-cmd to libtraceevent Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 05/15] tools lib traceevent: Introduced new traceevent API, for adding new plugins directories Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 06/15] tools lib traceevent: Add support for more printk format specifiers Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 07/15] tools lib traceevent: Optimize pretty_print() function Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 08/15] tools lib traceevent: Add plugin for tlb_flush Tzvetomir Stoyanov (VMware)
2020-06-25 10:05 ` [PATCH 09/15] tools lib traceevent: Add more SVM exit reasons Tzvetomir Stoyanov (VMware)
2020-07-02 17:37 ` [PATCH 00/15] Synchronize libtraceevent with trace-cmd Steven Rostedt

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

Linux-Trace-Devel Archive on

Archives are clonable:
	git clone --mirror linux-trace-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-trace-devel linux-trace-devel/ \
	public-inbox-index linux-trace-devel

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone