perf trace: Beautify mount's first pathname arg
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 26 Oct 2018 16:51:45 +0000 (13:51 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 30 Oct 2018 14:46:23 +0000 (11:46 -0300)
The pathname beautifiers so far support just one augmented pathname per
syscall, so do it just for mount's first arg, later this will get fixed.

With:

  # perf probe -l
  probe:vfs_getname    (on getname_flags:73@acme/git/linux/fs/namei.c with pathname)
  #

Later this will get added to augmented_syscalls.c (eBPF):

In one xterm:

  # perf trace -e mount,umount
  2687.331 ( 3.544 ms): mount/8892 mount(dev_name: /mnt, dir_name: 0x561f9ac184a0, type: 0x561f9ac1b170, flags: BIND) = 0
  3912.126 ( 8.807 ms): umount/8895 umount2(name: /mnt) = 0
  ^C#

In the other:

  $ sudo mount --bind /proc /mnt
  $ sudo umount /mnt

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Benjamin Peterson <benjamin@python.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-qsvhrm2es635cl4zicqjeth2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-trace.c

index d286f73ef2e5b8b07066984411f0fcec9910bf79..dc8a6c4986ce2066b0e76cd58e0edb2f7f09852a 100644 (file)
@@ -727,7 +727,8 @@ static struct syscall_fmt {
                   [2] = { .scnprintf = SCA_MMAP_PROT,  /* prot */ },
                   [3] = { .scnprintf = SCA_MMAP_FLAGS, /* flags */ }, }, },
        { .name     = "mount",
-         .arg = { [3] = { .scnprintf = SCA_MOUNT_FLAGS, /* flags */
+         .arg = { [0] = { .scnprintf = SCA_FILENAME, /* dev_name */ },
+                  [3] = { .scnprintf = SCA_MOUNT_FLAGS, /* flags */
                           .mask_val  = SCAMV_MOUNT_FLAGS, /* flags */ }, }, },
        { .name     = "mprotect",
          .arg = { [0] = { .scnprintf = SCA_HEX,        /* start */ },