diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2020-09-10 11:45:13 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2020-09-10 11:45:13 +0100 |
commit | 922781b7b37de22a06269f25c9c1ae66293c5991 (patch) | |
tree | bf94f80cb7aa2336878e4c1b48a438f0ac11ff33 /scripts | |
parent | 9435a8b3dd35f1f926f1b9127e8a906217a5518a (diff) | |
parent | b15e402fc8861adb65d168d380f39b310599a533 (diff) | |
download | qemu-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-x | scripts/cleanup-trace-events.pl | 23 | ||||
-rw-r--r-- | scripts/tracetool/format/d.py | 15 | ||||
-rw-r--r-- | scripts/tracetool/vcpu.py | 2 |
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], |