aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/devel/tracing.rst3
-rw-r--r--meson.build63
-rwxr-xr-xscripts/tracetool.py24
3 files changed, 46 insertions, 44 deletions
diff --git a/docs/devel/tracing.rst b/docs/devel/tracing.rst
index d288480db1..043bed7fd0 100644
--- a/docs/devel/tracing.rst
+++ b/docs/devel/tracing.rst
@@ -357,8 +357,7 @@ probes::
scripts/tracetool.py --backends=dtrace --format=stap \
--binary path/to/qemu-binary \
- --target-type system \
- --target-name x86_64 \
+ --probe-prefix qemu.system.x86_64 \
--group=all \
trace-events-all \
qemu.stp
diff --git a/meson.build b/meson.build
index b8ded80cbe..b375248a76 100644
--- a/meson.build
+++ b/meson.build
@@ -3812,6 +3812,7 @@ if host_os == 'darwin'
entitlement = find_program('scripts/entitlement.sh')
endif
+traceable = []
emulators = {}
foreach target : target_dirs
config_target = config_target_mak[target]
@@ -3980,29 +3981,11 @@ foreach target : target_dirs
emulators += {exe['name']: emulator}
endif
- if stap.found()
- foreach stp: [
- {'ext': '.stp-build', 'fmt': 'stap', 'bin': meson.current_build_dir() / exe['name'], 'install': false},
- {'ext': '.stp', 'fmt': 'stap', 'bin': get_option('prefix') / get_option('bindir') / exe['name'], 'install': true},
- {'ext': '-simpletrace.stp', 'fmt': 'simpletrace-stap', 'bin': '', 'install': true},
- {'ext': '-log.stp', 'fmt': 'log-stap', 'bin': '', 'install': true},
- ]
- custom_target(exe['name'] + stp['ext'],
- input: trace_events_all,
- output: exe['name'] + stp['ext'],
- install: stp['install'],
- install_dir: get_option('datadir') / 'systemtap/tapset',
- command: [
- tracetool, '--group=all', '--format=' + stp['fmt'],
- '--binary=' + stp['bin'],
- '--target-name=' + target_name,
- '--target-type=' + target_type,
- '--probe-prefix=qemu.' + target_type + '.' + target_name,
- '@INPUT@', '@OUTPUT@'
- ],
- depend_files: tracetool_depends)
- endforeach
- endif
+ traceable += [{
+ 'exe': exe['name'],
+ 'probe-prefix': 'qemu.' + target_type + '.' + target_name,
+ }]
+
endforeach
endforeach
@@ -4037,6 +4020,14 @@ if have_tools
install: true)
subdir('storage-daemon')
+
+ foreach exe: [ 'qemu-img', 'qemu-io', 'qemu-nbd', 'qemu-storage-daemon']
+ traceable += [{
+ 'exe': exe,
+ 'probe-prefix': 'qemu.' + exe.substring(5).replace('-', '_')
+ }]
+ endforeach
+
subdir('contrib/rdmacm-mux')
subdir('contrib/elf2dmp')
@@ -4069,6 +4060,32 @@ if have_tools
endif
endif
+if stap.found()
+ foreach t: traceable
+ foreach stp: [
+ {'ext': '.stp-build', 'fmt': 'stap', 'bin': meson.current_build_dir() / t['exe'], 'install': false},
+ {'ext': '.stp', 'fmt': 'stap', 'bin': get_option('prefix') / get_option('bindir') / t['exe'], 'install': true},
+ {'ext': '-simpletrace.stp', 'fmt': 'simpletrace-stap', 'bin': '', 'install': true},
+ {'ext': '-log.stp', 'fmt': 'log-stap', 'bin': '', 'install': true},
+ ]
+ cmd = [
+ tracetool, '--group=all', '--format=' + stp['fmt'],
+ '--binary=' + stp['bin'],
+ '--probe-prefix=' + t['probe-prefix'],
+ '@INPUT@', '@OUTPUT@'
+ ]
+
+ custom_target(t['exe'] + stp['ext'],
+ input: trace_events_all,
+ output: t['exe'] + stp['ext'],
+ install: stp['install'],
+ install_dir: get_option('datadir') / 'systemtap/tapset',
+ command: cmd,
+ depend_files: tracetool_depends)
+ endforeach
+ endforeach
+endif
+
subdir('scripts')
subdir('tools')
subdir('pc-bios')
diff --git a/scripts/tracetool.py b/scripts/tracetool.py
index ab7653a5ce..5de9ce96d3 100755
--- a/scripts/tracetool.py
+++ b/scripts/tracetool.py
@@ -44,12 +44,9 @@ Options:
--help This help message.
--list-backends Print list of available backends.
--check-backends Check if the given backend is valid.
- --binary <path> Full path to QEMU binary.
- --target-type <type> QEMU emulator target type ('system' or 'user').
- --target-name <name> QEMU emulator target name.
- --group <name> Name of the event group
- --probe-prefix <prefix> Prefix for dtrace probe names
- (default: qemu-<target-type>-<target-name>).\
+ --binary <path> Full path to QEMU binary (required for 'stap' backend).
+ --group <name> Name of the event group.
+ --probe-prefix <prefix> Prefix for dtrace probe names (required for 'stap' backend).
""" % {
"script" : _SCRIPT,
"backends" : backend_descr,
@@ -67,7 +64,7 @@ def main(args):
long_opts = ["backends=", "format=", "help", "list-backends",
"check-backends", "group="]
- long_opts += ["binary=", "target-type=", "target-name=", "probe-prefix="]
+ long_opts += ["binary=", "probe-prefix="]
try:
opts, args = getopt.getopt(args[1:], "", long_opts)
@@ -79,8 +76,6 @@ def main(args):
arg_format = ""
arg_group = None
binary = None
- target_type = None
- target_name = None
probe_prefix = None
for opt, arg in opts:
if opt == "--help":
@@ -102,10 +97,6 @@ def main(args):
elif opt == "--binary":
binary = arg
- elif opt == '--target-type':
- target_type = arg
- elif opt == '--target-name':
- target_name = arg
elif opt == '--probe-prefix':
probe_prefix = arg
@@ -127,13 +118,8 @@ def main(args):
if arg_format == "stap":
if binary is None:
error_opt("--binary is required for SystemTAP tapset generator")
- if probe_prefix is None and target_type is None:
- error_opt("--target-type is required for SystemTAP tapset generator")
- if probe_prefix is None and target_name is None:
- error_opt("--target-name is required for SystemTAP tapset generator")
-
if probe_prefix is None:
- probe_prefix = ".".join(["qemu", target_type, target_name])
+ error_opt("--probe-prefix is required for SystemTAP tapset generator")
if len(args) < 2:
error_opt("missing trace-events and output filepaths")