|
|
958e1b |
From 13f5df42cd4ccb6d199305b1c82bdd6d39403ae8 Mon Sep 17 00:00:00 2001
|
|
|
958e1b |
From: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
958e1b |
Date: Tue, 7 Oct 2014 14:06:56 +0200
|
|
|
958e1b |
Subject: [PATCH 38/43] trace: install simpletrace SystemTap tapset
|
|
|
958e1b |
|
|
|
958e1b |
Message-id: <1412690820-31016-8-git-send-email-stefanha@redhat.com>
|
|
|
958e1b |
Patchwork-id: 61612
|
|
|
958e1b |
O-Subject: [RHEL7.1 qemu-kvm PATCH 07/11] trace: install simpletrace SystemTap tapset
|
|
|
958e1b |
Bugzilla: 1088112
|
|
|
958e1b |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
958e1b |
|
|
|
958e1b |
The simpletrace SystemTap tapset outputs simpletrace binary traces for
|
|
|
958e1b |
SystemTap probes. This is useful because SystemTap has no default way
|
|
|
958e1b |
to format or store traces. The simpletrace SystemTap tapset provides an
|
|
|
958e1b |
easy way to store traces.
|
|
|
958e1b |
|
|
|
958e1b |
The simpletrace.py tool or custom Python scripts using the
|
|
|
958e1b |
simpletrace.py API can analyze SystemTap these traces:
|
|
|
958e1b |
|
|
|
958e1b |
$ ./configure --enable-trace-backends=dtrace ...
|
|
|
958e1b |
$ make && make install
|
|
|
958e1b |
$ stap -e 'probe qemu.system.x86_64.simpletrace.* {}' \
|
|
|
958e1b |
-c qemu-system-x86_64 >/tmp/trace.out
|
|
|
958e1b |
$ scripts/simpletrace.py --no-header trace-events /tmp/trace.out
|
|
|
958e1b |
g_malloc 4.531 pid=15519 size=0xb ptr=0x7f8639c10470
|
|
|
958e1b |
g_malloc 3.264 pid=15519 size=0x300 ptr=0x7f8639c10490
|
|
|
958e1b |
g_free 5.155 pid=15519 ptr=0x7f8639c0f7b0
|
|
|
958e1b |
|
|
|
958e1b |
Note that, unlike qemu-system-x86_64.stp and
|
|
|
958e1b |
qemu-system-x86_64.stp-installed, only one file is needed since the
|
|
|
958e1b |
simpletrace SystemTap tapset does not reference the QEMU binary by path.
|
|
|
958e1b |
Therefore it doesn't matter whether the QEMU binary is installed or not.
|
|
|
958e1b |
|
|
|
958e1b |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
958e1b |
(cherry picked from commit e0b2fd0efb4d282bc6fa0ed5397f472298a66ca2)
|
|
|
958e1b |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
958e1b |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
958e1b |
|
|
|
958e1b |
Conflicts:
|
|
|
958e1b |
Makefile.target
|
|
|
958e1b |
|
|
|
958e1b |
Downstream does not have .stp-installed, which was added upstream to
|
|
|
958e1b |
differentiate between .stp files that can be used in the build tree and
|
|
|
958e1b |
.stp files that can be used after make install. Context conflict.
|
|
|
958e1b |
|
|
|
958e1b |
Also note that downstream uses --backend=$(TRACE_BACKEND) instead of
|
|
|
958e1b |
--backends=$(TRACE_BACKENDS).
|
|
|
958e1b |
|
|
|
958e1b |
Downstream needs to install the qemu-kvm-simpletrace.stp file right away
|
|
|
958e1b |
to avoid rpm check "unpackaged file" errors, so modify
|
|
|
958e1b |
qemu-kvm.spec.template.
|
|
|
958e1b |
---
|
|
|
958e1b |
Makefile.target | 11 ++++++++++-
|
|
|
958e1b |
redhat/qemu-kvm.spec.template | 10 +++++++++-
|
|
|
958e1b |
2 files changed, 19 insertions(+), 2 deletions(-)
|
|
|
958e1b |
|
|
|
958e1b |
diff --git a/Makefile.target b/Makefile.target
|
|
|
958e1b |
index b871dda..ca407d7 100644
|
|
|
958e1b |
--- a/Makefile.target
|
|
|
958e1b |
+++ b/Makefile.target
|
|
|
958e1b |
@@ -35,7 +35,7 @@ config-target.h: config-target.h-timestamp
|
|
|
958e1b |
config-target.h-timestamp: config-target.mak
|
|
|
958e1b |
|
|
|
958e1b |
ifdef CONFIG_TRACE_SYSTEMTAP
|
|
|
958e1b |
-stap: $(QEMU_PROG).stp
|
|
|
958e1b |
+stap: $(QEMU_PROG).stp $(QEMU_PROG)-simpletrace.stp
|
|
|
958e1b |
|
|
|
958e1b |
ifdef CONFIG_USER_ONLY
|
|
|
958e1b |
TARGET_TYPE=user
|
|
|
958e1b |
@@ -51,6 +51,14 @@ $(QEMU_PROG).stp: $(SRC_PATH)/trace-events
|
|
|
958e1b |
--target-arch=$(TARGET_ARCH) \
|
|
|
958e1b |
--target-type=$(TARGET_TYPE) \
|
|
|
958e1b |
< $< > $@," GEN $(TARGET_DIR)$(QEMU_PROG).stp")
|
|
|
958e1b |
+
|
|
|
958e1b |
+$(QEMU_PROG)-simpletrace.stp: $(SRC_PATH)/trace-events
|
|
|
958e1b |
+ $(call quiet-command,$(TRACETOOL) \
|
|
|
958e1b |
+ --format=simpletrace-stap \
|
|
|
958e1b |
+ --backend=$(TRACE_BACKEND) \
|
|
|
958e1b |
+ --probe-prefix=qemu.$(TARGET_TYPE).$(TARGET_ARCH) \
|
|
|
958e1b |
+ < $< > $@," GEN $(TARGET_DIR)$(QEMU_PROG)-simpletrace.stp")
|
|
|
958e1b |
+
|
|
|
958e1b |
else
|
|
|
958e1b |
stap:
|
|
|
958e1b |
endif
|
|
|
958e1b |
@@ -194,6 +202,7 @@ endif
|
|
|
958e1b |
ifdef CONFIG_TRACE_SYSTEMTAP
|
|
|
958e1b |
$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset"
|
|
|
958e1b |
$(INSTALL_DATA) $(QEMU_PROG).stp "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset"
|
|
|
958e1b |
+ $(INSTALL_DATA) $(QEMU_PROG)-simpletrace.stp "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset/$(QEMU_PROG)-simpletrace.stp"
|
|
|
958e1b |
endif
|
|
|
958e1b |
|
|
|
958e1b |
GENERATED_HEADERS += config-target.h
|
|
|
958e1b |
--
|
|
|
958e1b |
1.8.3.1
|
|
|
958e1b |
|