• Arnaldo Carvalho de Melo's avatar
    perf beauty: Make the prctl arg regexp more strict to cope with PR_SET_VMA · 10019832
    Arnaldo Carvalho de Melo authored
    This new PR_SET_VMA value isn't in sequence with all the other prctl
    arguments and instead uses a big, 0x prefixed hex number: 0x53564d41 (S V M A).
    
    This makes it harder to generate a string table as it would be rather
    sparse, so make the regexp more stricter to avoid catching those.
    
    A followup patch for 'perf trace' to cope with such oddities will be
    needed, but then its a matter for the next merge window.
    
    The next patch will update the prctl.h file to cope with this perf build
    warning:
    
      Warning: Kernel ABI header at 'tools/include/uapi/linux/prctl.h' differs from latest version at 'include/uapi/linux/prctl.h'
      diff -u tools/include/uapi/linux/prctl.h include/uapi/linux/prctl.h
    
    Here is the output of this script:
    
      $ tools/perf/trace/beauty/prctl_option.sh
      static const char *prctl_options[] = {
      	[1] = "SET_PDEATHSIG",
      	[2] = "GET_PDEATHSIG",
      	[3] = "GET_DUMPABLE",
      	[4] = "SET_DUMPABLE",
      	[5] = "GET_UNALIGN",
      	[6] = "SET_UNALIGN",
      	[7] = "GET_KEEPCAPS",
      	[8] = "SET_KEEPCAPS",
      	[9] = "GET_FPEMU",
      	[10] = "SET_FPEMU",
      	[11] = "GET_FPEXC",
      	[12] = "SET_FPEXC",
      	[13] = "GET_TIMING",
      	[14] = "SET_TIMING",
      	[15] = "SET_NAME",
      	[16] = "GET_NAME",
      	[19] = "GET_ENDIAN",
      	[20] = "SET_ENDIAN",
      	[21] = "GET_SECCOMP",
      	[22] = "SET_SECCOMP",
      	[23] = "CAPBSET_READ",
      	[24] = "CAPBSET_DROP",
      	[25] = "GET_TSC",
      	[26] = "SET_TSC",
      	[27] = "GET_SECUREBITS",
      	[28] = "SET_SECUREBITS",
      	[29] = "SET_TIMERSLACK",
      	[30] = "GET_TIMERSLACK",
      	[31] = "TASK_PERF_EVENTS_DISABLE",
      	[32] = "TASK_PERF_EVENTS_ENABLE",
      	[33] = "MCE_KILL",
      	[34] = "MCE_KILL_GET",
      	[35] = "SET_MM",
      	[36] = "SET_CHILD_SUBREAPER",
      	[37] = "GET_CHILD_SUBREAPER",
      	[38] = "SET_NO_NEW_PRIVS",
      	[39] = "GET_NO_NEW_PRIVS",
      	[40] = "GET_TID_ADDRESS",
      	[41] = "SET_THP_DISABLE",
      	[42] = "GET_THP_DISABLE",
      	[43] = "MPX_ENABLE_MANAGEMENT",
      	[44] = "MPX_DISABLE_MANAGEMENT",
      	[45] = "SET_FP_MODE",
      	[46] = "GET_FP_MODE",
      	[47] = "CAP_AMBIENT",
      	[50] = "SVE_SET_VL",
      	[51] = "SVE_GET_VL",
      	[52] = "GET_SPECULATION_CTRL",
      	[53] = "SET_SPECULATION_CTRL",
      	[54] = "PAC_RESET_KEYS",
      	[55] = "SET_TAGGED_ADDR_CTRL",
      	[56] = "GET_TAGGED_ADDR_CTRL",
      	[57] = "SET_IO_FLUSHER",
      	[58] = "GET_IO_FLUSHER",
      	[59] = "SET_SYSCALL_USER_DISPATCH",
      	[60] = "PAC_SET_ENABLED_KEYS",
      	[61] = "PAC_GET_ENABLED_KEYS",
      	[62] = "SCHED_CORE",
      };
      static const char *prctl_set_mm_options[] = {
      	[1] = "START_CODE",
      	[2] = "END_CODE",
      	[3] = "START_DATA",
      	[4] = "END_DATA",
      	[5] = "START_STACK",
      	[6] = "START_BRK",
      	[7] = "BRK",
      	[8] = "ARG_START",
      	[9] = "ARG_END",
      	[10] = "ENV_START",
      	[11] = "ENV_END",
      	[12] = "AUXV",
      	[13] = "EXE_FILE",
      	[14] = "MAP",
      	[15] = "MAP_SIZE",
      };
      $
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Colin Cross <ccross@google.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Link: https://lore.kernel.org/lkml/YflZqY0rYQ3d1bKt@kernel.org
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    10019832
prctl_option.sh 679 Bytes