linux/tools/perf/trace/beauty
Arnaldo Carvalho de Melo 100198322b perf beauty: Make the prctl arg regexp more strict to cope with PR_SET_VMA
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: Arnaldo Carvalho de Melo <acme@redhat.com>
2022-02-01 13:03:27 -03:00
..
include/linux perf beauty: Update copy of linux/socket.h with the kernel sources 2021-11-06 17:54:42 -03:00
tracepoints x86: Remove duplicate TSC DEADLINE MSR definitions 2021-03-08 11:05:20 +01:00
arch_errno_names.c perf util: Introduce architecture specific errno/name mapping 2018-01-23 09:51:37 -03:00
arch_errno_names.sh perf beauty: Reuse the generic arch errno switch 2021-08-02 09:56:18 -03:00
arch_prctl.c perf trace beauty: Beautify arch_prctl()'s arguments 2018-12-18 16:15:19 -03:00
beauty.h perf beauty: Add socket level scnprintf that handles ARCH specific SOL_SOCKET 2021-11-12 10:40:34 -03:00
Build perf trace beauty: Add the glue for the autogenerated MSR arrays 2019-10-09 11:23:52 -03:00
clone.c tools headers UAPI: Sync sched.h with the kernel 2020-04-14 09:01:08 -03:00
drm_ioctl.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
eventfd.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
fadvise.sh perf beauty: Add generator for fadvise64's 'advice' arg constants 2018-12-18 16:17:41 -03:00
fcntl.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
flock.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
fsconfig.sh perf beauty: Fix fsconfig generator 2021-04-15 16:34:11 -03:00
fsmount.c perf trace: Beautify 'fsmount' arguments 2019-05-28 18:37:43 -03:00
fsmount.sh perf beauty: Add generator for fsmount's 'attr_flags' arg values 2019-05-28 18:37:43 -03:00
fspick.c perf trace: Beautify 'fspick' arguments 2019-05-28 18:37:42 -03:00
fspick.sh perf beauty: Add generator for fspick's 'flags' arg values 2019-05-28 18:37:42 -03:00
futex_op.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
futex_val3.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
ioctl.c perf trace beauty ioctl: Fix off-by-one error in cmd->string table 2019-08-26 11:58:29 -03:00
kcmp_type.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
kcmp.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
kvm_ioctl.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
madvise_behavior.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
mmap_flags.sh perf trace beauty: Allow header files in a different path 2020-11-04 09:42:41 -03:00
mmap_prot.sh perf trace beauty: Allow header files in a different path 2020-11-04 09:42:41 -03:00
mmap.c perf trace: Use the autogenerated mmap 'prot' string/id table 2020-10-01 11:35:01 -03:00
mode_t.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
mount_flags.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
mount_flags.sh perf beauty: Switch from using uapi/linux/fs.h to uapi/linux/mount.h 2019-01-08 14:09:33 -03:00
move_mount_flags.sh perf beauty: Cover more flags in the move_mount syscall argument beautifier 2021-09-10 18:15:22 -03:00
move_mount.c perf trace: Beautify 'move_mount' arguments 2019-05-28 18:37:42 -03:00
mremap_flags.sh perf trace beauty: Add script to autogenerate mremap's flags args string/id table 2020-09-29 18:07:27 -03:00
msg_flags.c perf beauty msg_flags: Add missing %s lost when adding prefix suppression logic 2019-03-01 15:45:35 -03:00
open_flags.c perf trace beauty: Print O_RDONLY when (flags & O_ACCMODE) == 0 2018-12-18 16:07:42 -03:00
perf_event_open.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
perf_ioctl.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
pid.c perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
pkey_alloc_access_rights.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
pkey_alloc.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
prctl_option.sh perf beauty: Make the prctl arg regexp more strict to cope with PR_SET_VMA 2022-02-01 13:03:27 -03:00
prctl.c perf beauty prctl: Export the 'options' strarray 2020-02-11 16:41:50 -03:00
rename_flags.sh perf beauty: Add a string table generator for renameat2's flags constants 2018-12-18 12:23:55 -03:00
renameat.c perf trace beauty renameat: No need to include linux/fs.h 2019-04-01 14:49:24 -03:00
sched_policy.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
seccomp.c perf trace: Use correct SECCOMP prefix spelling, "SECOMP_*" -> "SECCOMP_*" 2018-12-28 16:32:54 -03:00
signum.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
sndrv_ctl_ioctl.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
sndrv_pcm_ioctl.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
sockaddr.c perf beauty: Make all sockaddr files use a common naming scheme 2021-11-12 10:40:34 -03:00
sockaddr.sh perf beauty: Make all sockaddr files use a common naming scheme 2021-11-12 10:40:34 -03:00
socket_type.c perf trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
socket.c perf beauty: Add socket level scnprintf that handles ARCH specific SOL_SOCKET 2021-11-12 10:40:34 -03:00
socket.sh perf beauty socket: Add generator for socket level (SOL_*) string table 2021-11-12 10:40:34 -03:00
statx.c perf beauty: Add support to STATX_MNT_ID in the 'statx' syscall 'mask' argument 2020-06-09 12:40:03 -03:00
sync_file_range.c perf trace: Beautify 'sync_file_range' arguments 2019-05-28 18:37:43 -03:00
sync_file_range.sh perf beauty: Add generator for sync_file_range's 'flags' arg values 2019-05-28 18:37:43 -03:00
usbdevfs_ioctl.sh tools perf beauty: Fix usbdevfs_ioctl table generator to handle _IOC() 2019-07-29 09:03:42 -03:00
vhost_virtio_ioctl.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -03:00
waitid_options.c perf beauty waitid options: Fix up prefix showing logic 2019-02-14 13:31:12 -03:00
x86_arch_prctl.sh perf beauty: Add a string table generator for x86's 'arch_prctl' codes 2018-12-18 16:15:18 -03:00