From 01427b7dd49a64fd6a21235c32cf2aa970cb180b Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 23 Dec 2016 17:57:49 +0100 Subject: [PATCH] PR20333/membarrier --- tapset/linux/nd_syscalls.stp | 17 ----------- tapset/linux/sysc_membarrier.stp | 48 ++++++++++++++++++++++++++++++++ tapset/linux/syscalls.stp | 17 ----------- 3 files changed, 48 insertions(+), 34 deletions(-) create mode 100644 tapset/linux/sysc_membarrier.stp diff --git a/tapset/linux/nd_syscalls.stp b/tapset/linux/nd_syscalls.stp index 28537564e..de849d176 100644 --- a/tapset/linux/nd_syscalls.stp +++ b/tapset/linux/nd_syscalls.stp @@ -1,21 +1,4 @@ -# membarrier _______________________________________________________ -# SYSCALL_DEFINE2(membarrier, int, cmd, int, flags) -probe nd_syscall.membarrier = kprobe.function("sys_membarrier").call ? -{ - name = "membarrier" - asmlinkage() - cmd = int_arg(1) - cmd_str = _membarrier_cmd_str(cmd) - flags = int_arg(2) - argstr = sprintf("%s, %d", _membarrier_cmd_str(cmd), flags) -} -probe nd_syscall.membarrier.return = kprobe.function("sys_membarrier").return ? -{ - name = "membarrier" - retstr = returnstr(1) -} - # memfd_create _____________________________________________________ # long sys_memfd_create (const char __user* uname, unsigned int flags) probe nd_syscall.memfd_create = kprobe.function("sys_memfd_create") ? diff --git a/tapset/linux/sysc_membarrier.stp b/tapset/linux/sysc_membarrier.stp new file mode 100644 index 000000000..ccf7b3e55 --- /dev/null +++ b/tapset/linux/sysc_membarrier.stp @@ -0,0 +1,48 @@ +# membarrier _______________________________________________________ +# SYSCALL_DEFINE2(membarrier, int, cmd, int, flags) + +@define _SYSCALL_MEMBARRIER_NAME +%( + name = "membarrier" +%) + +@define _SYSCALL_MEMBARRIER_ARGSTR +%( + argstr = sprintf("%s, %d", cmd_str, flags) +%) + +probe syscall.membarrier = dw_syscall.membarrier !, nd_syscall.membarrier {} +probe syscall.membarrier.return = dw_syscall.membarrier.return !, nd_syscall.membarrier.return {} + +# dw_membarrier _____________________________________________________ + +probe dw_syscall.membarrier = kernel.function("sys_membarrier").call ? +{ + @_SYSCALL_MEMBARRIER_NAME + cmd = __int32($cmd) + cmd_str = _membarrier_cmd_str(cmd) + flags = __int32($flags) + @_SYSCALL_MEMBARRIER_ARGSTR +} +probe dw_syscall.membarrier.return = kernel.function("sys_membarrier").return ? +{ + @_SYSCALL_MEMBARRIER_NAME + retstr = return_str(1, $return) +} + +# nd_membarrier _____________________________________________________ + +probe nd_syscall.membarrier = kprobe.function("sys_membarrier").call ? +{ + @_SYSCALL_MEMBARRIER_NAME + asmlinkage() + cmd = int_arg(1) + cmd_str = _membarrier_cmd_str(cmd) + flags = int_arg(2) + @_SYSCALL_MEMBARRIER_ARGSTR +} +probe nd_syscall.membarrier.return = kprobe.function("sys_membarrier").return ? +{ + @_SYSCALL_MEMBARRIER_NAME + retstr = returnstr(1) +} diff --git a/tapset/linux/syscalls.stp b/tapset/linux/syscalls.stp index a807f9130..1bddd0785 100644 --- a/tapset/linux/syscalls.stp +++ b/tapset/linux/syscalls.stp @@ -1,21 +1,4 @@ -# membarrier _______________________________________________________ -# SYSCALL_DEFINE2(membarrier, int, cmd, int, flags) -probe syscall.membarrier = kernel.function("sys_membarrier").call ? -{ - name = "membarrier" - cmd = __int32($cmd) - cmd_str = _membarrier_cmd_str(cmd) - flags = __int32($flags) - argstr = sprintf("%s, %d", _membarrier_cmd_str(cmd), - __int32($flags)) -} -probe syscall.membarrier.return = kernel.function("sys_membarrier").return ? -{ - name = "membarrier" - retstr = return_str(1, $return) -} - # memfd_create _____________________________________________________ # long sys_memfd_create (const char __user* uname, unsigned int flags) probe syscall.memfd_create = kernel.function("sys_memfd_create").call ? -- 2.43.5