mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 16:37:50 +00:00
tools headers API: Update faccessat2 affected files
Update the copies of files affected by:
c8ffd8bcdd
("vfs: add faccessat2 syscall")
To address this perf build warning:
Warning: Kernel ABI header at 'tools/include/uapi/linux/fcntl.h' differs from latest version at 'include/uapi/linux/fcntl.h'
diff -u tools/include/uapi/linux/fcntl.h include/uapi/linux/fcntl.h
Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/unistd.h' differs from latest version at 'include/uapi/asm-generic/unistd.h'
diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h
Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl'
diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
Which results in 'perf trace' gaining support for the 'faccessat2'
syscall, now one can use:
# perf trace -e faccessat2
And have system wide tracing of this syscall. And this also will include
it;
# perf trace -e faccess*
Together with the other variants.
How it affects building/usage (on an x86_64 system):
$ cp /tmp/build/perf/arch/x86/include/generated/asm/syscalls_64.c /tmp/syscalls_64.c.before
$
[root@five ~]# perf trace -e faccessat2
event syntax error: 'faccessat2'
\___ parser error
Run 'perf list' for a list of valid events
Usage: perf trace [<options>] [<command>]
or: perf trace [<options>] -- <command> [<options>]
or: perf trace record [<options>] [<command>]
or: perf trace record [<options>] -- <command> [<options>]
-e, --event <event> event/syscall selector. use 'perf list' to list available events
[root@five ~]#
$ cp arch/x86/entry/syscalls/syscall_64.tbl tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
$ git diff
diff --git a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
index 37b844f839bc..78847b32e137 100644
--- a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
@@ -359,6 +359,7 @@
435 common clone3 sys_clone3
437 common openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd
+439 common faccessat2 sys_faccessat2
#
# x32-specific system call numbers start at 512 to avoid cache impact
$
$ make -C tools/perf O=/tmp/build/perf/ install-bin
<SNIP>
CC /tmp/build/perf/util/syscalltbl.o
LD /tmp/build/perf/util/perf-in.o
LD /tmp/build/perf/perf-in.o
LINK /tmp/build/perf/perf
<SNIP>
[root@five ~]# perf trace -e faccessat2
^C[root@five ~]#
Cc: Miklos Szeredi <mszeredi@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
abfbb29297
commit
6c3c184fc4
3 changed files with 14 additions and 1 deletions
|
@ -855,9 +855,11 @@ __SYSCALL(__NR_clone3, sys_clone3)
|
||||||
__SYSCALL(__NR_openat2, sys_openat2)
|
__SYSCALL(__NR_openat2, sys_openat2)
|
||||||
#define __NR_pidfd_getfd 438
|
#define __NR_pidfd_getfd 438
|
||||||
__SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
|
__SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
|
||||||
|
#define __NR_faccessat2 439
|
||||||
|
__SYSCALL(__NR_faccessat2, sys_faccessat2)
|
||||||
|
|
||||||
#undef __NR_syscalls
|
#undef __NR_syscalls
|
||||||
#define __NR_syscalls 439
|
#define __NR_syscalls 440
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 32 bit systems traditionally used different
|
* 32 bit systems traditionally used different
|
||||||
|
|
|
@ -84,10 +84,20 @@
|
||||||
#define DN_ATTRIB 0x00000020 /* File changed attibutes */
|
#define DN_ATTRIB 0x00000020 /* File changed attibutes */
|
||||||
#define DN_MULTISHOT 0x80000000 /* Don't remove notifier */
|
#define DN_MULTISHOT 0x80000000 /* Don't remove notifier */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS is
|
||||||
|
* meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to
|
||||||
|
* unlinkat. The two functions do completely different things and therefore,
|
||||||
|
* the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to
|
||||||
|
* faccessat would be undefined behavior and thus treating it equivalent to
|
||||||
|
* AT_EACCESS is valid undefined behavior.
|
||||||
|
*/
|
||||||
#define AT_FDCWD -100 /* Special value used to indicate
|
#define AT_FDCWD -100 /* Special value used to indicate
|
||||||
openat should use the current
|
openat should use the current
|
||||||
working directory. */
|
working directory. */
|
||||||
#define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */
|
#define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */
|
||||||
|
#define AT_EACCESS 0x200 /* Test access permitted for
|
||||||
|
effective IDs, not real IDs. */
|
||||||
#define AT_REMOVEDIR 0x200 /* Remove directory instead of
|
#define AT_REMOVEDIR 0x200 /* Remove directory instead of
|
||||||
unlinking file. */
|
unlinking file. */
|
||||||
#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */
|
#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */
|
||||||
|
|
|
@ -359,6 +359,7 @@
|
||||||
435 common clone3 sys_clone3
|
435 common clone3 sys_clone3
|
||||||
437 common openat2 sys_openat2
|
437 common openat2 sys_openat2
|
||||||
438 common pidfd_getfd sys_pidfd_getfd
|
438 common pidfd_getfd sys_pidfd_getfd
|
||||||
|
439 common faccessat2 sys_faccessat2
|
||||||
|
|
||||||
#
|
#
|
||||||
# x32-specific system call numbers start at 512 to avoid cache impact
|
# x32-specific system call numbers start at 512 to avoid cache impact
|
||||||
|
|
Loading…
Reference in a new issue