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

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
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ sub trace_end
sub irq::softirq_entry
{
	my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	    $common_pid, $common_comm,
	    $common_pid, $common_comm, $common_callchain,
	    $vec) = @_;

	print_header($event_name, $common_cpu, $common_secs, $common_nsecs,
@@ -43,7 +43,7 @@ sub irq::softirq_entry
sub kmem::kmalloc
{
	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,
	    $gfp_flags) = @_;

@@ -92,7 +92,7 @@ sub print_unhandled
sub trace_unhandled
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm) = @_;
	$common_pid, $common_comm, $common_callchain) = @_;

    $unhandled{$event_name}++;
}
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ my %failed_syscalls;
sub raw_syscalls::sys_exit
{
	my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	    $common_pid, $common_comm,
	    $common_pid, $common_comm, $common_callchain,
	    $id, $ret) = @_;

	if ($ret < 0) {
+3 −3
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ my %writes;
sub syscalls::sys_enter_read
{
    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) {
	$reads{$fd}{bytes_requested} += $count;
@@ -39,7 +39,7 @@ sub syscalls::sys_enter_read
sub syscalls::sys_enter_write
{
    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) {
	$writes{$fd}{bytes_written} += $count;
@@ -98,7 +98,7 @@ sub print_unhandled
sub trace_unhandled
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm) = @_;
	$common_pid, $common_comm, $common_callchain) = @_;

    $unhandled{$event_name}++;
}
+5 −5
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ my %writes;
sub syscalls::sys_exit_read
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $ret) = @_;

    if ($ret > 0) {
@@ -40,7 +40,7 @@ sub syscalls::sys_exit_read
sub syscalls::sys_enter_read
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $fd, $buf, $count) = @_;

    $reads{$common_pid}{bytes_requested} += $count;
@@ -51,7 +51,7 @@ sub syscalls::sys_enter_read
sub syscalls::sys_exit_write
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $ret) = @_;

    if ($ret <= 0) {
@@ -62,7 +62,7 @@ sub syscalls::sys_exit_write
sub syscalls::sys_enter_write
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $fd, $buf, $count) = @_;

    $writes{$common_pid}{bytes_written} += $count;
@@ -178,7 +178,7 @@ sub print_unhandled
sub trace_unhandled
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm) = @_;
	$common_pid, $common_comm, $common_callchain) = @_;

    $unhandled{$event_name}++;
}
+5 −5
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ if (!$interval) {
sub syscalls::sys_exit_read
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $ret) = @_;

    print_check();
@@ -53,7 +53,7 @@ sub syscalls::sys_exit_read
sub syscalls::sys_enter_read
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $fd, $buf, $count) = @_;

    print_check();
@@ -66,7 +66,7 @@ sub syscalls::sys_enter_read
sub syscalls::sys_exit_write
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $ret) = @_;

    print_check();
@@ -79,7 +79,7 @@ sub syscalls::sys_exit_write
sub syscalls::sys_enter_write
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm,
	$common_pid, $common_comm, $common_callchain,
	$nr, $fd, $buf, $count) = @_;

    print_check();
@@ -197,7 +197,7 @@ sub print_unhandled
sub trace_unhandled
{
    my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs,
	$common_pid, $common_comm) = @_;
	$common_pid, $common_comm, $common_callchain) = @_;

    $unhandled{$event_name}++;
}
Loading