From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49958) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bViTD-0008VM-K7 for qemu-devel@nongnu.org; Fri, 05 Aug 2016 12:59:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bViTB-000301-0z for qemu-devel@nongnu.org; Fri, 05 Aug 2016 12:59:38 -0400 Received: from roura.ac.upc.edu ([147.83.33.10]:52924 helo=roura.ac.upc.es) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bViTA-0002zT-M0 for qemu-devel@nongnu.org; Fri, 05 Aug 2016 12:59:36 -0400 From: =?utf-8?b?TGx1w61z?= Vilanova Date: Fri, 5 Aug 2016 18:59:34 +0200 Message-Id: <147041637432.2523.7105228834091669652.stgit@fimbulvetr.bsc.es> In-Reply-To: <147041636348.2523.2954972609232949598.stgit@fimbulvetr.bsc.es> References: <147041636348.2523.2954972609232949598.stgit@fimbulvetr.bsc.es> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 2/6] hypertrace: Add tracing event "guest_hypertrace" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi Generates the "guest_hypertrace" event with a user-configurable number of arguments. Signed-off-by: Llu=C3=ADs Vilanova --- Makefile.objs | 2 ++ configure | 36 ++++++++++++++++++++++++++++++++++++ trace/Makefile.objs | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/Makefile.objs b/Makefile.objs index 7f1f0a3..1c1b03c 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -158,3 +158,5 @@ trace-events-y +=3D target-s390x/trace-events trace-events-y +=3D target-ppc/trace-events trace-events-y +=3D qom/trace-events trace-events-y +=3D linux-user/trace-events + +trace-events-gen-y =3D hypertrace/trace-events diff --git a/configure b/configure index 5ada56d..e80fde4 100755 --- a/configure +++ b/configure @@ -273,6 +273,7 @@ pie=3D"" qom_cast_debug=3D"yes" trace_backends=3D"log" trace_file=3D"trace" +hypertrace=3D"disabled" spice=3D"" rbd=3D"" smartcard=3D"" @@ -782,6 +783,8 @@ for opt do ;; --with-trace-file=3D*) trace_file=3D"$optarg" ;; + --with-hypertrace-args=3D*) hypertrace=3D"$optarg" + ;; --enable-gprof) gprof=3D"yes" ;; --enable-gcov) gcov=3D"yes" @@ -1300,6 +1303,8 @@ Advanced options (experts only): Available backends: $($python $source_path/sc= ripts/tracetool.py --list-backends) --with-trace-file=3DNAME Full PATH,NAME of file to store traces Default:trace- + --with-hypertrace-args=3DNUMBER + number of hypertrace arguments (default: disa= bled) --disable-slirp disable SLIRP userspace network connectivity --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI) --oss-lib path to OSS library @@ -4197,6 +4202,14 @@ if test "$?" -ne 0 ; then fi =20 ########################################## +# check hypertrace arguments +case "$hypertrace" in + disabled) ;; + ''|*[!0-9]*) error_exit "invalid number of hypertrace arguments" ;; + *) ;; +esac + +########################################## # For 'ust' backend, test if ust headers are present if have_backend "ust"; then cat > $TMPC << EOF @@ -4862,6 +4875,7 @@ echo "Trace backends $trace_backends" if have_backend "simple"; then echo "Trace output file $trace_file-" fi +echo "Hypertrace arguments $hypertrace" echo "spice support $spice $(echo_version $spice $spice_protocol_ver= sion/$spice_server_version)" echo "rbd support $rbd" echo "xfsctl support $xfs" @@ -5490,6 +5504,28 @@ else fi QEMU_INCLUDES=3D"-I\$(SRC_PATH)/tcg $QEMU_INCLUDES" =20 +# hypertrace +hyperargs=3D$hypertrace +if test $hypertrace =3D "disabled"; then + hyperargs=3D0 +fi +echo "CONFIG_HYPERTRACE_ARGS=3D$hyperargs" >> $config_host_mak +hypertrace_events=3Dhypertrace/trace-events +mkdir -p $(dirname $hypertrace_events) +echo "# See docs/trace-events.txt for syntax documentation." >$hypertrac= e_events +echo -n 'vcpu guest_hypertrace(' >>$hypertrace_events +for i in `seq $hypertrace`; do + if test $i !=3D 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=3D0x%016\"PRIx64" >>$hypertrace_events +done +echo >>$hypertrace_events + echo "TOOLS=3D$tools" >> $config_host_mak echo "ROMS=3D$roms" >> $config_host_mak echo "MAKE=3D$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 =3D $(SRC_PATH)/scripts/tracetool.py tracetool-y +=3D $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py"= ) =20 -$(BUILD_DIR)/trace-events-all: $(trace-events-y:%=3D$(SRC_PATH)/%) +$(BUILD_DIR)/trace-events-all: $(trace-events-y:%=3D$(SRC_PATH)/%) $(tra= ce-events-gen-y:%=3D$(BUILD_DIR)/%) $(call quiet-command,cat $^ > $@) =20 ######################################################################