• Arnaldo Carvalho de Melo's avatar
    tools headers: Update x86's syscall_64.tbl and uapi/asm-generic/unistd · 8142bd82
    Arnaldo Carvalho de Melo authored
    To pick up the changes introduced in the following csets:
    
      2b188cc1 ("Add io_uring IO interface")
      edafccee ("io_uring: add support for pre-mapped user IO buffers")
      3eb39f47 ("signal: add pidfd_send_signal() syscall")
    
    This makes 'perf trace' to become aware of these new syscalls, so that
    one can use them like 'perf trace -e ui_uring*,*signal' to do a system
    wide strace-like session looking at those syscalls, for instance.
    
    For example:
    
      # perf trace -s io_uring-cp ~acme/isos/RHEL-x86_64-dvd1.iso ~/bla
    
       Summary of events:
    
       io_uring-cp (383), 1208866 events, 100.0%
    
         syscall         calls   total    min     avg     max   stddev
                                 (msec) (msec)  (msec)  (msec)     (%)
         -------------- ------ -------- ------ ------- -------  ------
         io_uring_enter 605780 2955.615  0.000   0.005  33.804   1.94%
         openat              4  459.446  0.004 114.861 459.435 100.00%
         munmap              4    0.073  0.009   0.018   0.042  44.03%
         mmap               10    0.054  0.002   0.005   0.026  43.24%
         brk                28    0.038  0.001   0.001   0.003   7.51%
         io_uring_setup      1    0.030  0.030   0.030   0.030   0.00%
         mprotect            4    0.014  0.002   0.004   0.005  14.32%
         close               5    0.012  0.001   0.002   0.004  28.87%
         fstat               3    0.006  0.001   0.002   0.003  35.83%
         read                4    0.004  0.001   0.001   0.002  13.58%
         access              1    0.003  0.003   0.003   0.003   0.00%
         lseek               3    0.002  0.001   0.001   0.001   9.00%
         arch_prctl          2    0.002  0.001   0.001   0.001   0.69%
         execve              1    0.000  0.000   0.000   0.000   0.00%
      #
      # perf trace -e io_uring* -s io_uring-cp ~acme/isos/RHEL-x86_64-dvd1.iso ~/bla
    
       Summary of events:
    
       io_uring-cp (390), 1191250 events, 100.0%
    
         syscall         calls   total    min    avg    max  stddev
                                 (msec) (msec) (msec) (msec)    (%)
         -------------- ------ -------- ------ ------ ------ ------
         io_uring_enter 597093 2706.060  0.001  0.005 14.761  1.10%
         io_uring_setup      1    0.038  0.038  0.038  0.038  0.00%
      #
    
    More work needed to make the tools/perf/examples/bpf/augmented_raw_syscalls.c
    BPF program to copy the 'struct io_uring_params' arguments to perf's ring
    buffer so that 'perf trace' can use the BTF info put in place by pahole's
    conversion of the kernel DWARF and then auto-beautify those arguments.
    
    This patch produces the expected change in the generated syscalls table
    for x86_64:
    
      --- /tmp/build/perf/arch/x86/include/generated/asm/syscalls_64.c.before	2019-03-26 13:37:46.679057774 -0300
      +++ /tmp/build/perf/arch/x86/include/generated/asm/syscalls_64.c	2019-03-26 13:38:12.755990383 -0300
      @@ -334,5 +334,9 @@ static const char *syscalltbl_x86_64[] =
       	[332] = "statx",
       	[333] = "io_pgetevents",
       	[334] = "rseq",
      +	[424] = "pidfd_send_signal",
      +	[425] = "io_uring_setup",
      +	[426] = "io_uring_enter",
      +	[427] = "io_uring_register",
       };
      -#define SYSCALLTBL_x86_64_MAX_ID 334
      +#define SYSCALLTBL_x86_64_MAX_ID 427
    
    This silences these perf build warnings:
    
      Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/unistd.h' differs from latest version at 'include/uapi/asm-generic/unistd.h'
      diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h
      Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl'
      diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
    Cc: Christian Brauner <christian@brauner.io>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Martin KaFai Lau <kafai@fb.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Yonghong Song <yhs@fb.com>
    Link: https://lkml.kernel.org/n/tip-p0ars3otuc52x5iznf21shhw@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    8142bd82
syscall_64.tbl 15.6 KB