[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 01/13] qemu-trace-stap: changing SYSTEMTAP_TAPSET considered h
From: |
Gerd Hoffmann |
Subject: |
[PATCH v4 01/13] qemu-trace-stap: changing SYSTEMTAP_TAPSET considered harmful. |
Date: |
Tue, 1 Jun 2021 15:24:02 +0200 |
Setting SYSTEMTAP_TAPSET to some value other than
/usr/share/systemtap/tapsets results in systemtap not finding the
standard tapset library any more, which in turn breaks tracing because
pid() and other standard systemtap functions are not available any more.
So using SYSTEMTAP_TAPSET to point systemtap to the qemu probes will
only work for the prefix=/usr installs because both qemu and system
tapsets in the same directory then. All other prefixes are broken.
Fix that by using the "-I $tapsetdir" command line switch instead.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
scripts/qemu-trace-stap | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/scripts/qemu-trace-stap b/scripts/qemu-trace-stap
index 90527eb974f4..eb6e951ff235 100755
--- a/scripts/qemu-trace-stap
+++ b/scripts/qemu-trace-stap
@@ -55,11 +55,6 @@ def tapset_dir(binary):
return os.path.realpath(tapset)
-def tapset_env(tapset_dir):
- tenv = copy.copy(os.environ)
- tenv["SYSTEMTAP_TAPSET"] = tapset_dir
- return tenv
-
def cmd_run(args):
prefix = probe_prefix(args.binary)
tapsets = tapset_dir(args.binary)
@@ -81,11 +76,11 @@ def cmd_run(args):
# We request an 8MB buffer, since the stap default 1MB buffer
# can be easily overflowed by frequently firing QEMU traces
- stapargs = ["stap", "-s", "8"]
+ stapargs = ["stap", "-s", "8", "-I", tapsets ]
if args.pid is not None:
stapargs.extend(["-x", args.pid])
stapargs.extend(["-e", script])
- subprocess.call(stapargs, env=tapset_env(tapsets))
+ subprocess.call(stapargs)
def cmd_list(args):
@@ -101,10 +96,9 @@ def cmd_list(args):
if verbose:
print("Listing probes with name '%s'" % script)
- proc = subprocess.Popen(["stap", "-l", script],
+ proc = subprocess.Popen(["stap", "-I", tapsets, "-l", script],
stdout=subprocess.PIPE,
- universal_newlines=True,
- env=tapset_env(tapsets))
+ universal_newlines=True)
out, err = proc.communicate()
if proc.returncode != 0:
print("No probes found, are the tapsets installed in %s" %
tapset_dir(args.binary))
--
2.31.1
- [PATCH v4 00/13] [RfC] fix tracing for modules, Gerd Hoffmann, 2021/06/01
- [PATCH v4 01/13] qemu-trace-stap: changing SYSTEMTAP_TAPSET considered harmful.,
Gerd Hoffmann <=
- [PATCH v4 03/13] trace: add trace_event_iter_init_group, Gerd Hoffmann, 2021/06/01
- [PATCH v4 02/13] trace: iter init tweaks, Gerd Hoffmann, 2021/06/01
- [PATCH v4 04/13] trace/simple: pass iter to st_write_event_mapping, Gerd Hoffmann, 2021/06/01
- [PATCH v4 05/13] trace/simple: add st_init_group, Gerd Hoffmann, 2021/06/01
- [PATCH v4 06/13] meson: add trace_events_config[], Gerd Hoffmann, 2021/06/01
- [PATCH v4 07/13] meson: move up hw subdir (specifically before trace subdir), Gerd Hoffmann, 2021/06/01
- [PATCH v4 09/13] trace/stap: build stap files for modules, Gerd Hoffmann, 2021/06/01