diff mbox

[03/22] trace: Let the user specify her own trace-events file

Message ID 20130326140038.4471.7014.stgit@fimbulvetr.bsc.es
State New
Headers show

Commit Message

Lluís Vilanova March 26, 2013, 2 p.m. UTC
With this option the user can perform multiple builds of QEMU with different
tracing event properties.

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 Makefile.target     |    2 +-
 configure           |   19 +++++++++++++++++++
 trace/Makefile.objs |   10 +++++-----
 3 files changed, 25 insertions(+), 6 deletions(-)
diff mbox

Patch

diff --git a/Makefile.target b/Makefile.target
index ca657b3..310471b 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -47,7 +47,7 @@  else
 TARGET_TYPE=system
 endif
 
-$(QEMU_PROG).stp: $(SRC_PATH)/trace-events
+$(QEMU_PROG).stp: $(TRACE_EVENTS)
 	$(call quiet-command,$(TRACETOOL) \
 		--format=stap \
 		--backend=$(TRACE_BACKEND) \
diff --git a/configure b/configure
index 19738ac..a75af67 100755
--- a/configure
+++ b/configure
@@ -211,6 +211,7 @@  blobs="yes"
 pkgversion=""
 pie=""
 zero_malloc=""
+trace_events=`dirname $0`/trace-events
 trace_backend="nop"
 trace_file="trace"
 spice=""
@@ -624,6 +625,8 @@  for opt do
   ;;
   --target-list=*) target_list="$optarg"
   ;;
+  --with-trace-events=*) trace_events="$optarg"
+  ;;
   --enable-trace-backend=*) trace_backend="$optarg"
   ;;
   --with-trace-file=*) trace_file="$optarg"
@@ -1133,6 +1136,7 @@  echo "  --enable-docs            enable documentation build"
 echo "  --disable-docs           disable documentation build"
 echo "  --disable-vhost-net      disable vhost-net acceleration support"
 echo "  --enable-vhost-net       enable vhost-net acceleration support"
+echo "  --with-trace-events=PATH file with tracing events description (default: $trace_events)"
 echo "  --enable-trace-backend=B Set trace backend"
 echo "                           Available backends:" $($python "$source_path"/scripts/tracetool.py --list-backends)
 echo "  --with-trace-file=NAME   Full PATH,NAME of file to store traces"
@@ -2998,6 +3002,18 @@  if compile_prog "" "" ; then
 fi
 
 ##########################################
+# check if trace-events file exists
+
+if test ! -f "$trace_events"; then
+    echo
+    echo "Error: the given trace-events file does not exist"
+    echo
+    exit 1
+else
+    trace_events=`readlink -f "$trace_events"`
+fi
+
+##########################################
 # check if trace backend exists
 
 $python "$source_path/scripts/tracetool.py" "--backend=$trace_backend" --check-backend  > /dev/null 2> /dev/null
@@ -3393,6 +3409,7 @@  echo "sigev_thread_id   $sigev_thread_id"
 echo "uuid support      $uuid"
 echo "libcap-ng support $cap_ng"
 echo "vhost-net support $vhost_net"
+echo "Trace events      $trace_events"
 echo "Trace backend     $trace_backend"
 echo "Trace output file $trace_file-<pid>"
 echo "spice support     $spice ($spice_protocol_version/$spice_server_version)"
@@ -3788,6 +3805,8 @@  bsd)
 ;;
 esac
 
+echo "TRACE_EVENTS=$trace_events" >> $config_host_mak
+
 # use default implementation for tracing backend-specific routines
 trace_default=yes
 echo "TRACE_BACKEND=$trace_backend" >> $config_host_mak
diff --git a/trace/Makefile.objs b/trace/Makefile.objs
index 156aa25..db573f4 100644
--- a/trace/Makefile.objs
+++ b/trace/Makefile.objs
@@ -4,7 +4,7 @@ 
 # Auto-generated event descriptions
 
 $(obj)/generated-events.h: $(obj)/generated-events.h-timestamp
-$(obj)/generated-events.h-timestamp: $(SRC_PATH)/trace-events
+$(obj)/generated-events.h-timestamp: $(TRACE_EVENTS)
 	$(call quiet-command,$(TRACETOOL) \
 		--format=events-h \
 		--backend=events \
@@ -12,7 +12,7 @@  $(obj)/generated-events.h-timestamp: $(SRC_PATH)/trace-events
 	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)
 
 $(obj)/generated-events.c: $(obj)/generated-events.c-timestamp
-$(obj)/generated-events.c-timestamp: $(SRC_PATH)/trace-events
+$(obj)/generated-events.c-timestamp: $(TRACE_EVENTS)
 	$(call quiet-command,$(TRACETOOL) \
 		--format=events-c \
 		--backend=events \
@@ -27,7 +27,7 @@  util-obj-y += generated-events.o
 
 $(obj)/generated-tracers.h: $(obj)/generated-tracers.h-timestamp
 	@cmp -s $< $@ || cp $< $@
-$(obj)/generated-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
+$(obj)/generated-tracers.h-timestamp: $(TRACE_EVENTS) $(BUILD_DIR)/config-host.mak
 	$(call quiet-command,$(TRACETOOL) \
 		--format=h \
 		--backend=$(TRACE_BACKEND) \
@@ -39,7 +39,7 @@  $(obj)/generated-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/conf
 ifneq ($(TRACE_BACKEND),dtrace)
 $(obj)/generated-tracers.c: $(obj)/generated-tracers.c-timestamp
 	@cmp -s $< $@ || cp $< $@
-$(obj)/generated-tracers.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
+$(obj)/generated-tracers.c-timestamp: $(TRACE_EVENTS) $(BUILD_DIR)/config-host.mak
 	$(call quiet-command,$(TRACETOOL) \
 		--format=c \
 		--backend=$(TRACE_BACKEND) \
@@ -57,7 +57,7 @@  endif
 # rule file. So we use '.dtrace' instead
 ifeq ($(TRACE_BACKEND),dtrace)
 $(obj)/generated-tracers.dtrace: $(obj)/generated-tracers.dtrace-timestamp
-$(obj)/generated-tracers.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
+$(obj)/generated-tracers.dtrace-timestamp: $(TRACE_EVENTS) $(BUILD_DIR)/config-host.mak
 	$(call quiet-command,$(TRACETOOL) \
 		--format=d \
 		--backend=$(TRACE_BACKEND) \