Skip to content
  • Arnaldo Carvalho de Melo's avatar
    perf trace beauty: Beautify pkey_{alloc,free,mprotect} arguments · 83bc9c37
    Arnaldo Carvalho de Melo authored
    Reuse 'mprotect' beautifiers for 'pkey_mprotect'.
    
    System wide tracing pkey_alloc, pkey_free and pkey_mprotect calls, with
    backtraces:
    
      # perf trace -e pkey_alloc,pkey_mprotect,pkey_free --max-stack=5
         0.000 ( 0.011 ms): pkey/7818 pkey_alloc(init_val: DISABLE_ACCESS|DISABLE_WRITE) = -1 EINVAL Invalid argument
                                           syscall (/usr/lib64/libc-2.25.so)
                                           pkey_alloc (/home/acme/c/pkey)
         0.022 ( 0.003 ms): pkey/7818 pkey_mprotect(start: 0x7f28c3890000, len: 4096, prot: READ|WRITE, pkey: -1) = 0
                                           syscall (/usr/lib64/libc-2.25.so)
                                           pkey_mprotect (/home/acme/c/pkey)
         0.030 ( 0.002 ms): pkey/7818 pkey_free(pkey: -1                               ) = -1 EINVAL Invalid argument
                                           syscall (/usr/lib64/libc-2.25.so)
                                           pkey_free (/home/acme/c/pkey)
    
    The tools/include/uapi/asm-generic/mman-common.h file is used to find
    the access rights defines for the pkey_alloc syscall second argument.
    
    Since we have the detector of changes for the tools/include header files
    versus its kernel origin (include/uapi/asm-generic/mman-common.h), we'll
    get whatever new flag appears for that argument automatically.
    
    This method should be used in other cases where it is easy to generate
    those flags tables because the header has properly namespaced defines
    like PKEY_DISABLE_ACCESS and PKEY_DISABLE_WRITE.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    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: http://lkml.kernel.org/n/tip-3xq5312qlks7wtfzv2sk3nct@git.kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    83bc9c37