linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] trace-cmd: A few updates
@ 2020-01-22 17:12 Steven Rostedt
  2020-01-22 17:12 ` [PATCH 1/5] trace-cmd: Create TRACECMD_MAGIC macro for magic number of trace-cmd data file Steven Rostedt
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:12 UTC (permalink / raw)
  To: linux-trace-devel

Some clean ups, and a fix to get the python module working again.

Steven Rostedt (VMware) (5):
      trace-cmd: Create TRACECMD_MAGIC macro for magic number of trace-cmd data file
      trace-cmd: Place "trace.dat" into the macro DEFAULT_INPUT_FILE
      trace-cmd: Add installation of ld.conf.d file for library paths
      trace-cmd: Have libtracecmd.so include libtraceevent
      trace-cmd: Remove unused trace_util function declarations

----
 Makefile                       |  6 +++++-
 include/trace-cmd/trace-cmd.h  | 13 ++-----------
 lib/trace-cmd/Makefile         |  2 ++
 lib/trace-cmd/trace-input.c    |  2 +-
 scripts/utils.mk               | 12 +++++++++++-
 tracecmd/include/trace-local.h |  1 +
 tracecmd/trace-dump.c          |  6 ++----
 tracecmd/trace-hist.c          |  2 +-
 tracecmd/trace-mem.c           |  2 +-
 tracecmd/trace-read.c          |  2 +-
 tracecmd/trace-record.c        |  2 +-
 tracecmd/trace-restore.c       |  2 +-
 tracecmd/trace-split.c         |  2 +-
 13 files changed, 30 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] trace-cmd: Create TRACECMD_MAGIC macro for magic number of trace-cmd data file
  2020-01-22 17:12 [PATCH 0/5] trace-cmd: A few updates Steven Rostedt
@ 2020-01-22 17:12 ` Steven Rostedt
  2020-01-22 17:12 ` [PATCH 2/5] trace-cmd: Place "trace.dat" into the macro DEFAULT_INPUT_FILE Steven Rostedt
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:12 UTC (permalink / raw)
  To: linux-trace-devel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Instead of copying the magic number around different files, just declare a
macro for it in the exported trace-cmd header and use that.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 include/trace-cmd/trace-cmd.h | 2 ++
 lib/trace-cmd/trace-input.c   | 2 +-
 tracecmd/trace-dump.c         | 3 +--
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/trace-cmd/trace-cmd.h b/include/trace-cmd/trace-cmd.h
index ee8cdc75a9b2..1f5a98b3f7af 100644
--- a/include/trace-cmd/trace-cmd.h
+++ b/include/trace-cmd/trace-cmd.h
@@ -8,6 +8,8 @@
 
 #include "traceevent/event-parse.h"
 
+#define TRACECMD_MAGIC { 23, 8, 68 }
+
 #define ARRAY_SIZE(_a) (sizeof(_a) / sizeof((_a)[0]))
 #define __weak __attribute__((weak))
 #define __noreturn __attribute__((noreturn))
diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c
index 68da3a776d19..6d7f0feff3c0 100644
--- a/lib/trace-cmd/trace-input.c
+++ b/lib/trace-cmd/trace-input.c
@@ -2861,7 +2861,7 @@ struct hook_list *tracecmd_hooks(struct tracecmd_input *handle)
 struct tracecmd_input *tracecmd_alloc_fd(int fd)
 {
 	struct tracecmd_input *handle;
-	char test[] = { 23, 8, 68 };
+	char test[] = TRACECMD_MAGIC;
 	unsigned int page_size;
 	char *version;
 	char buf[BUFSIZ];
diff --git a/tracecmd/trace-dump.c b/tracecmd/trace-dump.c
index d95b34c12776..ed6705886e39 100644
--- a/tracecmd/trace-dump.c
+++ b/tracecmd/trace-dump.c
@@ -14,7 +14,6 @@
 #include "trace-local.h"
 
 #define DEF_INPUT_FILE	"trace.dat"
-#define MAGIC_HEAD	{ 0x17, 0x08, 0x44 }
 #define TRACING_STR	"tracing"
 #define HEAD_PAGE_STR	"header_page"
 #define HEAD_PAGE_EVENT	"header_event"
@@ -142,7 +141,7 @@ static int read_file_number(int fd, void *digit, int size)
 
 static void dump_initial_format(int fd)
 {
-	char magic[] = MAGIC_HEAD;
+	char magic[] = TRACECMD_MAGIC;
 	char buf[DUMP_SIZE];
 	int val4;
 
-- 
2.24.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/5] trace-cmd: Place "trace.dat" into the macro DEFAULT_INPUT_FILE
  2020-01-22 17:12 [PATCH 0/5] trace-cmd: A few updates Steven Rostedt
  2020-01-22 17:12 ` [PATCH 1/5] trace-cmd: Create TRACECMD_MAGIC macro for magic number of trace-cmd data file Steven Rostedt
@ 2020-01-22 17:12 ` Steven Rostedt
  2020-01-22 17:12 ` [PATCH 3/5] trace-cmd: Add installation of ld.conf.d file for library paths Steven Rostedt
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:12 UTC (permalink / raw)
  To: linux-trace-devel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

The trace-cmd commands default the input/output file as "trace.dat". Instead
of using the open coded string, make a macro to use instead.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 tracecmd/include/trace-local.h | 1 +
 tracecmd/trace-dump.c          | 3 +--
 tracecmd/trace-hist.c          | 2 +-
 tracecmd/trace-mem.c           | 2 +-
 tracecmd/trace-read.c          | 2 +-
 tracecmd/trace-record.c        | 2 +-
 tracecmd/trace-restore.c       | 2 +-
 tracecmd/trace-split.c         | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/tracecmd/include/trace-local.h b/tracecmd/include/trace-local.h
index 0658115c2a6a..44f1e62a779a 100644
--- a/tracecmd/include/trace-local.h
+++ b/tracecmd/include/trace-local.h
@@ -14,6 +14,7 @@
 
 #define TRACE_AGENT_DEFAULT_PORT	823
 
+#define DEFAUT_INPUT_FILE	"trace.dat"
 #define GUEST_PIPE_NAME		"trace-pipe-cpu"
 #define GUEST_DIR_FMT		"/var/lib/trace-cmd/virt/%s"
 #define GUEST_FIFO_FMT		GUEST_DIR_FMT "/" GUEST_PIPE_NAME "%d"
diff --git a/tracecmd/trace-dump.c b/tracecmd/trace-dump.c
index ed6705886e39..415e913872f1 100644
--- a/tracecmd/trace-dump.c
+++ b/tracecmd/trace-dump.c
@@ -13,7 +13,6 @@
 
 #include "trace-local.h"
 
-#define DEF_INPUT_FILE	"trace.dat"
 #define TRACING_STR	"tracing"
 #define HEAD_PAGE_STR	"header_page"
 #define HEAD_PAGE_EVENT	"header_event"
@@ -602,7 +601,7 @@ void trace_dump(int argc, char **argv)
 	}
 
 	if (!input_file)
-		input_file = DEF_INPUT_FILE;
+		input_file = DEFAUT_INPUT_FILE;
 
 	if (!verbosity && !validate)
 		verbosity = SUMMARY;
diff --git a/tracecmd/trace-hist.c b/tracecmd/trace-hist.c
index 384a7ff09306..c45182679b8f 100644
--- a/tracecmd/trace-hist.c
+++ b/tracecmd/trace-hist.c
@@ -1037,7 +1037,7 @@ void trace_hist(int argc, char **argv)
 	}
 
 	if (!input_file)
-		input_file = "trace.dat";
+		input_file = DEFAUT_INPUT_FILE;
 
 	handle = tracecmd_alloc(input_file);
 	if (!handle)
diff --git a/tracecmd/trace-mem.c b/tracecmd/trace-mem.c
index 078a61bc702a..37046fd8310b 100644
--- a/tracecmd/trace-mem.c
+++ b/tracecmd/trace-mem.c
@@ -548,7 +548,7 @@ void trace_mem(int argc, char **argv)
 	}
 
 	if (!input_file)
-		input_file = "trace.dat";
+		input_file = DEFAUT_INPUT_FILE;
 
 	handle = tracecmd_alloc(input_file);
 	if (!handle)
diff --git a/tracecmd/trace-read.c b/tracecmd/trace-read.c
index c0d640d3515b..8c2b2ae39f5e 100644
--- a/tracecmd/trace-read.c
+++ b/tracecmd/trace-read.c
@@ -74,7 +74,7 @@ struct pid_list *comm_list;
 
 static unsigned int page_size;
 static int input_fd;
-static const char *default_input_file = "trace.dat";
+static const char *default_input_file = DEFAUT_INPUT_FILE;
 static const char *input_file;
 static int multi_inputs;
 static int max_file_size;
diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
index 80b223414246..b0860bbf5a0a 100644
--- a/tracecmd/trace-record.c
+++ b/tracecmd/trace-record.c
@@ -68,7 +68,7 @@ static int rt_prio;
 
 static int keep;
 
-static const char *output_file = "trace.dat";
+static const char *output_file = DEFAUT_INPUT_FILE;
 
 static int latency;
 static int sleep_time = 1000;
diff --git a/tracecmd/trace-restore.c b/tracecmd/trace-restore.c
index b649cf4d2962..e3b86dd2085c 100644
--- a/tracecmd/trace-restore.c
+++ b/tracecmd/trace-restore.c
@@ -25,7 +25,7 @@
 void trace_restore (int argc, char **argv)
 {
 	struct tracecmd_output *handle;
-	const char *output_file = "trace.dat";
+	const char *output_file = DEFAUT_INPUT_FILE;
 	const char *output = NULL;
 	const char *input = NULL;
 	const char *tracing_dir = NULL;
diff --git a/tracecmd/trace-split.c b/tracecmd/trace-split.c
index 6c8a774e13d0..b4d0df32217c 100644
--- a/tracecmd/trace-split.c
+++ b/tracecmd/trace-split.c
@@ -23,7 +23,7 @@
 #include "trace-local.h"
 
 static unsigned int page_size;
-static const char *default_input_file = "trace.dat";
+static const char *default_input_file = DEFAUT_INPUT_FILE;
 static const char *input_file;
 
 enum split_types {
-- 
2.24.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/5] trace-cmd: Add installation of ld.conf.d file for library paths
  2020-01-22 17:12 [PATCH 0/5] trace-cmd: A few updates Steven Rostedt
  2020-01-22 17:12 ` [PATCH 1/5] trace-cmd: Create TRACECMD_MAGIC macro for magic number of trace-cmd data file Steven Rostedt
  2020-01-22 17:12 ` [PATCH 2/5] trace-cmd: Place "trace.dat" into the macro DEFAULT_INPUT_FILE Steven Rostedt
@ 2020-01-22 17:12 ` Steven Rostedt
  2020-01-22 17:22   ` Steven Rostedt
  2020-01-22 17:12 ` [PATCH 4/5] trace-cmd: Have libtracecmd.so include libtraceevent Steven Rostedt
  2020-01-22 17:12 ` [PATCH 5/5] trace-cmd: Remove unused trace_util function declarations Steven Rostedt
  4 siblings, 1 reply; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:12 UTC (permalink / raw)
  To: linux-trace-devel; +Cc: Sudip Mukherjee

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

As just installing the shared libraries is not enough to have them accessed
by the applications, ldconfig needs to also be run. To find the location of
the libraries, their paths need to be added to ld.conf.d directory
configuration file.

Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 Makefile         | 4 ++++
 scripts/utils.mk | 8 ++++++++
 2 files changed, 12 insertions(+)

diff --git a/Makefile b/Makefile
index efd9ed4b296e..c22aa7847b51 100644
--- a/Makefile
+++ b/Makefile
@@ -88,6 +88,8 @@ HELP_DIR_SQ = '$(subst ','\'',$(HELP_DIR))'
 #' emacs highlighting gets confused by the above escaped quote.
 
 BASH_COMPLETE_DIR ?= /etc/bash_completion.d
+LD_SO_CONF_DIR ?= /etc/ld.so.conf.d
+TRACE_LD_FILE ?= trace.conf
 
 export PLUGIN_DIR_TRACEEVENT
 export PLUGIN_DIR_TRACECMD
@@ -380,6 +382,8 @@ install_libs: libs
 	$(Q)$(call do_install,$(src)/include/traceevent/trace-seq.h,$(includedir_SQ)/traceevent)
 	$(Q)$(call do_install,$(src)/include/trace-cmd/trace-cmd.h,$(includedir_SQ)/trace-cmd)
 	$(Q)$(call do_install,$(src)/include/trace-cmd/trace-filter-hash.h,$(includedir_SQ)/trace-cmd)
+	$(Q)$(call do_install_ld,$(TRACE_LD_FILE),$(LD_SO_CONF_DIR),$(libdir_SQ)/trace-cmd)
+	$(Q)$(call do_install_ld,$(TRACE_LD_FILE),$(LD_SO_CONF_DIR),$(libdir_SQ)/traceevent)
 
 doc:
 	$(MAKE) -C $(src)/Documentation all
diff --git a/scripts/utils.mk b/scripts/utils.mk
index d1d5135063fc..4da8829159a0 100644
--- a/scripts/utils.mk
+++ b/scripts/utils.mk
@@ -133,3 +133,11 @@ define do_install_data
 	fi;						\
 	$(INSTALL) -m 644 $1 '$(DESTDIR_SQ)$2'
 endef
+
+define do_install_ld
+	$(print_install)				\
+	if [ -d '$(DESTDIR_SQ)$2' ]; then		\
+		echo '$3' >> $(DESTDIR_SQ)$2/$1;	\
+		ldconfig;				\
+	fi
+endef
-- 
2.24.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/5] trace-cmd: Have libtracecmd.so include libtraceevent
  2020-01-22 17:12 [PATCH 0/5] trace-cmd: A few updates Steven Rostedt
                   ` (2 preceding siblings ...)
  2020-01-22 17:12 ` [PATCH 3/5] trace-cmd: Add installation of ld.conf.d file for library paths Steven Rostedt
@ 2020-01-22 17:12 ` Steven Rostedt
  2020-01-22 17:12 ` [PATCH 5/5] trace-cmd: Remove unused trace_util function declarations Steven Rostedt
  4 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:12 UTC (permalink / raw)
  To: linux-trace-devel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Was getting errors with loading libtracecmd.so with undefined symbols
from libtraceevent. Add it to the build process to include what it uses
as well.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 Makefile               |  2 +-
 lib/trace-cmd/Makefile |  2 ++
 scripts/utils.mk       | 12 +++++++-----
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index c22aa7847b51..9c74268eddd5 100644
--- a/Makefile
+++ b/Makefile
@@ -301,7 +301,7 @@ $(LIBTRACEEVENT_STATIC): force $(obj)/lib/traceevent/plugins/trace_python_dir \
 $(LIBTRACECMD_STATIC): force
 	$(Q)$(MAKE) -C $(src)/lib/trace-cmd $@
 
-$(LIBTRACECMD_SHARED): force
+$(LIBTRACECMD_SHARED): force $(LIBTRACEEVENT_SHARED)
 	$(Q)$(MAKE) -C $(src)/lib/trace-cmd $@
 
 libtraceevent.so: $(LIBTRACEEVENT_SHARED)
diff --git a/lib/trace-cmd/Makefile b/lib/trace-cmd/Makefile
index 6f3e6b1bf935..29c36ca195d0 100644
--- a/lib/trace-cmd/Makefile
+++ b/lib/trace-cmd/Makefile
@@ -35,6 +35,8 @@ $(DEPS): | $(bdir)
 $(bdir)/libtracecmd.a: $(OBJS)
 	$(Q)$(call do_build_static_lib)
 
+LIBS = -L$(obj)/lib/traceevent -ltraceevent
+
 $(bdir)/libtracecmd.so: $(OBJS)
 	$(Q)$(call do_compile_shared_library)
 
diff --git a/scripts/utils.mk b/scripts/utils.mk
index 4da8829159a0..28dcd7b44061 100644
--- a/scripts/utils.mk
+++ b/scripts/utils.mk
@@ -61,7 +61,7 @@ do_build_static_lib =				\
 
 do_compile_shared_library =			\
 	($(print_shared_lib_compile)		\
-	$(CC) --shared $^ -Wl,-soname,$(@F) -o $@)
+	$(CC) --shared $^ $(LIBS) -Wl,-soname,$(@F) -o $@)
 
 do_compile_plugin_obj =				\
 	($(print_plugin_obj_compile)		\
@@ -135,9 +135,11 @@ define do_install_data
 endef
 
 define do_install_ld
-	$(print_install)				\
-	if [ -d '$(DESTDIR_SQ)$2' ]; then		\
-		echo '$3' >> $(DESTDIR_SQ)$2/$1;	\
-		ldconfig;				\
+	$(print_install)						\
+	if [ -d '$(DESTDIR_SQ)$2' ]; then				\
+		if ! grep -q $3 $(DESTDIR_SQ)$2/$1 2>/dev/null; then	\
+			echo '$3' >> $(DESTDIR_SQ)$2/$1;		\
+			ldconfig;					\
+		fi							\
 	fi
 endef
-- 
2.24.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/5] trace-cmd: Remove unused trace_util function declarations
  2020-01-22 17:12 [PATCH 0/5] trace-cmd: A few updates Steven Rostedt
                   ` (3 preceding siblings ...)
  2020-01-22 17:12 ` [PATCH 4/5] trace-cmd: Have libtracecmd.so include libtraceevent Steven Rostedt
@ 2020-01-22 17:12 ` Steven Rostedt
  4 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:12 UTC (permalink / raw)
  To: linux-trace-devel; +Cc: Johannes Berg

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Due to conflict resolutions, pulling in a patch to add VM tracing protocol
messages also accidentally pulled in old declarations that were previously
deleted. This caused ctracecmd.so python helper to reference them and fail
to load python modules because of their absence.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Fixes: 8790da96c26d ("trace-cmd: Add VM tracing protocol messages")
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 include/trace-cmd/trace-cmd.h | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/include/trace-cmd/trace-cmd.h b/include/trace-cmd/trace-cmd.h
index 1f5a98b3f7af..35e2a32c5e30 100644
--- a/include/trace-cmd/trace-cmd.h
+++ b/include/trace-cmd/trace-cmd.h
@@ -398,17 +398,6 @@ int tracecmd_msg_recv_trace_resp(struct tracecmd_msg_handle *msg_handle,
 /* --- Plugin handling --- */
 extern struct tep_plugin_option trace_ftrace_options[];
 
-int trace_util_add_options(const char *name, struct tep_plugin_option *options);
-void trace_util_remove_options(struct tep_plugin_option *options);
-int trace_util_add_option(const char *name, const char *val);
-int trace_util_load_plugins(struct tep_handle *pevent, const char *suffix,
-			    int (*load_plugin)(struct tep_handle *pevent,
-					       const char *path,
-					       const char *name,
-					       void *data),
-			    void *data);
-struct tep_plugin_option *trace_util_read_plugin_options(void);
-void trace_util_free_options(struct tep_plugin_option *options);
 char **trace_util_find_plugin_files(const char *suffix);
 void trace_util_free_plugin_files(char **files);
 
-- 
2.24.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/5] trace-cmd: Add installation of ld.conf.d file for library paths
  2020-01-22 17:12 ` [PATCH 3/5] trace-cmd: Add installation of ld.conf.d file for library paths Steven Rostedt
@ 2020-01-22 17:22   ` Steven Rostedt
  0 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-01-22 17:22 UTC (permalink / raw)
  To: linux-trace-devel; +Cc: Sudip Mukherjee

On Wed, 22 Jan 2020 12:12:53 -0500
Steven Rostedt <rostedt@goodmis.org> wrote:

> diff --git a/scripts/utils.mk b/scripts/utils.mk
> index d1d5135063fc..4da8829159a0 100644
> --- a/scripts/utils.mk
> +++ b/scripts/utils.mk
> @@ -133,3 +133,11 @@ define do_install_data
>  	fi;						\
>  	$(INSTALL) -m 644 $1 '$(DESTDIR_SQ)$2'
>  endef
> +
> +define do_install_ld
> +	$(print_install)				\

Hmm, the print should only happen inside the if.

> +	if [ -d '$(DESTDIR_SQ)$2' ]; then		\

Bah, I fixed this if statement but applied it to another commit.

Will post a v2.

-- Steve

> +		echo '$3' >> $(DESTDIR_SQ)$2/$1;	\
> +		ldconfig;				\
> +	fi
> +endef


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-01-22 17:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-22 17:12 [PATCH 0/5] trace-cmd: A few updates Steven Rostedt
2020-01-22 17:12 ` [PATCH 1/5] trace-cmd: Create TRACECMD_MAGIC macro for magic number of trace-cmd data file Steven Rostedt
2020-01-22 17:12 ` [PATCH 2/5] trace-cmd: Place "trace.dat" into the macro DEFAULT_INPUT_FILE Steven Rostedt
2020-01-22 17:12 ` [PATCH 3/5] trace-cmd: Add installation of ld.conf.d file for library paths Steven Rostedt
2020-01-22 17:22   ` Steven Rostedt
2020-01-22 17:12 ` [PATCH 4/5] trace-cmd: Have libtracecmd.so include libtraceevent Steven Rostedt
2020-01-22 17:12 ` [PATCH 5/5] trace-cmd: Remove unused trace_util function declarations Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).