linux/tools/perf/trace/beauty
Ian Rogers f463ad7f41 perf beauty: Reuse the generic arch errno switch
Previously the code would see if, for example,
tools/perf/arch/arm/include/uapi/asm/errno.h exists and if not generate
a "generic" switch statement using the asm-generic/errno.h.

This creates multiple identical "generic" switch statements before the
default generic switch statement for an unknown architecture.

By simplifying the archlist to be only for architectures that are not
"generic" the amount of generated code can be reduced from 14 down to 6
functions.

Remove the special case of x86, instead reverse the architecture names
so that it comes first.

Committer testing:

  $ tools/perf/trace/beauty/arch_errno_names.sh gcc tools > before

Apply this patch and:

  $ tools/perf/trace/beauty/arch_errno_names.sh gcc tools > after

14 arches down to 6, that are the ones with an explicit errno.h file:

  $ ls -1 tools/arch/*/include/uapi/asm/errno.h
  tools/arch/alpha/include/uapi/asm/errno.h
  tools/arch/mips/include/uapi/asm/errno.h
  tools/arch/parisc/include/uapi/asm/errno.h
  tools/arch/powerpc/include/uapi/asm/errno.h
  tools/arch/sparc/include/uapi/asm/errno.h
  tools/arch/x86/include/uapi/asm/errno.h
  $

  $ diff -u4 before after
  @@ -2099,32 +987,16 @@
   const char *arch_syscalls__strerrno(const char *arch, int err)
   {
   	if (!strcmp(arch, "x86"))
   		return errno_to_name__x86(err);
  -	if (!strcmp(arch, "alpha"))
  -		return errno_to_name__alpha(err);
  -	if (!strcmp(arch, "arc"))
  -		return errno_to_name__arc(err);
  -	if (!strcmp(arch, "arm"))
  -		return errno_to_name__arm(err);
  -	if (!strcmp(arch, "arm64"))
  -		return errno_to_name__arm64(err);
  -	if (!strcmp(arch, "csky"))
  -		return errno_to_name__csky(err);
  -	if (!strcmp(arch, "mips"))
  -		return errno_to_name__mips(err);
  -	if (!strcmp(arch, "parisc"))
  -		return errno_to_name__parisc(err);
  -	if (!strcmp(arch, "powerpc"))
  -		return errno_to_name__powerpc(err);
  -	if (!strcmp(arch, "riscv"))
  -		return errno_to_name__riscv(err);
  -	if (!strcmp(arch, "s390"))
  -		return errno_to_name__s390(err);
  -	if (!strcmp(arch, "sh"))
  -		return errno_to_name__sh(err);
   	if (!strcmp(arch, "sparc"))
   		return errno_to_name__sparc(err);
  -	if (!strcmp(arch, "xtensa"))
  -		return errno_to_name__xtensa(err);
  +	if (!strcmp(arch, "powerpc"))
  +		return errno_to_name__powerpc(err);
  +	if (!strcmp(arch, "parisc"))
  +		return errno_to_name__parisc(err);
  +	if (!strcmp(arch, "mips"))
  +		return errno_to_name__mips(err);
  +	if (!strcmp(arch, "alpha"))
  +		return errno_to_name__alpha(err);
   	return errno_to_name__generic(err);
   }

The rest of the patch is the removal of the errno_to_name__generic()
unneeded clones.

Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20210513060441.408507-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2021-08-02 09:56:18 -03:00
..
include/linux perf beauty: Update copy of linux/socket.h with the kernel sources 2021-06-19 10:09:08 -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 prctl: Export the 'options' strarray 2020-02-11 16:41:50 -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: Add generator for 'move_mount' flags argument 2019-05-28 18:37:42 -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 tools beauty: Make the prctl option table generator catch all PR_ options 2019-01-03 15:16:04 -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 trace beauty: Use the autogenerated protocol family table 2020-08-12 08:43:51 -03:00
socket_ipproto.sh perf beauty: Switch from GPL v2.0 to LGPL v2.1 2018-10-30 11:46:23 -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 trace: Allow asking for not suppressing common string prefixes 2018-12-18 16:07:42 -03:00
socket.sh perf trace beauty: Add script to autogenerate socket families table 2020-08-12 08:38:36 -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