Commit 67439d55 authored by Michael Petlan's avatar Michael Petlan Committed by Arnaldo Carvalho de Melo

perf scripting perl: Add common_callchain to fix argument order

Since common_callchain has been added to the argument array, we need to
reflect it in perl-based scripts, because otherwise the following args
would be shifted and thus incorrect. E.g. rw-by-pid and calculation of
read and written bytes:

Before:

  read counts by pid:
     pid                  comm     # reads  bytes_requested  bytes_read
  ------  --------------------  -----------  ----------  ----------
   19301  dd                             4  424510450039736           0

After:

  read counts by pid:
     pid                  comm     # reads  bytes_requested  bytes_read
  ------  --------------------  -----------  ----------  ----------
   19301  dd                             4        9536             4341

Committer testing:

To see before after first do:

  # perf script record rw-by-pid
  ^C

Now you'll have a perf.data file to report on, then do before and after
using:

  # perf script report rw-by-pid

Anbd notice the bytes_request/bytes_read, as above.
Signed-off-by: default avatarMichael Petlan <mpetlan@redhat.com>
Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Cc: Benjamin Salon <bsalon@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
LPU-Reference: 20200311132836.12693-1-mpetlan@redhat.com
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent ec2eab9d
...@@ -28,7 +28,7 @@ sub trace_end ...@@ -28,7 +28,7 @@ sub trace_end
sub irq::softirq_entry sub irq::softirq_entry
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$vec) = @_; $vec) = @_;
print_header($event_name, $common_cpu, $common_secs, $common_nsecs, print_header($event_name, $common_cpu, $common_secs, $common_nsecs,
...@@ -43,7 +43,7 @@ sub irq::softirq_entry ...@@ -43,7 +43,7 @@ sub irq::softirq_entry
sub kmem::kmalloc sub kmem::kmalloc
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$call_site, $ptr, $bytes_req, $bytes_alloc, $call_site, $ptr, $bytes_req, $bytes_alloc,
$gfp_flags) = @_; $gfp_flags) = @_;
...@@ -92,7 +92,7 @@ sub print_unhandled ...@@ -92,7 +92,7 @@ sub print_unhandled
sub trace_unhandled sub trace_unhandled
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm) = @_; $common_pid, $common_comm, $common_callchain) = @_;
$unhandled{$event_name}++; $unhandled{$event_name}++;
} }
......
...@@ -18,7 +18,7 @@ my %failed_syscalls; ...@@ -18,7 +18,7 @@ my %failed_syscalls;
sub raw_syscalls::sys_exit sub raw_syscalls::sys_exit
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$id, $ret) = @_; $id, $ret) = @_;
if ($ret < 0) { if ($ret < 0) {
......
...@@ -28,7 +28,7 @@ my %writes; ...@@ -28,7 +28,7 @@ my %writes;
sub syscalls::sys_enter_read sub syscalls::sys_enter_read
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $nr, $fd, $buf, $count) = @_; $common_pid, $common_comm, $common_callchain, $nr, $fd, $buf, $count) = @_;
if ($common_comm eq $for_comm) { if ($common_comm eq $for_comm) {
$reads{$fd}{bytes_requested} += $count; $reads{$fd}{bytes_requested} += $count;
...@@ -39,7 +39,7 @@ sub syscalls::sys_enter_read ...@@ -39,7 +39,7 @@ sub syscalls::sys_enter_read
sub syscalls::sys_enter_write sub syscalls::sys_enter_write
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $nr, $fd, $buf, $count) = @_; $common_pid, $common_comm, $common_callchain, $nr, $fd, $buf, $count) = @_;
if ($common_comm eq $for_comm) { if ($common_comm eq $for_comm) {
$writes{$fd}{bytes_written} += $count; $writes{$fd}{bytes_written} += $count;
...@@ -98,7 +98,7 @@ sub print_unhandled ...@@ -98,7 +98,7 @@ sub print_unhandled
sub trace_unhandled sub trace_unhandled
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm) = @_; $common_pid, $common_comm, $common_callchain) = @_;
$unhandled{$event_name}++; $unhandled{$event_name}++;
} }
......
...@@ -24,7 +24,7 @@ my %writes; ...@@ -24,7 +24,7 @@ my %writes;
sub syscalls::sys_exit_read sub syscalls::sys_exit_read
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $ret) = @_; $nr, $ret) = @_;
if ($ret > 0) { if ($ret > 0) {
...@@ -40,7 +40,7 @@ sub syscalls::sys_exit_read ...@@ -40,7 +40,7 @@ sub syscalls::sys_exit_read
sub syscalls::sys_enter_read sub syscalls::sys_enter_read
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $fd, $buf, $count) = @_; $nr, $fd, $buf, $count) = @_;
$reads{$common_pid}{bytes_requested} += $count; $reads{$common_pid}{bytes_requested} += $count;
...@@ -51,7 +51,7 @@ sub syscalls::sys_enter_read ...@@ -51,7 +51,7 @@ sub syscalls::sys_enter_read
sub syscalls::sys_exit_write sub syscalls::sys_exit_write
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $ret) = @_; $nr, $ret) = @_;
if ($ret <= 0) { if ($ret <= 0) {
...@@ -62,7 +62,7 @@ sub syscalls::sys_exit_write ...@@ -62,7 +62,7 @@ sub syscalls::sys_exit_write
sub syscalls::sys_enter_write sub syscalls::sys_enter_write
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $fd, $buf, $count) = @_; $nr, $fd, $buf, $count) = @_;
$writes{$common_pid}{bytes_written} += $count; $writes{$common_pid}{bytes_written} += $count;
...@@ -178,7 +178,7 @@ sub print_unhandled ...@@ -178,7 +178,7 @@ sub print_unhandled
sub trace_unhandled sub trace_unhandled
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm) = @_; $common_pid, $common_comm, $common_callchain) = @_;
$unhandled{$event_name}++; $unhandled{$event_name}++;
} }
...@@ -35,7 +35,7 @@ if (!$interval) { ...@@ -35,7 +35,7 @@ if (!$interval) {
sub syscalls::sys_exit_read sub syscalls::sys_exit_read
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $ret) = @_; $nr, $ret) = @_;
print_check(); print_check();
...@@ -53,7 +53,7 @@ sub syscalls::sys_exit_read ...@@ -53,7 +53,7 @@ sub syscalls::sys_exit_read
sub syscalls::sys_enter_read sub syscalls::sys_enter_read
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $fd, $buf, $count) = @_; $nr, $fd, $buf, $count) = @_;
print_check(); print_check();
...@@ -66,7 +66,7 @@ sub syscalls::sys_enter_read ...@@ -66,7 +66,7 @@ sub syscalls::sys_enter_read
sub syscalls::sys_exit_write sub syscalls::sys_exit_write
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $ret) = @_; $nr, $ret) = @_;
print_check(); print_check();
...@@ -79,7 +79,7 @@ sub syscalls::sys_exit_write ...@@ -79,7 +79,7 @@ sub syscalls::sys_exit_write
sub syscalls::sys_enter_write sub syscalls::sys_enter_write
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$nr, $fd, $buf, $count) = @_; $nr, $fd, $buf, $count) = @_;
print_check(); print_check();
...@@ -197,7 +197,7 @@ sub print_unhandled ...@@ -197,7 +197,7 @@ sub print_unhandled
sub trace_unhandled sub trace_unhandled
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm) = @_; $common_pid, $common_comm, $common_callchain) = @_;
$unhandled{$event_name}++; $unhandled{$event_name}++;
} }
...@@ -28,7 +28,7 @@ my $total_wakeups = 0; ...@@ -28,7 +28,7 @@ my $total_wakeups = 0;
sub sched::sched_switch sub sched::sched_switch
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$prev_comm, $prev_pid, $prev_prio, $prev_state, $next_comm, $next_pid, $prev_comm, $prev_pid, $prev_prio, $prev_state, $next_comm, $next_pid,
$next_prio) = @_; $next_prio) = @_;
...@@ -51,7 +51,7 @@ sub sched::sched_switch ...@@ -51,7 +51,7 @@ sub sched::sched_switch
sub sched::sched_wakeup sub sched::sched_wakeup
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm, $common_pid, $common_comm, $common_callchain,
$comm, $pid, $prio, $success, $target_cpu) = @_; $comm, $pid, $prio, $success, $target_cpu) = @_;
$last_wakeup{$target_cpu}{ts} = nsecs($common_secs, $common_nsecs); $last_wakeup{$target_cpu}{ts} = nsecs($common_secs, $common_nsecs);
...@@ -101,7 +101,7 @@ sub print_unhandled ...@@ -101,7 +101,7 @@ sub print_unhandled
sub trace_unhandled sub trace_unhandled
{ {
my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
$common_pid, $common_comm) = @_; $common_pid, $common_comm, $common_callchain) = @_;
$unhandled{$event_name}++; $unhandled{$event_name}++;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment