[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 2/6] hypertrace: Add tracing event "guest_hypertr
From: |
Lluís Vilanova |
Subject: |
[Qemu-devel] [PATCH v2 2/6] hypertrace: Add tracing event "guest_hypertrace" |
Date: |
Mon, 5 Sep 2016 20:56:33 +0200 |
User-agent: |
StGit/0.17.1-dirty |
Generates the "guest_hypertrace" event with a user-configurable number
of arguments.
Signed-off-by: Lluís Vilanova <address@hidden>
---
Makefile.objs | 2 ++
configure | 34 ++++++++++++++++++++++++++++++++++
trace/Makefile.objs | 2 +-
3 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/Makefile.objs b/Makefile.objs
index 6d5ddcf..3db04b9 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -159,3 +159,5 @@ trace-events-y += target-s390x/trace-events
trace-events-y += target-ppc/trace-events
trace-events-y += qom/trace-events
trace-events-y += linux-user/trace-events
+
+trace-events-gen-y = hypertrace/trace-events
diff --git a/configure b/configure
index 4b808f9..d7ec31f 100755
--- a/configure
+++ b/configure
@@ -273,6 +273,7 @@ pie=""
qom_cast_debug="yes"
trace_backends="log"
trace_file="trace"
+hypertrace="1"
spice=""
rbd=""
smartcard=""
@@ -782,6 +783,8 @@ for opt do
;;
--with-trace-file=*) trace_file="$optarg"
;;
+ --with-hypertrace-args=*) hypertrace="$optarg"
+ ;;
--enable-gprof) gprof="yes"
;;
--enable-gcov) gcov="yes"
@@ -1300,6 +1303,8 @@ Advanced options (experts only):
Available backends: $($python
$source_path/scripts/tracetool.py --list-backends)
--with-trace-file=NAME Full PATH,NAME of file to store traces
Default:trace-<pid>
+ --with-hypertrace-args=NUMBER
+ number of hypertrace arguments (default:
$hypertrace)
--disable-slirp disable SLIRP userspace network connectivity
--enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)
--oss-lib path to OSS library
@@ -4201,6 +4206,16 @@ if test "$?" -ne 0 ; then
fi
##########################################
+# check hypertrace arguments
+case "$hypertrace" in
+ ''|*[!0-9]*) error_exit "invalid number of hypertrace arguments" ;;
+ *) ;;
+esac
+if test $hypertrace = 0; then
+ error_exit "hypertrace arguments must be greater than zero"
+fi
+
+##########################################
# For 'ust' backend, test if ust headers are present
if have_backend "ust"; then
cat > $TMPC << EOF
@@ -4875,6 +4890,7 @@ echo "Trace backends $trace_backends"
if have_backend "simple"; then
echo "Trace output file $trace_file-<pid>"
fi
+echo "Hypertrace arguments $hypertrace"
echo "spice support $spice $(echo_version $spice
$spice_protocol_version/$spice_server_version)"
echo "rbd support $rbd"
echo "xfsctl support $xfs"
@@ -5503,6 +5519,24 @@ else
fi
QEMU_INCLUDES="-I\$(SRC_PATH)/tcg $QEMU_INCLUDES"
+# hypertrace
+echo "CONFIG_HYPERTRACE_ARGS=$hypertrace" >> $config_host_mak
+hypertrace_events=hypertrace/trace-events
+mkdir -p $(dirname $hypertrace_events)
+echo "# See docs/trace-events.txt for syntax documentation."
>$hypertrace_events
+echo -n 'vcpu guest_hypertrace(' >>$hypertrace_events
+for i in `seq $hypertrace`; do
+ if test $i != 1; then
+ echo -n ", " >>$hypertrace_events
+ fi
+ echo -n "uint64_t arg$i" >>$hypertrace_events
+done
+echo -n ') ' >>$hypertrace_events
+for i in `seq $hypertrace`; do
+ echo -n "\" arg$i=0x%016\"PRIx64" >>$hypertrace_events
+done
+echo >>$hypertrace_events
+
echo "TOOLS=$tools" >> $config_host_mak
echo "ROMS=$roms" >> $config_host_mak
echo "MAKE=$make" >> $config_host_mak
diff --git a/trace/Makefile.objs b/trace/Makefile.objs
index 4d91b3b..b71ec54 100644
--- a/trace/Makefile.objs
+++ b/trace/Makefile.objs
@@ -8,7 +8,7 @@
tracetool-y = $(SRC_PATH)/scripts/tracetool.py
tracetool-y += $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py")
-$(BUILD_DIR)/trace-events-all: $(trace-events-y:%=$(SRC_PATH)/%)
+$(BUILD_DIR)/trace-events-all: $(trace-events-y:%=$(SRC_PATH)/%)
$(trace-events-gen-y:%=$(BUILD_DIR)/%)
$(call quiet-command,cat $^ > $@)
######################################################################
- [Qemu-devel] [PATCH v2 0/6] hypertrace: Lightweight guest-to-QEMU trace channel, Lluís Vilanova, 2016/09/05
- [Qemu-devel] [PATCH v2 2/6] hypertrace: Add tracing event "guest_hypertrace",
Lluís Vilanova <=
- [Qemu-devel] [PATCH v2 1/6] hypertrace: Add documentation, Lluís Vilanova, 2016/09/05
- [Qemu-devel] [PATCH v2 4/6] hypertrace: [softmmu] Add QEMU-side proxy to "guest_hypertrace" event, Lluís Vilanova, 2016/09/05
- [Qemu-devel] [PATCH v2 3/6] hypertrace: [*-user] Add QEMU-side proxy to "guest_hypertrace" event, Lluís Vilanova, 2016/09/05
- [Qemu-devel] [PATCH v2 5/6] hypertrace: Add guest-side user-level library, Lluís Vilanova, 2016/09/05
- [Qemu-devel] [PATCH v2 6/6] hypertrace: Add guest-side Linux module, Lluís Vilanova, 2016/09/05
- Re: [Qemu-devel] [PATCH v2 0/6] hypertrace: Lightweight guest-to-QEMU trace channel, no-reply, 2016/09/05