All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] perf s390: Use syscall.tbl to create the perf syscall table
@ 2018-02-08 11:47 Hendrik Brueckner
  2018-02-08 11:47 ` [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h" Hendrik Brueckner
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Hendrik Brueckner @ 2018-02-08 11:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Thomas-Mich Richter, Michael Petlan, Jiri Olsa, linux-perf-users,
	linux-s390

With commit 857f46b "s390/syscalls: add system call table", I have
introduced a syscall.tbl file to generate the system call table for
s390, as well as, respective unistd.h header files for 64-bit and compat
system calls.

Because the unistd.h is now generated, update perf with a copy of the
syscall.tbl file and adapt the script that generates the system call
table for perf trace to support wildcard syscall matches.

The patch set is based on the perf/core branch.

Hendrik Brueckner (3):
  Revert "tools include s390: Grab a copy of
    arch/s390/include/uapi/asm/unistd.h"
  perf s390: Grab a copy of arch/s390/kernel/syscall/syscall.tbl
  perf s390: Rework system call table creation by using syscall.tbl

 tools/arch/s390/include/uapi/asm/unistd.h        | 412 -----------------------
 tools/perf/arch/s390/Makefile                    |  10 +-
 tools/perf/arch/s390/entry/syscalls/mksyscalltbl |  18 +-
 tools/perf/arch/s390/entry/syscalls/syscall.tbl  | 390 +++++++++++++++++++++
 tools/perf/check-headers.sh                      |   1 -
 5 files changed, 404 insertions(+), 427 deletions(-)
 delete mode 100644 tools/arch/s390/include/uapi/asm/unistd.h
 create mode 100644 tools/perf/arch/s390/entry/syscalls/syscall.tbl

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h"
  2018-02-08 11:47 [PATCH 0/3] perf s390: Use syscall.tbl to create the perf syscall table Hendrik Brueckner
@ 2018-02-08 11:47 ` Hendrik Brueckner
  2018-02-15 13:05   ` Arnaldo Carvalho de Melo
  2018-02-08 11:47 ` [PATCH 2/3] perf s390: Grab a copy of arch/s390/kernel/syscall/syscall.tbl Hendrik Brueckner
  2018-02-08 11:47 ` [PATCH 3/3] perf s390: Rework system call table creation by using syscall.tbl Hendrik Brueckner
  2 siblings, 1 reply; 6+ messages in thread
From: Hendrik Brueckner @ 2018-02-08 11:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Thomas-Mich Richter, Michael Petlan, Jiri Olsa, linux-perf-users,
	linux-s390, Arnaldo Carvalho de Melo

This reverts commit f120c7b187e6c418238710b48723ce141f467543 which is no
longer required with the introduction of a syscall.tbl on s390.

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
---
 tools/arch/s390/include/uapi/asm/unistd.h | 412 ------------------------------
 tools/perf/check-headers.sh               |   1 -
 2 files changed, 413 deletions(-)
 delete mode 100644 tools/arch/s390/include/uapi/asm/unistd.h

diff --git a/tools/arch/s390/include/uapi/asm/unistd.h b/tools/arch/s390/include/uapi/asm/unistd.h
deleted file mode 100644
index 7251209..0000000
--- a/tools/arch/s390/include/uapi/asm/unistd.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- *  S390 version
- *
- *  Derived from "include/asm-i386/unistd.h"
- */
-
-#ifndef _UAPI_ASM_S390_UNISTD_H_
-#define _UAPI_ASM_S390_UNISTD_H_
-
-/*
- * This file contains the system call numbers.
- */
-
-#define __NR_exit                 1
-#define __NR_fork                 2
-#define __NR_read                 3
-#define __NR_write                4
-#define __NR_open                 5
-#define __NR_close                6
-#define __NR_restart_syscall	  7
-#define __NR_creat                8
-#define __NR_link                 9
-#define __NR_unlink              10
-#define __NR_execve              11
-#define __NR_chdir               12
-#define __NR_mknod               14
-#define __NR_chmod               15
-#define __NR_lseek               19
-#define __NR_getpid              20
-#define __NR_mount               21
-#define __NR_umount              22
-#define __NR_ptrace              26
-#define __NR_alarm               27
-#define __NR_pause               29
-#define __NR_utime               30
-#define __NR_access              33
-#define __NR_nice                34
-#define __NR_sync                36
-#define __NR_kill                37
-#define __NR_rename              38
-#define __NR_mkdir               39
-#define __NR_rmdir               40
-#define __NR_dup                 41
-#define __NR_pipe                42
-#define __NR_times               43
-#define __NR_brk                 45
-#define __NR_signal              48
-#define __NR_acct                51
-#define __NR_umount2             52
-#define __NR_ioctl               54
-#define __NR_fcntl               55
-#define __NR_setpgid             57
-#define __NR_umask               60
-#define __NR_chroot              61
-#define __NR_ustat               62
-#define __NR_dup2                63
-#define __NR_getppid             64
-#define __NR_getpgrp             65
-#define __NR_setsid              66
-#define __NR_sigaction           67
-#define __NR_sigsuspend          72
-#define __NR_sigpending          73
-#define __NR_sethostname         74
-#define __NR_setrlimit           75
-#define __NR_getrusage           77
-#define __NR_gettimeofday        78
-#define __NR_settimeofday        79
-#define __NR_symlink             83
-#define __NR_readlink            85
-#define __NR_uselib              86
-#define __NR_swapon              87
-#define __NR_reboot              88
-#define __NR_readdir             89
-#define __NR_mmap                90
-#define __NR_munmap              91
-#define __NR_truncate            92
-#define __NR_ftruncate           93
-#define __NR_fchmod              94
-#define __NR_getpriority         96
-#define __NR_setpriority         97
-#define __NR_statfs              99
-#define __NR_fstatfs            100
-#define __NR_socketcall         102
-#define __NR_syslog             103
-#define __NR_setitimer          104
-#define __NR_getitimer          105
-#define __NR_stat               106
-#define __NR_lstat              107
-#define __NR_fstat              108
-#define __NR_lookup_dcookie     110
-#define __NR_vhangup            111
-#define __NR_idle               112
-#define __NR_wait4              114
-#define __NR_swapoff            115
-#define __NR_sysinfo            116
-#define __NR_ipc                117
-#define __NR_fsync              118
-#define __NR_sigreturn          119
-#define __NR_clone              120
-#define __NR_setdomainname      121
-#define __NR_uname              122
-#define __NR_adjtimex           124
-#define __NR_mprotect           125
-#define __NR_sigprocmask        126
-#define __NR_create_module      127
-#define __NR_init_module        128
-#define __NR_delete_module      129
-#define __NR_get_kernel_syms    130
-#define __NR_quotactl           131
-#define __NR_getpgid            132
-#define __NR_fchdir             133
-#define __NR_bdflush            134
-#define __NR_sysfs              135
-#define __NR_personality        136
-#define __NR_afs_syscall        137 /* Syscall for Andrew File System */
-#define __NR_getdents           141
-#define __NR_flock              143
-#define __NR_msync              144
-#define __NR_readv              145
-#define __NR_writev             146
-#define __NR_getsid             147
-#define __NR_fdatasync          148
-#define __NR__sysctl            149
-#define __NR_mlock              150
-#define __NR_munlock            151
-#define __NR_mlockall           152
-#define __NR_munlockall         153
-#define __NR_sched_setparam             154
-#define __NR_sched_getparam             155
-#define __NR_sched_setscheduler         156
-#define __NR_sched_getscheduler         157
-#define __NR_sched_yield                158
-#define __NR_sched_get_priority_max     159
-#define __NR_sched_get_priority_min     160
-#define __NR_sched_rr_get_interval      161
-#define __NR_nanosleep          162
-#define __NR_mremap             163
-#define __NR_query_module       167
-#define __NR_poll               168
-#define __NR_nfsservctl         169
-#define __NR_prctl              172
-#define __NR_rt_sigreturn       173
-#define __NR_rt_sigaction       174
-#define __NR_rt_sigprocmask     175
-#define __NR_rt_sigpending      176
-#define __NR_rt_sigtimedwait    177
-#define __NR_rt_sigqueueinfo    178
-#define __NR_rt_sigsuspend      179
-#define __NR_pread64            180
-#define __NR_pwrite64           181
-#define __NR_getcwd             183
-#define __NR_capget             184
-#define __NR_capset             185
-#define __NR_sigaltstack        186
-#define __NR_sendfile           187
-#define __NR_getpmsg		188
-#define __NR_putpmsg		189
-#define __NR_vfork		190
-#define __NR_pivot_root         217
-#define __NR_mincore            218
-#define __NR_madvise            219
-#define __NR_getdents64		220
-#define __NR_readahead		222
-#define __NR_setxattr		224
-#define __NR_lsetxattr		225
-#define __NR_fsetxattr		226
-#define __NR_getxattr		227
-#define __NR_lgetxattr		228
-#define __NR_fgetxattr		229
-#define __NR_listxattr		230
-#define __NR_llistxattr		231
-#define __NR_flistxattr		232
-#define __NR_removexattr	233
-#define __NR_lremovexattr	234
-#define __NR_fremovexattr	235
-#define __NR_gettid		236
-#define __NR_tkill		237
-#define __NR_futex		238
-#define __NR_sched_setaffinity	239
-#define __NR_sched_getaffinity	240
-#define __NR_tgkill		241
-/* Number 242 is reserved for tux */
-#define __NR_io_setup		243
-#define __NR_io_destroy		244
-#define __NR_io_getevents	245
-#define __NR_io_submit		246
-#define __NR_io_cancel		247
-#define __NR_exit_group		248
-#define __NR_epoll_create	249
-#define __NR_epoll_ctl		250
-#define __NR_epoll_wait		251
-#define __NR_set_tid_address	252
-#define __NR_fadvise64		253
-#define __NR_timer_create	254
-#define __NR_timer_settime	255
-#define __NR_timer_gettime	256
-#define __NR_timer_getoverrun	257
-#define __NR_timer_delete	258
-#define __NR_clock_settime	259
-#define __NR_clock_gettime	260
-#define __NR_clock_getres	261
-#define __NR_clock_nanosleep	262
-/* Number 263 is reserved for vserver */
-#define __NR_statfs64		265
-#define __NR_fstatfs64		266
-#define __NR_remap_file_pages	267
-#define __NR_mbind		268
-#define __NR_get_mempolicy	269
-#define __NR_set_mempolicy	270
-#define __NR_mq_open		271
-#define __NR_mq_unlink		272
-#define __NR_mq_timedsend	273
-#define __NR_mq_timedreceive	274
-#define __NR_mq_notify		275
-#define __NR_mq_getsetattr	276
-#define __NR_kexec_load		277
-#define __NR_add_key		278
-#define __NR_request_key	279
-#define __NR_keyctl		280
-#define __NR_waitid		281
-#define __NR_ioprio_set		282
-#define __NR_ioprio_get		283
-#define __NR_inotify_init	284
-#define __NR_inotify_add_watch	285
-#define __NR_inotify_rm_watch	286
-#define __NR_migrate_pages	287
-#define __NR_openat		288
-#define __NR_mkdirat		289
-#define __NR_mknodat		290
-#define __NR_fchownat		291
-#define __NR_futimesat		292
-#define __NR_unlinkat		294
-#define __NR_renameat		295
-#define __NR_linkat		296
-#define __NR_symlinkat		297
-#define __NR_readlinkat		298
-#define __NR_fchmodat		299
-#define __NR_faccessat		300
-#define __NR_pselect6		301
-#define __NR_ppoll		302
-#define __NR_unshare		303
-#define __NR_set_robust_list	304
-#define __NR_get_robust_list	305
-#define __NR_splice		306
-#define __NR_sync_file_range	307
-#define __NR_tee		308
-#define __NR_vmsplice		309
-#define __NR_move_pages		310
-#define __NR_getcpu		311
-#define __NR_epoll_pwait	312
-#define __NR_utimes		313
-#define __NR_fallocate		314
-#define __NR_utimensat		315
-#define __NR_signalfd		316
-#define __NR_timerfd		317
-#define __NR_eventfd		318
-#define __NR_timerfd_create	319
-#define __NR_timerfd_settime	320
-#define __NR_timerfd_gettime	321
-#define __NR_signalfd4		322
-#define __NR_eventfd2		323
-#define __NR_inotify_init1	324
-#define __NR_pipe2		325
-#define __NR_dup3		326
-#define __NR_epoll_create1	327
-#define	__NR_preadv		328
-#define	__NR_pwritev		329
-#define __NR_rt_tgsigqueueinfo	330
-#define __NR_perf_event_open	331
-#define __NR_fanotify_init	332
-#define __NR_fanotify_mark	333
-#define __NR_prlimit64		334
-#define __NR_name_to_handle_at	335
-#define __NR_open_by_handle_at	336
-#define __NR_clock_adjtime	337
-#define __NR_syncfs		338
-#define __NR_setns		339
-#define __NR_process_vm_readv	340
-#define __NR_process_vm_writev	341
-#define __NR_s390_runtime_instr 342
-#define __NR_kcmp		343
-#define __NR_finit_module	344
-#define __NR_sched_setattr	345
-#define __NR_sched_getattr	346
-#define __NR_renameat2		347
-#define __NR_seccomp		348
-#define __NR_getrandom		349
-#define __NR_memfd_create	350
-#define __NR_bpf		351
-#define __NR_s390_pci_mmio_write	352
-#define __NR_s390_pci_mmio_read		353
-#define __NR_execveat		354
-#define __NR_userfaultfd	355
-#define __NR_membarrier		356
-#define __NR_recvmmsg		357
-#define __NR_sendmmsg		358
-#define __NR_socket		359
-#define __NR_socketpair		360
-#define __NR_bind		361
-#define __NR_connect		362
-#define __NR_listen		363
-#define __NR_accept4		364
-#define __NR_getsockopt		365
-#define __NR_setsockopt		366
-#define __NR_getsockname	367
-#define __NR_getpeername	368
-#define __NR_sendto		369
-#define __NR_sendmsg		370
-#define __NR_recvfrom		371
-#define __NR_recvmsg		372
-#define __NR_shutdown		373
-#define __NR_mlock2		374
-#define __NR_copy_file_range	375
-#define __NR_preadv2		376
-#define __NR_pwritev2		377
-#define __NR_s390_guarded_storage	378
-#define __NR_statx		379
-#define __NR_s390_sthyi		380
-#define NR_syscalls 381
-
-/* 
- * There are some system calls that are not present on 64 bit, some
- * have a different name although they do the same (e.g. __NR_chown32
- * is __NR_chown on 64 bit).
- */
-#ifndef __s390x__
-
-#define __NR_time		 13
-#define __NR_lchown		 16
-#define __NR_setuid		 23
-#define __NR_getuid		 24
-#define __NR_stime		 25
-#define __NR_setgid		 46
-#define __NR_getgid		 47
-#define __NR_geteuid		 49
-#define __NR_getegid		 50
-#define __NR_setreuid		 70
-#define __NR_setregid		 71
-#define __NR_getrlimit		 76
-#define __NR_getgroups		 80
-#define __NR_setgroups		 81
-#define __NR_fchown		 95
-#define __NR_ioperm		101
-#define __NR_setfsuid		138
-#define __NR_setfsgid		139
-#define __NR__llseek		140
-#define __NR__newselect 	142
-#define __NR_setresuid		164
-#define __NR_getresuid		165
-#define __NR_setresgid		170
-#define __NR_getresgid		171
-#define __NR_chown		182
-#define __NR_ugetrlimit		191	/* SuS compliant getrlimit */
-#define __NR_mmap2		192
-#define __NR_truncate64		193
-#define __NR_ftruncate64	194
-#define __NR_stat64		195
-#define __NR_lstat64		196
-#define __NR_fstat64		197
-#define __NR_lchown32		198
-#define __NR_getuid32		199
-#define __NR_getgid32		200
-#define __NR_geteuid32		201
-#define __NR_getegid32		202
-#define __NR_setreuid32		203
-#define __NR_setregid32		204
-#define __NR_getgroups32	205
-#define __NR_setgroups32	206
-#define __NR_fchown32		207
-#define __NR_setresuid32	208
-#define __NR_getresuid32	209
-#define __NR_setresgid32	210
-#define __NR_getresgid32	211
-#define __NR_chown32		212
-#define __NR_setuid32		213
-#define __NR_setgid32		214
-#define __NR_setfsuid32		215
-#define __NR_setfsgid32		216
-#define __NR_fcntl64		221
-#define __NR_sendfile64		223
-#define __NR_fadvise64_64	264
-#define __NR_fstatat64		293
-
-#else
-
-#define __NR_select		142
-#define __NR_getrlimit		191	/* SuS compliant getrlimit */
-#define __NR_lchown  		198
-#define __NR_getuid  		199
-#define __NR_getgid  		200
-#define __NR_geteuid  		201
-#define __NR_getegid  		202
-#define __NR_setreuid  		203
-#define __NR_setregid  		204
-#define __NR_getgroups  	205
-#define __NR_setgroups  	206
-#define __NR_fchown  		207
-#define __NR_setresuid  	208
-#define __NR_getresuid  	209
-#define __NR_setresgid  	210
-#define __NR_getresgid  	211
-#define __NR_chown  		212
-#define __NR_setuid  		213
-#define __NR_setgid  		214
-#define __NR_setfsuid  		215
-#define __NR_setfsgid  		216
-#define __NR_newfstatat		293
-
-#endif
-
-#endif /* _UAPI_ASM_S390_UNISTD_H_ */
diff --git a/tools/perf/check-headers.sh b/tools/perf/check-headers.sh
index 51abdb0..790ec25 100755
--- a/tools/perf/check-headers.sh
+++ b/tools/perf/check-headers.sh
@@ -33,7 +33,6 @@ arch/s390/include/uapi/asm/kvm.h
 arch/s390/include/uapi/asm/kvm_perf.h
 arch/s390/include/uapi/asm/ptrace.h
 arch/s390/include/uapi/asm/sie.h
-arch/s390/include/uapi/asm/unistd.h
 arch/arm/include/uapi/asm/kvm.h
 arch/arm64/include/uapi/asm/kvm.h
 arch/alpha/include/uapi/asm/errno.h
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] perf s390: Grab a copy of arch/s390/kernel/syscall/syscall.tbl
  2018-02-08 11:47 [PATCH 0/3] perf s390: Use syscall.tbl to create the perf syscall table Hendrik Brueckner
  2018-02-08 11:47 ` [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h" Hendrik Brueckner
@ 2018-02-08 11:47 ` Hendrik Brueckner
  2018-02-08 11:47 ` [PATCH 3/3] perf s390: Rework system call table creation by using syscall.tbl Hendrik Brueckner
  2 siblings, 0 replies; 6+ messages in thread
From: Hendrik Brueckner @ 2018-02-08 11:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Thomas-Mich Richter, Michael Petlan, Jiri Olsa, linux-perf-users,
	linux-s390, Arnaldo Carvalho de Melo

Grab a copy of the s390 system call table file introduced with
commit 857f46bfb07f53dc112d69bdfb137cc5ec3da7c5 "s390/syscalls:
add system call table".

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com
---
 tools/perf/arch/s390/entry/syscalls/syscall.tbl | 390 ++++++++++++++++++++++++
 1 file changed, 390 insertions(+)
 create mode 100644 tools/perf/arch/s390/entry/syscalls/syscall.tbl

diff --git a/tools/perf/arch/s390/entry/syscalls/syscall.tbl b/tools/perf/arch/s390/entry/syscalls/syscall.tbl
new file mode 100644
index 0000000..b38d484
--- /dev/null
+++ b/tools/perf/arch/s390/entry/syscalls/syscall.tbl
@@ -0,0 +1,390 @@
+# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+#
+# System call table for s390
+#
+# Format:
+#
+# <nr> <abi> <syscall> <entry-64bit> <compat-entry>
+#
+# where <abi> can be common, 64, or 32
+
+1    common	exit			sys_exit			sys_exit
+2    common	fork			sys_fork			sys_fork
+3    common	read			sys_read			compat_sys_s390_read
+4    common	write			sys_write			compat_sys_s390_write
+5    common	open			sys_open			compat_sys_open
+6    common	close			sys_close			sys_close
+7    common	restart_syscall		sys_restart_syscall		sys_restart_syscall
+8    common	creat			sys_creat			compat_sys_creat
+9    common	link			sys_link			compat_sys_link
+10   common	unlink			sys_unlink			compat_sys_unlink
+11   common	execve			sys_execve			compat_sys_execve
+12   common	chdir			sys_chdir			compat_sys_chdir
+13   32		time			-				compat_sys_time
+14   common	mknod			sys_mknod			compat_sys_mknod
+15   common	chmod			sys_chmod			compat_sys_chmod
+16   32		lchown			-				compat_sys_s390_lchown16
+19   common	lseek			sys_lseek			compat_sys_lseek
+20   common	getpid			sys_getpid			sys_getpid
+21   common	mount			sys_mount			compat_sys_mount
+22   common	umount			sys_oldumount			compat_sys_oldumount
+23   32		setuid			-				compat_sys_s390_setuid16
+24   32		getuid			-				compat_sys_s390_getuid16
+25   32		stime			-				compat_sys_stime
+26   common	ptrace			sys_ptrace			compat_sys_ptrace
+27   common	alarm			sys_alarm			sys_alarm
+29   common	pause			sys_pause			sys_pause
+30   common	utime			sys_utime			compat_sys_utime
+33   common	access			sys_access			compat_sys_access
+34   common	nice			sys_nice			sys_nice
+36   common	sync			sys_sync			sys_sync
+37   common	kill			sys_kill			sys_kill
+38   common	rename			sys_rename			compat_sys_rename
+39   common	mkdir			sys_mkdir			compat_sys_mkdir
+40   common	rmdir			sys_rmdir			compat_sys_rmdir
+41   common	dup			sys_dup				sys_dup
+42   common	pipe			sys_pipe			compat_sys_pipe
+43   common	times			sys_times			compat_sys_times
+45   common	brk			sys_brk				compat_sys_brk
+46   32		setgid			-				compat_sys_s390_setgid16
+47   32		getgid			-				compat_sys_s390_getgid16
+48   common	signal			sys_signal			compat_sys_signal
+49   32		geteuid			-				compat_sys_s390_geteuid16
+50   32		getegid			-				compat_sys_s390_getegid16
+51   common	acct			sys_acct			compat_sys_acct
+52   common	umount2			sys_umount			compat_sys_umount
+54   common	ioctl			sys_ioctl			compat_sys_ioctl
+55   common	fcntl			sys_fcntl			compat_sys_fcntl
+57   common	setpgid			sys_setpgid			sys_setpgid
+60   common	umask			sys_umask			sys_umask
+61   common	chroot			sys_chroot			compat_sys_chroot
+62   common	ustat			sys_ustat			compat_sys_ustat
+63   common	dup2			sys_dup2			sys_dup2
+64   common	getppid			sys_getppid			sys_getppid
+65   common	getpgrp			sys_getpgrp			sys_getpgrp
+66   common	setsid			sys_setsid			sys_setsid
+67   common	sigaction		sys_sigaction			compat_sys_sigaction
+70   32		setreuid		-				compat_sys_s390_setreuid16
+71   32		setregid		-				compat_sys_s390_setregid16
+72   common	sigsuspend		sys_sigsuspend			compat_sys_sigsuspend
+73   common	sigpending		sys_sigpending			compat_sys_sigpending
+74   common	sethostname		sys_sethostname			compat_sys_sethostname
+75   common	setrlimit		sys_setrlimit			compat_sys_setrlimit
+76   32		getrlimit		-				compat_sys_old_getrlimit
+77   common	getrusage		sys_getrusage			compat_sys_getrusage
+78   common	gettimeofday		sys_gettimeofday		compat_sys_gettimeofday
+79   common	settimeofday		sys_settimeofday		compat_sys_settimeofday
+80   32		getgroups		-				compat_sys_s390_getgroups16
+81   32		setgroups		-				compat_sys_s390_setgroups16
+83   common	symlink			sys_symlink			compat_sys_symlink
+85   common	readlink		sys_readlink			compat_sys_readlink
+86   common	uselib			sys_uselib			compat_sys_uselib
+87   common	swapon			sys_swapon			compat_sys_swapon
+88   common	reboot			sys_reboot			compat_sys_reboot
+89   common	readdir			-				compat_sys_old_readdir
+90   common	mmap			sys_old_mmap			compat_sys_s390_old_mmap
+91   common	munmap			sys_munmap			compat_sys_munmap
+92   common	truncate		sys_truncate			compat_sys_truncate
+93   common	ftruncate		sys_ftruncate			compat_sys_ftruncate
+94   common	fchmod			sys_fchmod			sys_fchmod
+95   32		fchown			-				compat_sys_s390_fchown16
+96   common	getpriority		sys_getpriority			sys_getpriority
+97   common	setpriority		sys_setpriority			sys_setpriority
+99   common	statfs			sys_statfs			compat_sys_statfs
+100  common	fstatfs			sys_fstatfs			compat_sys_fstatfs
+101  32		ioperm			-				-
+102  common	socketcall		sys_socketcall			compat_sys_socketcall
+103  common	syslog			sys_syslog			compat_sys_syslog
+104  common	setitimer		sys_setitimer			compat_sys_setitimer
+105  common	getitimer		sys_getitimer			compat_sys_getitimer
+106  common	stat			sys_newstat			compat_sys_newstat
+107  common	lstat			sys_newlstat			compat_sys_newlstat
+108  common	fstat			sys_newfstat			compat_sys_newfstat
+110  common	lookup_dcookie		sys_lookup_dcookie		compat_sys_lookup_dcookie
+111  common	vhangup			sys_vhangup			sys_vhangup
+112  common	idle			-				-
+114  common	wait4			sys_wait4			compat_sys_wait4
+115  common	swapoff			sys_swapoff			compat_sys_swapoff
+116  common	sysinfo			sys_sysinfo			compat_sys_sysinfo
+117  common	ipc			sys_s390_ipc			compat_sys_s390_ipc
+118  common	fsync			sys_fsync			sys_fsync
+119  common	sigreturn		sys_sigreturn			compat_sys_sigreturn
+120  common	clone			sys_clone			compat_sys_clone
+121  common	setdomainname		sys_setdomainname		compat_sys_setdomainname
+122  common	uname			sys_newuname			compat_sys_newuname
+124  common	adjtimex		sys_adjtimex			compat_sys_adjtimex
+125  common	mprotect		sys_mprotect			compat_sys_mprotect
+126  common	sigprocmask		sys_sigprocmask			compat_sys_sigprocmask
+127  common	create_module		-				-
+128  common	init_module		sys_init_module			compat_sys_init_module
+129  common	delete_module		sys_delete_module		compat_sys_delete_module
+130  common	get_kernel_syms		-				-
+131  common	quotactl		sys_quotactl			compat_sys_quotactl
+132  common	getpgid			sys_getpgid			sys_getpgid
+133  common	fchdir			sys_fchdir			sys_fchdir
+134  common	bdflush			sys_bdflush			compat_sys_bdflush
+135  common	sysfs			sys_sysfs			compat_sys_sysfs
+136  common	personality		sys_s390_personality		sys_s390_personality
+137  common	afs_syscall		-				-
+138  32		setfsuid		-				compat_sys_s390_setfsuid16
+139  32		setfsgid		-				compat_sys_s390_setfsgid16
+140  32		_llseek			-				compat_sys_llseek
+141  common	getdents		sys_getdents			compat_sys_getdents
+142  32		_newselect		-				compat_sys_select
+142  64		select			sys_select			-
+143  common	flock			sys_flock			sys_flock
+144  common	msync			sys_msync			compat_sys_msync
+145  common	readv			sys_readv			compat_sys_readv
+146  common	writev			sys_writev			compat_sys_writev
+147  common	getsid			sys_getsid			sys_getsid
+148  common	fdatasync		sys_fdatasync			sys_fdatasync
+149  common	_sysctl			sys_sysctl			compat_sys_sysctl
+150  common	mlock			sys_mlock			compat_sys_mlock
+151  common	munlock			sys_munlock			compat_sys_munlock
+152  common	mlockall		sys_mlockall			sys_mlockall
+153  common	munlockall		sys_munlockall			sys_munlockall
+154  common	sched_setparam		sys_sched_setparam		compat_sys_sched_setparam
+155  common	sched_getparam		sys_sched_getparam		compat_sys_sched_getparam
+156  common	sched_setscheduler	sys_sched_setscheduler		compat_sys_sched_setscheduler
+157  common	sched_getscheduler	sys_sched_getscheduler		sys_sched_getscheduler
+158  common	sched_yield		sys_sched_yield			sys_sched_yield
+159  common	sched_get_priority_max	sys_sched_get_priority_max	sys_sched_get_priority_max
+160  common	sched_get_priority_min	sys_sched_get_priority_min	sys_sched_get_priority_min
+161  common	sched_rr_get_interval	sys_sched_rr_get_interval	compat_sys_sched_rr_get_interval
+162  common	nanosleep		sys_nanosleep			compat_sys_nanosleep
+163  common	mremap			sys_mremap			compat_sys_mremap
+164  32		setresuid		-				compat_sys_s390_setresuid16
+165  32		getresuid		-				compat_sys_s390_getresuid16
+167  common	query_module		-				-
+168  common	poll			sys_poll			compat_sys_poll
+169  common	nfsservctl		-				-
+170  32		setresgid		-				compat_sys_s390_setresgid16
+171  32		getresgid		-				compat_sys_s390_getresgid16
+172  common	prctl			sys_prctl			compat_sys_prctl
+173  common	rt_sigreturn		sys_rt_sigreturn		compat_sys_rt_sigreturn
+174  common	rt_sigaction		sys_rt_sigaction		compat_sys_rt_sigaction
+175  common	rt_sigprocmask		sys_rt_sigprocmask		compat_sys_rt_sigprocmask
+176  common	rt_sigpending		sys_rt_sigpending		compat_sys_rt_sigpending
+177  common	rt_sigtimedwait		sys_rt_sigtimedwait		compat_sys_rt_sigtimedwait
+178  common	rt_sigqueueinfo		sys_rt_sigqueueinfo		compat_sys_rt_sigqueueinfo
+179  common	rt_sigsuspend		sys_rt_sigsuspend		compat_sys_rt_sigsuspend
+180  common	pread64			sys_pread64			compat_sys_s390_pread64
+181  common	pwrite64		sys_pwrite64			compat_sys_s390_pwrite64
+182  32		chown			-				compat_sys_s390_chown16
+183  common	getcwd			sys_getcwd			compat_sys_getcwd
+184  common	capget			sys_capget			compat_sys_capget
+185  common	capset			sys_capset			compat_sys_capset
+186  common	sigaltstack		sys_sigaltstack			compat_sys_sigaltstack
+187  common	sendfile		sys_sendfile64			compat_sys_sendfile
+188  common	getpmsg			-				-
+189  common	putpmsg			-				-
+190  common	vfork			sys_vfork			sys_vfork
+191  32		ugetrlimit		-				compat_sys_getrlimit
+191  64		getrlimit		sys_getrlimit			-
+192  32		mmap2			-				compat_sys_s390_mmap2
+193  32		truncate64		-				compat_sys_s390_truncate64
+194  32		ftruncate64		-				compat_sys_s390_ftruncate64
+195  32		stat64			-				compat_sys_s390_stat64
+196  32		lstat64			-				compat_sys_s390_lstat64
+197  32		fstat64			-				compat_sys_s390_fstat64
+198  32		lchown32		-				compat_sys_lchown
+198  64		lchown			sys_lchown			-
+199  32		getuid32		-				sys_getuid
+199  64		getuid			sys_getuid			-
+200  32		getgid32		-				sys_getgid
+200  64		getgid			sys_getgid			-
+201  32		geteuid32		-				sys_geteuid
+201  64		geteuid			sys_geteuid			-
+202  32		getegid32		-				sys_getegid
+202  64		getegid			sys_getegid			-
+203  32		setreuid32		-				sys_setreuid
+203  64		setreuid		sys_setreuid			-
+204  32		setregid32		-				sys_setregid
+204  64		setregid		sys_setregid			-
+205  32		getgroups32		-				compat_sys_getgroups
+205  64		getgroups		sys_getgroups			-
+206  32		setgroups32		-				compat_sys_setgroups
+206  64		setgroups		sys_setgroups			-
+207  32		fchown32		-				sys_fchown
+207  64		fchown			sys_fchown			-
+208  32		setresuid32		-				sys_setresuid
+208  64		setresuid		sys_setresuid			-
+209  32		getresuid32		-				compat_sys_getresuid
+209  64		getresuid		sys_getresuid			-
+210  32		setresgid32		-				sys_setresgid
+210  64		setresgid		sys_setresgid			-
+211  32		getresgid32		-				compat_sys_getresgid
+211  64		getresgid		sys_getresgid			-
+212  32		chown32			-				compat_sys_chown
+212  64		chown			sys_chown			-
+213  32		setuid32		-				sys_setuid
+213  64		setuid			sys_setuid			-
+214  32		setgid32		-				sys_setgid
+214  64		setgid			sys_setgid			-
+215  32		setfsuid32		-				sys_setfsuid
+215  64		setfsuid		sys_setfsuid			-
+216  32		setfsgid32		-				sys_setfsgid
+216  64		setfsgid		sys_setfsgid			-
+217  common	pivot_root		sys_pivot_root			compat_sys_pivot_root
+218  common	mincore			sys_mincore			compat_sys_mincore
+219  common	madvise			sys_madvise			compat_sys_madvise
+220  common	getdents64		sys_getdents64			compat_sys_getdents64
+221  32		fcntl64			-				compat_sys_fcntl64
+222  common	readahead		sys_readahead			compat_sys_s390_readahead
+223  32		sendfile64		-				compat_sys_sendfile64
+224  common	setxattr		sys_setxattr			compat_sys_setxattr
+225  common	lsetxattr		sys_lsetxattr			compat_sys_lsetxattr
+226  common	fsetxattr		sys_fsetxattr			compat_sys_fsetxattr
+227  common	getxattr		sys_getxattr			compat_sys_getxattr
+228  common	lgetxattr		sys_lgetxattr			compat_sys_lgetxattr
+229  common	fgetxattr		sys_fgetxattr			compat_sys_fgetxattr
+230  common	listxattr		sys_listxattr			compat_sys_listxattr
+231  common	llistxattr		sys_llistxattr			compat_sys_llistxattr
+232  common	flistxattr		sys_flistxattr			compat_sys_flistxattr
+233  common	removexattr		sys_removexattr			compat_sys_removexattr
+234  common	lremovexattr		sys_lremovexattr		compat_sys_lremovexattr
+235  common	fremovexattr		sys_fremovexattr		compat_sys_fremovexattr
+236  common	gettid			sys_gettid			sys_gettid
+237  common	tkill			sys_tkill			sys_tkill
+238  common	futex			sys_futex			compat_sys_futex
+239  common	sched_setaffinity	sys_sched_setaffinity		compat_sys_sched_setaffinity
+240  common	sched_getaffinity	sys_sched_getaffinity		compat_sys_sched_getaffinity
+241  common	tgkill			sys_tgkill			sys_tgkill
+243  common	io_setup		sys_io_setup			compat_sys_io_setup
+244  common	io_destroy		sys_io_destroy			compat_sys_io_destroy
+245  common	io_getevents		sys_io_getevents		compat_sys_io_getevents
+246  common	io_submit		sys_io_submit			compat_sys_io_submit
+247  common	io_cancel		sys_io_cancel			compat_sys_io_cancel
+248  common	exit_group		sys_exit_group			sys_exit_group
+249  common	epoll_create		sys_epoll_create		sys_epoll_create
+250  common	epoll_ctl		sys_epoll_ctl			compat_sys_epoll_ctl
+251  common	epoll_wait		sys_epoll_wait			compat_sys_epoll_wait
+252  common	set_tid_address		sys_set_tid_address		compat_sys_set_tid_address
+253  common	fadvise64		sys_fadvise64_64		compat_sys_s390_fadvise64
+254  common	timer_create		sys_timer_create		compat_sys_timer_create
+255  common	timer_settime		sys_timer_settime		compat_sys_timer_settime
+256  common	timer_gettime		sys_timer_gettime		compat_sys_timer_gettime
+257  common	timer_getoverrun	sys_timer_getoverrun		sys_timer_getoverrun
+258  common	timer_delete		sys_timer_delete		sys_timer_delete
+259  common	clock_settime		sys_clock_settime		compat_sys_clock_settime
+260  common	clock_gettime		sys_clock_gettime		compat_sys_clock_gettime
+261  common	clock_getres		sys_clock_getres		compat_sys_clock_getres
+262  common	clock_nanosleep		sys_clock_nanosleep		compat_sys_clock_nanosleep
+264  32		fadvise64_64		-				compat_sys_s390_fadvise64_64
+265  common	statfs64		sys_statfs64			compat_sys_statfs64
+266  common	fstatfs64		sys_fstatfs64			compat_sys_fstatfs64
+267  common	remap_file_pages	sys_remap_file_pages		compat_sys_remap_file_pages
+268  common	mbind			sys_mbind			compat_sys_mbind
+269  common	get_mempolicy		sys_get_mempolicy		compat_sys_get_mempolicy
+270  common	set_mempolicy		sys_set_mempolicy		compat_sys_set_mempolicy
+271  common	mq_open			sys_mq_open			compat_sys_mq_open
+272  common	mq_unlink		sys_mq_unlink			compat_sys_mq_unlink
+273  common	mq_timedsend		sys_mq_timedsend		compat_sys_mq_timedsend
+274  common	mq_timedreceive		sys_mq_timedreceive		compat_sys_mq_timedreceive
+275  common	mq_notify		sys_mq_notify			compat_sys_mq_notify
+276  common	mq_getsetattr		sys_mq_getsetattr		compat_sys_mq_getsetattr
+277  common	kexec_load		sys_kexec_load			compat_sys_kexec_load
+278  common	add_key			sys_add_key			compat_sys_add_key
+279  common	request_key		sys_request_key			compat_sys_request_key
+280  common	keyctl			sys_keyctl			compat_sys_keyctl
+281  common	waitid			sys_waitid			compat_sys_waitid
+282  common	ioprio_set		sys_ioprio_set			sys_ioprio_set
+283  common	ioprio_get		sys_ioprio_get			sys_ioprio_get
+284  common	inotify_init		sys_inotify_init		sys_inotify_init
+285  common	inotify_add_watch	sys_inotify_add_watch		compat_sys_inotify_add_watch
+286  common	inotify_rm_watch	sys_inotify_rm_watch		sys_inotify_rm_watch
+287  common	migrate_pages		sys_migrate_pages		compat_sys_migrate_pages
+288  common	openat			sys_openat			compat_sys_openat
+289  common	mkdirat			sys_mkdirat			compat_sys_mkdirat
+290  common	mknodat			sys_mknodat			compat_sys_mknodat
+291  common	fchownat		sys_fchownat			compat_sys_fchownat
+292  common	futimesat		sys_futimesat			compat_sys_futimesat
+293  32		fstatat64		-				compat_sys_s390_fstatat64
+293  64		newfstatat		sys_newfstatat			-
+294  common	unlinkat		sys_unlinkat			compat_sys_unlinkat
+295  common	renameat		sys_renameat			compat_sys_renameat
+296  common	linkat			sys_linkat			compat_sys_linkat
+297  common	symlinkat		sys_symlinkat			compat_sys_symlinkat
+298  common	readlinkat		sys_readlinkat			compat_sys_readlinkat
+299  common	fchmodat		sys_fchmodat			compat_sys_fchmodat
+300  common	faccessat		sys_faccessat			compat_sys_faccessat
+301  common	pselect6		sys_pselect6			compat_sys_pselect6
+302  common	ppoll			sys_ppoll			compat_sys_ppoll
+303  common	unshare			sys_unshare			compat_sys_unshare
+304  common	set_robust_list		sys_set_robust_list		compat_sys_set_robust_list
+305  common	get_robust_list		sys_get_robust_list		compat_sys_get_robust_list
+306  common	splice			sys_splice			compat_sys_splice
+307  common	sync_file_range		sys_sync_file_range		compat_sys_s390_sync_file_range
+308  common	tee			sys_tee				compat_sys_tee
+309  common	vmsplice		sys_vmsplice			compat_sys_vmsplice
+310  common	move_pages		sys_move_pages			compat_sys_move_pages
+311  common	getcpu			sys_getcpu			compat_sys_getcpu
+312  common	epoll_pwait		sys_epoll_pwait			compat_sys_epoll_pwait
+313  common	utimes			sys_utimes			compat_sys_utimes
+314  common	fallocate		sys_fallocate			compat_sys_s390_fallocate
+315  common	utimensat		sys_utimensat			compat_sys_utimensat
+316  common	signalfd		sys_signalfd			compat_sys_signalfd
+317  common	timerfd			-				-
+318  common	eventfd			sys_eventfd			sys_eventfd
+319  common	timerfd_create		sys_timerfd_create		sys_timerfd_create
+320  common	timerfd_settime		sys_timerfd_settime		compat_sys_timerfd_settime
+321  common	timerfd_gettime		sys_timerfd_gettime		compat_sys_timerfd_gettime
+322  common	signalfd4		sys_signalfd4			compat_sys_signalfd4
+323  common	eventfd2		sys_eventfd2			sys_eventfd2
+324  common	inotify_init1		sys_inotify_init1		sys_inotify_init1
+325  common	pipe2			sys_pipe2			compat_sys_pipe2
+326  common	dup3			sys_dup3			sys_dup3
+327  common	epoll_create1		sys_epoll_create1		sys_epoll_create1
+328  common	preadv			sys_preadv			compat_sys_preadv
+329  common	pwritev			sys_pwritev			compat_sys_pwritev
+330  common	rt_tgsigqueueinfo	sys_rt_tgsigqueueinfo		compat_sys_rt_tgsigqueueinfo
+331  common	perf_event_open		sys_perf_event_open		compat_sys_perf_event_open
+332  common	fanotify_init		sys_fanotify_init		sys_fanotify_init
+333  common	fanotify_mark		sys_fanotify_mark		compat_sys_fanotify_mark
+334  common	prlimit64		sys_prlimit64			compat_sys_prlimit64
+335  common	name_to_handle_at	sys_name_to_handle_at		compat_sys_name_to_handle_at
+336  common	open_by_handle_at	sys_open_by_handle_at		compat_sys_open_by_handle_at
+337  common	clock_adjtime		sys_clock_adjtime		compat_sys_clock_adjtime
+338  common	syncfs			sys_syncfs			sys_syncfs
+339  common	setns			sys_setns			sys_setns
+340  common	process_vm_readv	sys_process_vm_readv		compat_sys_process_vm_readv
+341  common	process_vm_writev	sys_process_vm_writev		compat_sys_process_vm_writev
+342  common	s390_runtime_instr	sys_s390_runtime_instr		sys_s390_runtime_instr
+343  common	kcmp			sys_kcmp			compat_sys_kcmp
+344  common	finit_module		sys_finit_module		compat_sys_finit_module
+345  common	sched_setattr		sys_sched_setattr		compat_sys_sched_setattr
+346  common	sched_getattr		sys_sched_getattr		compat_sys_sched_getattr
+347  common	renameat2		sys_renameat2			compat_sys_renameat2
+348  common	seccomp			sys_seccomp			compat_sys_seccomp
+349  common	getrandom		sys_getrandom			compat_sys_getrandom
+350  common	memfd_create		sys_memfd_create		compat_sys_memfd_create
+351  common	bpf			sys_bpf				compat_sys_bpf
+352  common	s390_pci_mmio_write	sys_s390_pci_mmio_write		compat_sys_s390_pci_mmio_write
+353  common	s390_pci_mmio_read	sys_s390_pci_mmio_read		compat_sys_s390_pci_mmio_read
+354  common	execveat		sys_execveat			compat_sys_execveat
+355  common	userfaultfd		sys_userfaultfd			sys_userfaultfd
+356  common	membarrier		sys_membarrier			sys_membarrier
+357  common	recvmmsg		sys_recvmmsg			compat_sys_recvmmsg
+358  common	sendmmsg		sys_sendmmsg			compat_sys_sendmmsg
+359  common	socket			sys_socket			sys_socket
+360  common	socketpair		sys_socketpair			compat_sys_socketpair
+361  common	bind			sys_bind			compat_sys_bind
+362  common	connect			sys_connect			compat_sys_connect
+363  common	listen			sys_listen			sys_listen
+364  common	accept4			sys_accept4			compat_sys_accept4
+365  common	getsockopt		sys_getsockopt			compat_sys_getsockopt
+366  common	setsockopt		sys_setsockopt			compat_sys_setsockopt
+367  common	getsockname		sys_getsockname			compat_sys_getsockname
+368  common	getpeername		sys_getpeername			compat_sys_getpeername
+369  common	sendto			sys_sendto			compat_sys_sendto
+370  common	sendmsg			sys_sendmsg			compat_sys_sendmsg
+371  common	recvfrom		sys_recvfrom			compat_sys_recvfrom
+372  common	recvmsg			sys_recvmsg			compat_sys_recvmsg
+373  common	shutdown		sys_shutdown			sys_shutdown
+374  common	mlock2			sys_mlock2			compat_sys_mlock2
+375  common	copy_file_range		sys_copy_file_range		compat_sys_copy_file_range
+376  common	preadv2			sys_preadv2			compat_sys_preadv2
+377  common	pwritev2		sys_pwritev2			compat_sys_pwritev2
+378  common	s390_guarded_storage	sys_s390_guarded_storage	compat_sys_s390_guarded_storage
+379  common	statx			sys_statx			compat_sys_statx
+380  common	s390_sthyi		sys_s390_sthyi			compat_sys_s390_sthyi
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] perf s390: Rework system call table creation by using syscall.tbl
  2018-02-08 11:47 [PATCH 0/3] perf s390: Use syscall.tbl to create the perf syscall table Hendrik Brueckner
  2018-02-08 11:47 ` [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h" Hendrik Brueckner
  2018-02-08 11:47 ` [PATCH 2/3] perf s390: Grab a copy of arch/s390/kernel/syscall/syscall.tbl Hendrik Brueckner
@ 2018-02-08 11:47 ` Hendrik Brueckner
  2 siblings, 0 replies; 6+ messages in thread
From: Hendrik Brueckner @ 2018-02-08 11:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Thomas-Mich Richter, Michael Petlan, Jiri Olsa, linux-perf-users,
	linux-s390, Arnaldo Carvalho de Melo

Recently, s390 uses a syscall.tbl input file to generate its system
call table and unistd uapi header files.  Hence, update mksyscalltbl
to use it as input to create the system table for perf.

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com
---
 tools/perf/arch/s390/Makefile                    | 10 +++++++---
 tools/perf/arch/s390/entry/syscalls/mksyscalltbl | 18 +++++++-----------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/tools/perf/arch/s390/Makefile b/tools/perf/arch/s390/Makefile
index 48228de..dfa6e31 100644
--- a/tools/perf/arch/s390/Makefile
+++ b/tools/perf/arch/s390/Makefile
@@ -10,15 +10,19 @@ PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
 
 out    := $(OUTPUT)arch/s390/include/generated/asm
 header := $(out)/syscalls_64.c
-sysdef := $(srctree)/tools/arch/s390/include/uapi/asm/unistd.h
-sysprf := $(srctree)/tools/perf/arch/s390/entry/syscalls/
+syskrn := $(srctree)/arch/s390/kernel/syscalls/syscall.tbl
+sysprf := $(srctree)/tools/perf/arch/s390/entry/syscalls
+sysdef := $(sysprf)/syscall.tbl
 systbl := $(sysprf)/mksyscalltbl
 
 # Create output directory if not already present
 _dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
 
 $(header): $(sysdef) $(systbl)
-	$(Q)$(SHELL) '$(systbl)' '$(CC)' $(sysdef) > $@
+	@(test -d ../../kernel -a -d ../../tools -a -d ../perf && ( \
+        (diff -B $(sysdef) $(syskrn) >/dev/null) \
+        || echo "Warning: Kernel ABI header at '$(sysdef)' differs from latest version at '$(syskrn)'" >&2 )) || true
+	$(Q)$(SHELL) '$(systbl)' $(sysdef) > $@
 
 clean::
 	$(call QUIET_CLEAN, s390) $(RM) $(header)
diff --git a/tools/perf/arch/s390/entry/syscalls/mksyscalltbl b/tools/perf/arch/s390/entry/syscalls/mksyscalltbl
index 7fa0d0a..72ecbb6 100755
--- a/tools/perf/arch/s390/entry/syscalls/mksyscalltbl
+++ b/tools/perf/arch/s390/entry/syscalls/mksyscalltbl
@@ -3,25 +3,23 @@
 #
 # Generate system call table for perf
 #
-#
-# Copyright IBM Corp. 2017
+# Copyright IBM Corp. 2017, 2018
 # Author(s):  Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
 #
 
-gcc=$1
-input=$2
+SYSCALL_TBL=$1
 
-if ! test -r $input; then
+if ! test -r $SYSCALL_TBL; then
 	echo "Could not read input file" >&2
 	exit 1
 fi
 
 create_table()
 {
-	local max_nr
+	local max_nr nr abi sc discard
 
 	echo 'static const char *syscalltbl_s390_64[] = {'
-	while read sc nr; do
+	while read nr abi sc discard; do
 		printf '\t[%d] = "%s",\n' $nr $sc
 		max_nr=$nr
 	done
@@ -29,8 +27,6 @@ create_table()
 	echo "#define SYSCALLTBL_S390_64_MAX_ID $max_nr"
 }
 
-
-$gcc -m64 -E -dM -x c  $input	       \
-	|sed -ne 's/^#define __NR_//p' \
-	|sort -t' ' -k2 -nu	       \
+grep -E "^[[:digit:]]+[[:space:]]+(common|64)" $SYSCALL_TBL	\
+	|sort -k1 -n					\
 	|create_table
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h"
  2018-02-08 11:47 ` [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h" Hendrik Brueckner
@ 2018-02-15 13:05   ` Arnaldo Carvalho de Melo
  2018-02-15 13:37     ` Hendrik Brueckner
  0 siblings, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-02-15 13:05 UTC (permalink / raw)
  To: Hendrik Brueckner
  Cc: Thomas-Mich Richter, Michael Petlan, Jiri Olsa, linux-perf-users,
	linux-s390, Arnaldo Carvalho de Melo

Em Thu, Feb 08, 2018 at 12:47:48PM +0100, Hendrik Brueckner escreveu:
> This reverts commit f120c7b187e6c418238710b48723ce141f467543 which is no
> longer required with the introduction of a syscall.tbl on s390.

I'm applying this now, but putting this 1/3 patch, i.e. the first in
this series, to be the last, as only after applying "perf s390: Rework
system call table creation by using syscall.tbl" is that we can remove
the unistd.h copy, right?

- Arnaldo
 
> Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> ---
>  tools/arch/s390/include/uapi/asm/unistd.h | 412 ------------------------------
>  tools/perf/check-headers.sh               |   1 -
>  2 files changed, 413 deletions(-)
>  delete mode 100644 tools/arch/s390/include/uapi/asm/unistd.h
> 
> diff --git a/tools/arch/s390/include/uapi/asm/unistd.h b/tools/arch/s390/include/uapi/asm/unistd.h
> deleted file mode 100644
> index 7251209..0000000
> --- a/tools/arch/s390/include/uapi/asm/unistd.h
> +++ /dev/null
> @@ -1,412 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> -/*
> - *  S390 version
> - *
> - *  Derived from "include/asm-i386/unistd.h"
> - */
> -
> -#ifndef _UAPI_ASM_S390_UNISTD_H_
> -#define _UAPI_ASM_S390_UNISTD_H_
> -
> -/*
> - * This file contains the system call numbers.
> - */
> -
> -#define __NR_exit                 1
> -#define __NR_fork                 2
> -#define __NR_read                 3
> -#define __NR_write                4
> -#define __NR_open                 5
> -#define __NR_close                6
> -#define __NR_restart_syscall	  7
> -#define __NR_creat                8
> -#define __NR_link                 9
> -#define __NR_unlink              10
> -#define __NR_execve              11
> -#define __NR_chdir               12
> -#define __NR_mknod               14
> -#define __NR_chmod               15
> -#define __NR_lseek               19
> -#define __NR_getpid              20
> -#define __NR_mount               21
> -#define __NR_umount              22
> -#define __NR_ptrace              26
> -#define __NR_alarm               27
> -#define __NR_pause               29
> -#define __NR_utime               30
> -#define __NR_access              33
> -#define __NR_nice                34
> -#define __NR_sync                36
> -#define __NR_kill                37
> -#define __NR_rename              38
> -#define __NR_mkdir               39
> -#define __NR_rmdir               40
> -#define __NR_dup                 41
> -#define __NR_pipe                42
> -#define __NR_times               43
> -#define __NR_brk                 45
> -#define __NR_signal              48
> -#define __NR_acct                51
> -#define __NR_umount2             52
> -#define __NR_ioctl               54
> -#define __NR_fcntl               55
> -#define __NR_setpgid             57
> -#define __NR_umask               60
> -#define __NR_chroot              61
> -#define __NR_ustat               62
> -#define __NR_dup2                63
> -#define __NR_getppid             64
> -#define __NR_getpgrp             65
> -#define __NR_setsid              66
> -#define __NR_sigaction           67
> -#define __NR_sigsuspend          72
> -#define __NR_sigpending          73
> -#define __NR_sethostname         74
> -#define __NR_setrlimit           75
> -#define __NR_getrusage           77
> -#define __NR_gettimeofday        78
> -#define __NR_settimeofday        79
> -#define __NR_symlink             83
> -#define __NR_readlink            85
> -#define __NR_uselib              86
> -#define __NR_swapon              87
> -#define __NR_reboot              88
> -#define __NR_readdir             89
> -#define __NR_mmap                90
> -#define __NR_munmap              91
> -#define __NR_truncate            92
> -#define __NR_ftruncate           93
> -#define __NR_fchmod              94
> -#define __NR_getpriority         96
> -#define __NR_setpriority         97
> -#define __NR_statfs              99
> -#define __NR_fstatfs            100
> -#define __NR_socketcall         102
> -#define __NR_syslog             103
> -#define __NR_setitimer          104
> -#define __NR_getitimer          105
> -#define __NR_stat               106
> -#define __NR_lstat              107
> -#define __NR_fstat              108
> -#define __NR_lookup_dcookie     110
> -#define __NR_vhangup            111
> -#define __NR_idle               112
> -#define __NR_wait4              114
> -#define __NR_swapoff            115
> -#define __NR_sysinfo            116
> -#define __NR_ipc                117
> -#define __NR_fsync              118
> -#define __NR_sigreturn          119
> -#define __NR_clone              120
> -#define __NR_setdomainname      121
> -#define __NR_uname              122
> -#define __NR_adjtimex           124
> -#define __NR_mprotect           125
> -#define __NR_sigprocmask        126
> -#define __NR_create_module      127
> -#define __NR_init_module        128
> -#define __NR_delete_module      129
> -#define __NR_get_kernel_syms    130
> -#define __NR_quotactl           131
> -#define __NR_getpgid            132
> -#define __NR_fchdir             133
> -#define __NR_bdflush            134
> -#define __NR_sysfs              135
> -#define __NR_personality        136
> -#define __NR_afs_syscall        137 /* Syscall for Andrew File System */
> -#define __NR_getdents           141
> -#define __NR_flock              143
> -#define __NR_msync              144
> -#define __NR_readv              145
> -#define __NR_writev             146
> -#define __NR_getsid             147
> -#define __NR_fdatasync          148
> -#define __NR__sysctl            149
> -#define __NR_mlock              150
> -#define __NR_munlock            151
> -#define __NR_mlockall           152
> -#define __NR_munlockall         153
> -#define __NR_sched_setparam             154
> -#define __NR_sched_getparam             155
> -#define __NR_sched_setscheduler         156
> -#define __NR_sched_getscheduler         157
> -#define __NR_sched_yield                158
> -#define __NR_sched_get_priority_max     159
> -#define __NR_sched_get_priority_min     160
> -#define __NR_sched_rr_get_interval      161
> -#define __NR_nanosleep          162
> -#define __NR_mremap             163
> -#define __NR_query_module       167
> -#define __NR_poll               168
> -#define __NR_nfsservctl         169
> -#define __NR_prctl              172
> -#define __NR_rt_sigreturn       173
> -#define __NR_rt_sigaction       174
> -#define __NR_rt_sigprocmask     175
> -#define __NR_rt_sigpending      176
> -#define __NR_rt_sigtimedwait    177
> -#define __NR_rt_sigqueueinfo    178
> -#define __NR_rt_sigsuspend      179
> -#define __NR_pread64            180
> -#define __NR_pwrite64           181
> -#define __NR_getcwd             183
> -#define __NR_capget             184
> -#define __NR_capset             185
> -#define __NR_sigaltstack        186
> -#define __NR_sendfile           187
> -#define __NR_getpmsg		188
> -#define __NR_putpmsg		189
> -#define __NR_vfork		190
> -#define __NR_pivot_root         217
> -#define __NR_mincore            218
> -#define __NR_madvise            219
> -#define __NR_getdents64		220
> -#define __NR_readahead		222
> -#define __NR_setxattr		224
> -#define __NR_lsetxattr		225
> -#define __NR_fsetxattr		226
> -#define __NR_getxattr		227
> -#define __NR_lgetxattr		228
> -#define __NR_fgetxattr		229
> -#define __NR_listxattr		230
> -#define __NR_llistxattr		231
> -#define __NR_flistxattr		232
> -#define __NR_removexattr	233
> -#define __NR_lremovexattr	234
> -#define __NR_fremovexattr	235
> -#define __NR_gettid		236
> -#define __NR_tkill		237
> -#define __NR_futex		238
> -#define __NR_sched_setaffinity	239
> -#define __NR_sched_getaffinity	240
> -#define __NR_tgkill		241
> -/* Number 242 is reserved for tux */
> -#define __NR_io_setup		243
> -#define __NR_io_destroy		244
> -#define __NR_io_getevents	245
> -#define __NR_io_submit		246
> -#define __NR_io_cancel		247
> -#define __NR_exit_group		248
> -#define __NR_epoll_create	249
> -#define __NR_epoll_ctl		250
> -#define __NR_epoll_wait		251
> -#define __NR_set_tid_address	252
> -#define __NR_fadvise64		253
> -#define __NR_timer_create	254
> -#define __NR_timer_settime	255
> -#define __NR_timer_gettime	256
> -#define __NR_timer_getoverrun	257
> -#define __NR_timer_delete	258
> -#define __NR_clock_settime	259
> -#define __NR_clock_gettime	260
> -#define __NR_clock_getres	261
> -#define __NR_clock_nanosleep	262
> -/* Number 263 is reserved for vserver */
> -#define __NR_statfs64		265
> -#define __NR_fstatfs64		266
> -#define __NR_remap_file_pages	267
> -#define __NR_mbind		268
> -#define __NR_get_mempolicy	269
> -#define __NR_set_mempolicy	270
> -#define __NR_mq_open		271
> -#define __NR_mq_unlink		272
> -#define __NR_mq_timedsend	273
> -#define __NR_mq_timedreceive	274
> -#define __NR_mq_notify		275
> -#define __NR_mq_getsetattr	276
> -#define __NR_kexec_load		277
> -#define __NR_add_key		278
> -#define __NR_request_key	279
> -#define __NR_keyctl		280
> -#define __NR_waitid		281
> -#define __NR_ioprio_set		282
> -#define __NR_ioprio_get		283
> -#define __NR_inotify_init	284
> -#define __NR_inotify_add_watch	285
> -#define __NR_inotify_rm_watch	286
> -#define __NR_migrate_pages	287
> -#define __NR_openat		288
> -#define __NR_mkdirat		289
> -#define __NR_mknodat		290
> -#define __NR_fchownat		291
> -#define __NR_futimesat		292
> -#define __NR_unlinkat		294
> -#define __NR_renameat		295
> -#define __NR_linkat		296
> -#define __NR_symlinkat		297
> -#define __NR_readlinkat		298
> -#define __NR_fchmodat		299
> -#define __NR_faccessat		300
> -#define __NR_pselect6		301
> -#define __NR_ppoll		302
> -#define __NR_unshare		303
> -#define __NR_set_robust_list	304
> -#define __NR_get_robust_list	305
> -#define __NR_splice		306
> -#define __NR_sync_file_range	307
> -#define __NR_tee		308
> -#define __NR_vmsplice		309
> -#define __NR_move_pages		310
> -#define __NR_getcpu		311
> -#define __NR_epoll_pwait	312
> -#define __NR_utimes		313
> -#define __NR_fallocate		314
> -#define __NR_utimensat		315
> -#define __NR_signalfd		316
> -#define __NR_timerfd		317
> -#define __NR_eventfd		318
> -#define __NR_timerfd_create	319
> -#define __NR_timerfd_settime	320
> -#define __NR_timerfd_gettime	321
> -#define __NR_signalfd4		322
> -#define __NR_eventfd2		323
> -#define __NR_inotify_init1	324
> -#define __NR_pipe2		325
> -#define __NR_dup3		326
> -#define __NR_epoll_create1	327
> -#define	__NR_preadv		328
> -#define	__NR_pwritev		329
> -#define __NR_rt_tgsigqueueinfo	330
> -#define __NR_perf_event_open	331
> -#define __NR_fanotify_init	332
> -#define __NR_fanotify_mark	333
> -#define __NR_prlimit64		334
> -#define __NR_name_to_handle_at	335
> -#define __NR_open_by_handle_at	336
> -#define __NR_clock_adjtime	337
> -#define __NR_syncfs		338
> -#define __NR_setns		339
> -#define __NR_process_vm_readv	340
> -#define __NR_process_vm_writev	341
> -#define __NR_s390_runtime_instr 342
> -#define __NR_kcmp		343
> -#define __NR_finit_module	344
> -#define __NR_sched_setattr	345
> -#define __NR_sched_getattr	346
> -#define __NR_renameat2		347
> -#define __NR_seccomp		348
> -#define __NR_getrandom		349
> -#define __NR_memfd_create	350
> -#define __NR_bpf		351
> -#define __NR_s390_pci_mmio_write	352
> -#define __NR_s390_pci_mmio_read		353
> -#define __NR_execveat		354
> -#define __NR_userfaultfd	355
> -#define __NR_membarrier		356
> -#define __NR_recvmmsg		357
> -#define __NR_sendmmsg		358
> -#define __NR_socket		359
> -#define __NR_socketpair		360
> -#define __NR_bind		361
> -#define __NR_connect		362
> -#define __NR_listen		363
> -#define __NR_accept4		364
> -#define __NR_getsockopt		365
> -#define __NR_setsockopt		366
> -#define __NR_getsockname	367
> -#define __NR_getpeername	368
> -#define __NR_sendto		369
> -#define __NR_sendmsg		370
> -#define __NR_recvfrom		371
> -#define __NR_recvmsg		372
> -#define __NR_shutdown		373
> -#define __NR_mlock2		374
> -#define __NR_copy_file_range	375
> -#define __NR_preadv2		376
> -#define __NR_pwritev2		377
> -#define __NR_s390_guarded_storage	378
> -#define __NR_statx		379
> -#define __NR_s390_sthyi		380
> -#define NR_syscalls 381
> -
> -/* 
> - * There are some system calls that are not present on 64 bit, some
> - * have a different name although they do the same (e.g. __NR_chown32
> - * is __NR_chown on 64 bit).
> - */
> -#ifndef __s390x__
> -
> -#define __NR_time		 13
> -#define __NR_lchown		 16
> -#define __NR_setuid		 23
> -#define __NR_getuid		 24
> -#define __NR_stime		 25
> -#define __NR_setgid		 46
> -#define __NR_getgid		 47
> -#define __NR_geteuid		 49
> -#define __NR_getegid		 50
> -#define __NR_setreuid		 70
> -#define __NR_setregid		 71
> -#define __NR_getrlimit		 76
> -#define __NR_getgroups		 80
> -#define __NR_setgroups		 81
> -#define __NR_fchown		 95
> -#define __NR_ioperm		101
> -#define __NR_setfsuid		138
> -#define __NR_setfsgid		139
> -#define __NR__llseek		140
> -#define __NR__newselect 	142
> -#define __NR_setresuid		164
> -#define __NR_getresuid		165
> -#define __NR_setresgid		170
> -#define __NR_getresgid		171
> -#define __NR_chown		182
> -#define __NR_ugetrlimit		191	/* SuS compliant getrlimit */
> -#define __NR_mmap2		192
> -#define __NR_truncate64		193
> -#define __NR_ftruncate64	194
> -#define __NR_stat64		195
> -#define __NR_lstat64		196
> -#define __NR_fstat64		197
> -#define __NR_lchown32		198
> -#define __NR_getuid32		199
> -#define __NR_getgid32		200
> -#define __NR_geteuid32		201
> -#define __NR_getegid32		202
> -#define __NR_setreuid32		203
> -#define __NR_setregid32		204
> -#define __NR_getgroups32	205
> -#define __NR_setgroups32	206
> -#define __NR_fchown32		207
> -#define __NR_setresuid32	208
> -#define __NR_getresuid32	209
> -#define __NR_setresgid32	210
> -#define __NR_getresgid32	211
> -#define __NR_chown32		212
> -#define __NR_setuid32		213
> -#define __NR_setgid32		214
> -#define __NR_setfsuid32		215
> -#define __NR_setfsgid32		216
> -#define __NR_fcntl64		221
> -#define __NR_sendfile64		223
> -#define __NR_fadvise64_64	264
> -#define __NR_fstatat64		293
> -
> -#else
> -
> -#define __NR_select		142
> -#define __NR_getrlimit		191	/* SuS compliant getrlimit */
> -#define __NR_lchown  		198
> -#define __NR_getuid  		199
> -#define __NR_getgid  		200
> -#define __NR_geteuid  		201
> -#define __NR_getegid  		202
> -#define __NR_setreuid  		203
> -#define __NR_setregid  		204
> -#define __NR_getgroups  	205
> -#define __NR_setgroups  	206
> -#define __NR_fchown  		207
> -#define __NR_setresuid  	208
> -#define __NR_getresuid  	209
> -#define __NR_setresgid  	210
> -#define __NR_getresgid  	211
> -#define __NR_chown  		212
> -#define __NR_setuid  		213
> -#define __NR_setgid  		214
> -#define __NR_setfsuid  		215
> -#define __NR_setfsgid  		216
> -#define __NR_newfstatat		293
> -
> -#endif
> -
> -#endif /* _UAPI_ASM_S390_UNISTD_H_ */
> diff --git a/tools/perf/check-headers.sh b/tools/perf/check-headers.sh
> index 51abdb0..790ec25 100755
> --- a/tools/perf/check-headers.sh
> +++ b/tools/perf/check-headers.sh
> @@ -33,7 +33,6 @@ arch/s390/include/uapi/asm/kvm.h
>  arch/s390/include/uapi/asm/kvm_perf.h
>  arch/s390/include/uapi/asm/ptrace.h
>  arch/s390/include/uapi/asm/sie.h
> -arch/s390/include/uapi/asm/unistd.h
>  arch/arm/include/uapi/asm/kvm.h
>  arch/arm64/include/uapi/asm/kvm.h
>  arch/alpha/include/uapi/asm/errno.h
> -- 
> 1.8.3.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h"
  2018-02-15 13:05   ` Arnaldo Carvalho de Melo
@ 2018-02-15 13:37     ` Hendrik Brueckner
  0 siblings, 0 replies; 6+ messages in thread
From: Hendrik Brueckner @ 2018-02-15 13:37 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Hendrik Brueckner, Thomas-Mich Richter, Michael Petlan,
	Jiri Olsa, linux-perf-users, linux-s390,
	Arnaldo Carvalho de Melo

On Thu, Feb 15, 2018 at 10:05:35AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Feb 08, 2018 at 12:47:48PM +0100, Hendrik Brueckner escreveu:
> > This reverts commit f120c7b187e6c418238710b48723ce141f467543 which is no
> > longer required with the introduction of a syscall.tbl on s390.
> 
> I'm applying this now, but putting this 1/3 patch, i.e. the first in
> this series, to be the last, as only after applying "perf s390: Rework
> system call table creation by using syscall.tbl" is that we can remove
> the unistd.h copy, right?

Correct.  After patches 2 and 3, the unistd.h copy is no longer used.

Thanks for that reordering.

- Hendrik

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-02-15 13:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-08 11:47 [PATCH 0/3] perf s390: Use syscall.tbl to create the perf syscall table Hendrik Brueckner
2018-02-08 11:47 ` [PATCH 1/3] Revert "tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h" Hendrik Brueckner
2018-02-15 13:05   ` Arnaldo Carvalho de Melo
2018-02-15 13:37     ` Hendrik Brueckner
2018-02-08 11:47 ` [PATCH 2/3] perf s390: Grab a copy of arch/s390/kernel/syscall/syscall.tbl Hendrik Brueckner
2018-02-08 11:47 ` [PATCH 3/3] perf s390: Rework system call table creation by using syscall.tbl Hendrik Brueckner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.