Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf trace: Add a prefix member to the strarray class

So that the user, in an upcoming patch, can select printing it to get
the full string as used in the source code, not one with a common prefix
chopped off so as to make the output more compact.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Luis Cláudio Gonçalves <lclaudio@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-zypczc88gzbmeqx7b372s138@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+35 -31
+11 -10
tools/perf/builtin-trace.c
··· 423 423 struct syscall_arg *arg) 424 424 { 425 425 int fd = arg->val; 426 + /* char fd_at_prefix = "AT_FD"; */ 426 427 427 428 if (fd == AT_FDCWD) 428 429 return scnprintf(bf, size, "CWD"); ··· 457 456 "MAP_CREATE", "MAP_LOOKUP_ELEM", "MAP_UPDATE_ELEM", "MAP_DELETE_ELEM", 458 457 "MAP_GET_NEXT_KEY", "PROG_LOAD", 459 458 }; 460 - static DEFINE_STRARRAY(bpf_cmd); 459 + static DEFINE_STRARRAY(bpf_cmd, "BPF_"); 461 460 462 461 static const char *epoll_ctl_ops[] = { "ADD", "DEL", "MOD", }; 463 - static DEFINE_STRARRAY_OFFSET(epoll_ctl_ops, 1); 462 + static DEFINE_STRARRAY_OFFSET(epoll_ctl_ops, "EPOLL_CTL_", 1); 464 463 465 464 static const char *itimers[] = { "REAL", "VIRTUAL", "PROF", }; 466 - static DEFINE_STRARRAY(itimers); 465 + static DEFINE_STRARRAY(itimers, "ITIMER_"); 467 466 468 467 static const char *keyctl_options[] = { 469 468 "GET_KEYRING_ID", "JOIN_SESSION_KEYRING", "UPDATE", "REVOKE", "CHOWN", ··· 472 471 "ASSUME_AUTHORITY", "GET_SECURITY", "SESSION_TO_PARENT", "REJECT", 473 472 "INSTANTIATE_IOV", "INVALIDATE", "GET_PERSISTENT", 474 473 }; 475 - static DEFINE_STRARRAY(keyctl_options); 474 + static DEFINE_STRARRAY(keyctl_options, "KEYCTL_"); 476 475 477 476 static const char *whences[] = { "SET", "CUR", "END", 478 477 #ifdef SEEK_DATA ··· 482 481 "HOLE", 483 482 #endif 484 483 }; 485 - static DEFINE_STRARRAY(whences); 484 + static DEFINE_STRARRAY(whences, "SEEK_"); 486 485 487 486 static const char *fcntl_cmds[] = { 488 487 "DUPFD", "GETFD", "SETFD", "GETFL", "SETFL", "GETLK", "SETLK", ··· 490 489 "SETLK64", "SETLKW64", "SETOWN_EX", "GETOWN_EX", 491 490 "GETOWNER_UIDS", 492 491 }; 493 - static DEFINE_STRARRAY(fcntl_cmds); 492 + static DEFINE_STRARRAY(fcntl_cmds, "F_"); 494 493 495 494 static const char *fcntl_linux_specific_cmds[] = { 496 495 "SETLEASE", "GETLEASE", "NOTIFY", [5] = "CANCELLK", "DUPFD_CLOEXEC", ··· 498 497 "GET_RW_HINT", "SET_RW_HINT", "GET_FILE_RW_HINT", "SET_FILE_RW_HINT", 499 498 }; 500 499 501 - static DEFINE_STRARRAY_OFFSET(fcntl_linux_specific_cmds, F_LINUX_SPECIFIC_BASE); 500 + static DEFINE_STRARRAY_OFFSET(fcntl_linux_specific_cmds, "F_", F_LINUX_SPECIFIC_BASE); 502 501 503 502 static struct strarray *fcntl_cmds_arrays[] = { 504 503 &strarray__fcntl_cmds, ··· 512 511 "MEMLOCK", "AS", "LOCKS", "SIGPENDING", "MSGQUEUE", "NICE", "RTPRIO", 513 512 "RTTIME", 514 513 }; 515 - static DEFINE_STRARRAY(rlimit_resources); 514 + static DEFINE_STRARRAY(rlimit_resources, "RLIMIT_"); 516 515 517 516 static const char *sighow[] = { "BLOCK", "UNBLOCK", "SETMASK", }; 518 - static DEFINE_STRARRAY(sighow); 517 + static DEFINE_STRARRAY(sighow, "SIG_"); 519 518 520 519 static const char *clockid[] = { 521 520 "REALTIME", "MONOTONIC", "PROCESS_CPUTIME_ID", "THREAD_CPUTIME_ID", 522 521 "MONOTONIC_RAW", "REALTIME_COARSE", "MONOTONIC_COARSE", "BOOTTIME", 523 522 "REALTIME_ALARM", "BOOTTIME_ALARM", "SGI_CYCLE", "TAI" 524 523 }; 525 - static DEFINE_STRARRAY(clockid); 524 + static DEFINE_STRARRAY(clockid, "CLOCK_"); 526 525 527 526 static size_t syscall_arg__scnprintf_access_mode(char *bf, size_t size, 528 527 struct syscall_arg *arg)
+5 -2
tools/perf/trace/beauty/beauty.h
··· 9 9 struct strarray { 10 10 int offset; 11 11 int nr_entries; 12 + const char *prefix; 12 13 const char **entries; 13 14 }; 14 15 15 - #define DEFINE_STRARRAY(array) struct strarray strarray__##array = { \ 16 + #define DEFINE_STRARRAY(array, _prefix) struct strarray strarray__##array = { \ 16 17 .nr_entries = ARRAY_SIZE(array), \ 17 18 .entries = array, \ 19 + .prefix = _prefix, \ 18 20 } 19 21 20 - #define DEFINE_STRARRAY_OFFSET(array, off) struct strarray strarray__##array = { \ 22 + #define DEFINE_STRARRAY_OFFSET(array, _prefix, off) struct strarray strarray__##array = { \ 21 23 .offset = off, \ 22 24 .nr_entries = ARRAY_SIZE(array), \ 23 25 .entries = array, \ 26 + .prefix = _prefix, \ 24 27 } 25 28 26 29 size_t strarray__scnprintf(struct strarray *sa, char *bf, size_t size, const char *intfmt, int val);
+1 -1
tools/perf/trace/beauty/fcntl.c
··· 22 22 static size_t fcntl__scnprintf_getlease(unsigned long val, char *bf, size_t size) 23 23 { 24 24 static const char *fcntl_setlease[] = { "RDLCK", "WRLCK", "UNLCK", }; 25 - static DEFINE_STRARRAY(fcntl_setlease); 25 + static DEFINE_STRARRAY(fcntl_setlease, "F_"); 26 26 27 27 return strarray__scnprintf(&strarray__fcntl_setlease, bf, size, "%x", val); 28 28 }
+8 -8
tools/perf/trace/beauty/ioctl.c
··· 36 36 "TIOCSERGWILD", "TIOCSERSWILD", "TIOCGLCKTRMIOS", "TIOCSLCKTRMIOS", 37 37 "TIOCSERGSTRUCT", "TIOCSERGETLSR", "TIOCSERGETMULTI", "TIOCSERSETMULTI", 38 38 "TIOCMIWAIT", "TIOCGICOUNT", }; 39 - static DEFINE_STRARRAY(ioctl_tty_cmd); 39 + static DEFINE_STRARRAY(ioctl_tty_cmd, ""); 40 40 41 41 if (nr < strarray__ioctl_tty_cmd.nr_entries && strarray__ioctl_tty_cmd.entries[nr] != NULL) 42 42 return scnprintf(bf, size, "%s", strarray__ioctl_tty_cmd.entries[nr]); ··· 47 47 static size_t ioctl__scnprintf_drm_cmd(int nr, int dir, char *bf, size_t size) 48 48 { 49 49 #include "trace/beauty/generated/ioctl/drm_ioctl_array.c" 50 - static DEFINE_STRARRAY(drm_ioctl_cmds); 50 + static DEFINE_STRARRAY(drm_ioctl_cmds, ""); 51 51 52 52 if (nr < strarray__drm_ioctl_cmds.nr_entries && strarray__drm_ioctl_cmds.entries[nr] != NULL) 53 53 return scnprintf(bf, size, "DRM_%s", strarray__drm_ioctl_cmds.entries[nr]); ··· 58 58 static size_t ioctl__scnprintf_sndrv_pcm_cmd(int nr, int dir, char *bf, size_t size) 59 59 { 60 60 #include "trace/beauty/generated/ioctl/sndrv_pcm_ioctl_array.c" 61 - static DEFINE_STRARRAY(sndrv_pcm_ioctl_cmds); 61 + static DEFINE_STRARRAY(sndrv_pcm_ioctl_cmds, ""); 62 62 63 63 if (nr < strarray__sndrv_pcm_ioctl_cmds.nr_entries && strarray__sndrv_pcm_ioctl_cmds.entries[nr] != NULL) 64 64 return scnprintf(bf, size, "SNDRV_PCM_%s", strarray__sndrv_pcm_ioctl_cmds.entries[nr]); ··· 69 69 static size_t ioctl__scnprintf_sndrv_ctl_cmd(int nr, int dir, char *bf, size_t size) 70 70 { 71 71 #include "trace/beauty/generated/ioctl/sndrv_ctl_ioctl_array.c" 72 - static DEFINE_STRARRAY(sndrv_ctl_ioctl_cmds); 72 + static DEFINE_STRARRAY(sndrv_ctl_ioctl_cmds, ""); 73 73 74 74 if (nr < strarray__sndrv_ctl_ioctl_cmds.nr_entries && strarray__sndrv_ctl_ioctl_cmds.entries[nr] != NULL) 75 75 return scnprintf(bf, size, "SNDRV_CTL_%s", strarray__sndrv_ctl_ioctl_cmds.entries[nr]); ··· 80 80 static size_t ioctl__scnprintf_kvm_cmd(int nr, int dir, char *bf, size_t size) 81 81 { 82 82 #include "trace/beauty/generated/ioctl/kvm_ioctl_array.c" 83 - static DEFINE_STRARRAY(kvm_ioctl_cmds); 83 + static DEFINE_STRARRAY(kvm_ioctl_cmds, ""); 84 84 85 85 if (nr < strarray__kvm_ioctl_cmds.nr_entries && strarray__kvm_ioctl_cmds.entries[nr] != NULL) 86 86 return scnprintf(bf, size, "KVM_%s", strarray__kvm_ioctl_cmds.entries[nr]); ··· 91 91 static size_t ioctl__scnprintf_vhost_virtio_cmd(int nr, int dir, char *bf, size_t size) 92 92 { 93 93 #include "trace/beauty/generated/ioctl/vhost_virtio_ioctl_array.c" 94 - static DEFINE_STRARRAY(vhost_virtio_ioctl_cmds); 95 - static DEFINE_STRARRAY(vhost_virtio_ioctl_read_cmds); 94 + static DEFINE_STRARRAY(vhost_virtio_ioctl_cmds, ""); 95 + static DEFINE_STRARRAY(vhost_virtio_ioctl_read_cmds, ""); 96 96 struct strarray *s = (dir & _IOC_READ) ? &strarray__vhost_virtio_ioctl_read_cmds : &strarray__vhost_virtio_ioctl_cmds; 97 97 98 98 if (nr < s->nr_entries && s->entries[nr] != NULL) ··· 104 104 static size_t ioctl__scnprintf_perf_cmd(int nr, int dir, char *bf, size_t size) 105 105 { 106 106 #include "trace/beauty/generated/ioctl/perf_ioctl_array.c" 107 - static DEFINE_STRARRAY(perf_ioctl_cmds); 107 + static DEFINE_STRARRAY(perf_ioctl_cmds, ""); 108 108 109 109 if (nr < strarray__perf_ioctl_cmds.nr_entries && strarray__perf_ioctl_cmds.entries[nr] != NULL) 110 110 return scnprintf(bf, size, "PERF_%s", strarray__perf_ioctl_cmds.entries[nr]);
+1 -1
tools/perf/trace/beauty/kcmp.c
··· 28 28 29 29 static size_t kcmp__scnprintf_type(int type, char *bf, size_t size) 30 30 { 31 - static DEFINE_STRARRAY(kcmp_types); 31 + static DEFINE_STRARRAY(kcmp_types, "KCMP_"); 32 32 return strarray__scnprintf(&strarray__kcmp_types, bf, size, "%d", type); 33 33 } 34 34
+2 -2
tools/perf/trace/beauty/mmap.c
··· 34 34 static size_t mmap__scnprintf_flags(unsigned long flags, char *bf, size_t size) 35 35 { 36 36 #include "trace/beauty/generated/mmap_flags_array.c" 37 - static DEFINE_STRARRAY(mmap_flags); 37 + static DEFINE_STRARRAY(mmap_flags, "MAP_"); 38 38 39 39 return strarray__scnprintf_flags(&strarray__mmap_flags, bf, size, flags); 40 40 } ··· 78 78 static size_t madvise__scnprintf_behavior(int behavior, char *bf, size_t size) 79 79 { 80 80 #include "trace/beauty/generated/madvise_behavior_array.c" 81 - static DEFINE_STRARRAY(madvise_advices); 81 + static DEFINE_STRARRAY(madvise_advices, "MADV_"); 82 82 83 83 if (behavior < strarray__madvise_advices.nr_entries && strarray__madvise_advices.entries[behavior] != NULL) 84 84 return scnprintf(bf, size, "MADV_%s", strarray__madvise_advices.entries[behavior]);
+1 -1
tools/perf/trace/beauty/mount_flags.c
··· 14 14 static size_t mount__scnprintf_flags(unsigned long flags, char *bf, size_t size) 15 15 { 16 16 #include "trace/beauty/generated/mount_flags_array.c" 17 - static DEFINE_STRARRAY(mount_flags); 17 + static DEFINE_STRARRAY(mount_flags, "MS_"); 18 18 19 19 return strarray__scnprintf_flags(&strarray__mount_flags, bf, size, flags); 20 20 }
+1 -1
tools/perf/trace/beauty/pkey_alloc.c
··· 41 41 static size_t pkey_alloc__scnprintf_access_rights(int access_rights, char *bf, size_t size) 42 42 { 43 43 #include "trace/beauty/generated/pkey_alloc_access_rights_array.c" 44 - static DEFINE_STRARRAY(pkey_alloc_access_rights); 44 + static DEFINE_STRARRAY(pkey_alloc_access_rights, "PKEY_"); 45 45 46 46 return strarray__scnprintf_flags(&strarray__pkey_alloc_access_rights, bf, size, access_rights); 47 47 }
+2 -2
tools/perf/trace/beauty/prctl.c
··· 13 13 14 14 static size_t prctl__scnprintf_option(int option, char *bf, size_t size) 15 15 { 16 - static DEFINE_STRARRAY(prctl_options); 16 + static DEFINE_STRARRAY(prctl_options, "PR_"); 17 17 return strarray__scnprintf(&strarray__prctl_options, bf, size, "%d", option); 18 18 } 19 19 20 20 static size_t prctl__scnprintf_set_mm(int option, char *bf, size_t size) 21 21 { 22 - static DEFINE_STRARRAY(prctl_set_mm_options); 22 + static DEFINE_STRARRAY(prctl_set_mm_options, "PR_SET_MM_"); 23 23 return strarray__scnprintf(&strarray__prctl_set_mm_options, bf, size, "%d", option); 24 24 } 25 25
+1 -1
tools/perf/trace/beauty/renameat.c
··· 7 7 static size_t renameat2__scnprintf_flags(unsigned long flags, char *bf, size_t size) 8 8 { 9 9 #include "trace/beauty/generated/rename_flags_array.c" 10 - static DEFINE_STRARRAY(rename_flags); 10 + static DEFINE_STRARRAY(rename_flags, "RENAME_"); 11 11 12 12 return strarray__scnprintf_flags(&strarray__rename_flags, bf, size, flags); 13 13 }
+1 -1
tools/perf/trace/beauty/sockaddr.c
··· 15 15 "BLUETOOTH", "IUCV", "RXRPC", "ISDN", "PHONET", "IEEE802154", "CAIF", 16 16 "ALG", "NFC", "VSOCK", 17 17 }; 18 - DEFINE_STRARRAY(socket_families); 18 + DEFINE_STRARRAY(socket_families, "PF_"); 19 19 20 20 static size_t af_inet__scnprintf(struct sockaddr *sa, char *bf, size_t size) 21 21 {
+1 -1
tools/perf/trace/beauty/socket.c
··· 12 12 static size_t socket__scnprintf_ipproto(int protocol, char *bf, size_t size) 13 13 { 14 14 #include "trace/beauty/generated/socket_ipproto_array.c" 15 - static DEFINE_STRARRAY(socket_ipproto); 15 + static DEFINE_STRARRAY(socket_ipproto, "IPPROTO_"); 16 16 17 17 return strarray__scnprintf(&strarray__socket_ipproto, bf, size, "%d", protocol); 18 18 }