aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2020-09-10 11:45:13 +0100
committerPeter Maydell <peter.maydell@linaro.org>2020-09-10 11:45:13 +0100
commit922781b7b37de22a06269f25c9c1ae66293c5991 (patch)
treebf94f80cb7aa2336878e4c1b48a438f0ac11ff33 /scripts
parent9435a8b3dd35f1f926f1b9127e8a906217a5518a (diff)
parentb15e402fc8861adb65d168d380f39b310599a533 (diff)
downloadqemu-922781b7b37de22a06269f25c9c1ae66293c5991.zip
qemu-922781b7b37de22a06269f25c9c1ae66293c5991.tar.gz
qemu-922781b7b37de22a06269f25c9c1ae66293c5991.tar.bz2
Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging
Pull request v2: * Rebased after meson and resolved conflict in "softmmu: Add missing trace-events file" * Dropped "meson: Don't make object files for dtrace on macOS" (already merged via Paolo's tree) # gpg: Signature made Thu 10 Sep 2020 09:09:47 BST # gpg: using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [full] # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" [full] # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/tracing-pull-request: trace-events: Fix attribution of trace points to source trace-events: Delete unused trace points scripts/cleanup-trace-events: Emit files in alphabetical order scripts/cleanup-trace-events: Fix for vcpu property net/colo: Match is-enabled probe to tracepoint scripts/tracetool: Use void pointer for vcpu scripts/tracetool: Fix dtrace generation for macOS softmmu: Add missing trace-events file Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/cleanup-trace-events.pl23
-rw-r--r--scripts/tracetool/format/d.py15
-rw-r--r--scripts/tracetool/vcpu.py2
3 files changed, 29 insertions, 11 deletions
diff --git a/scripts/cleanup-trace-events.pl b/scripts/cleanup-trace-events.pl
index d4f0e4c..c40d2fc 100755
--- a/scripts/cleanup-trace-events.pl
+++ b/scripts/cleanup-trace-events.pl
@@ -15,12 +15,15 @@ use warnings;
use strict;
use File::Basename;
-my $buf = '';
+my @files = ();
+my $events = '';
my %seen = ();
sub out {
- print $buf;
- $buf = '';
+ print sort @files;
+ print $events;
+ @files = ();
+ $events = '';
%seen = ();
}
@@ -31,16 +34,18 @@ open(IN, $in) or die "open $in: $!";
chdir($dir) or die "chdir $dir: $!";
while (<IN>) {
- if (/^(disable |(tcg) |vcpu )*([a-z_0-9]+)\(/i) {
- my $pat = "trace_$3";
- $pat .= '_tcg' if (defined $2);
- open GREP, '-|', 'git', 'grep', '-lw', '--max-depth', '1', $pat
+ if (/^(disable |(tcg) |(vcpu) )*([a-z_0-9]+)\(/i) {
+ my $pat = "trace_$4";
+ $pat .= '_tcg' if defined $2;
+ open GREP, '-|', 'git', 'grep', '-lw',
+ defined $3 ? () : ('--max-depth', '1'),
+ $pat
or die "run git grep: $!";
while (my $fname = <GREP>) {
chomp $fname;
next if $seen{$fname} || $fname eq 'trace-events';
$seen{$fname} = 1;
- $buf = "# $fname\n" . $buf;
+ push @files, "# $fname\n";
}
unless (close GREP) {
die "close git grep: $!"
@@ -53,7 +58,7 @@ while (<IN>) {
} elsif (!/^#|^$/) {
warn "unintelligible line";
}
- $buf .= $_;
+ $events .= $_;
}
out;
diff --git a/scripts/tracetool/format/d.py b/scripts/tracetool/format/d.py
index 0afb5f3..353722f 100644
--- a/scripts/tracetool/format/d.py
+++ b/scripts/tracetool/format/d.py
@@ -13,6 +13,7 @@ __email__ = "stefanha@redhat.com"
from tracetool import out
+from sys import platform
# Reserved keywords from
@@ -34,7 +35,8 @@ def generate(events, backend, group):
# SystemTap's dtrace(1) warns about empty "provider qemu {}" but is happy
# with an empty file. Avoid the warning.
- if not events:
+ # But dtrace on macOS can't deal with empty files.
+ if not events and platform != "darwin":
return
out('/* This file is autogenerated by tracetool, do not edit. */'
@@ -44,6 +46,17 @@ def generate(events, backend, group):
for e in events:
args = []
for type_, name in e.args:
+ if platform == "darwin":
+ # macOS dtrace accepts only C99 _Bool
+ if type_ == 'bool':
+ type_ = '_Bool'
+ if type_ == 'bool *':
+ type_ = '_Bool *'
+ # It converts int8_t * in probe points to char * in header
+ # files and introduces [-Wpointer-sign] warning.
+ # Avoid it by changing probe type to signed char * beforehand.
+ if type_ == 'int8_t *':
+ type_ = 'signed char *'
if name in RESERVED_WORDS:
name += '_'
args.append(type_ + ' ' + name)
diff --git a/scripts/tracetool/vcpu.py b/scripts/tracetool/vcpu.py
index b54e4f4..868b4cb 100644
--- a/scripts/tracetool/vcpu.py
+++ b/scripts/tracetool/vcpu.py
@@ -24,7 +24,7 @@ def transform_event(event):
assert "tcg-trans" not in event.properties
assert "tcg-exec" not in event.properties
- event.args = Arguments([("CPUState *", "__cpu"), event.args])
+ event.args = Arguments([("void *", "__cpu"), event.args])
if "tcg" in event.properties:
fmt = "\"cpu=%p \""
event.fmt = [fmt + event.fmt[0],