Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
Frank Ch. Eigler | b3f4bb85f1 | |
Frank Ch. Eigler | 8e2f20f1bf | |
Frank Ch. Eigler | 43d514b856 | |
Frank Ch. Eigler | cdc8fbe05c | |
Stan Cox | 61c8529211 | |
Stan Cox | 369b0894f0 | |
Frank Ch. Eigler | e3fee6e2e8 | |
Frank Ch. Eigler | dbf80d39eb | |
Frank Ch. Eigler | 39f3f199b2 | |
Frank Ch. Eigler | eed857910b | |
Josh Stone | 1328f0dcf7 | |
Frank Ch. Eigler | 9dff469f00 | |
Frank Ch. Eigler | 761e49022a |
|
@ -0,0 +1,36 @@
|
||||||
|
commit 272146660f54786bb61d388f6d3a4eb20e7d9369 (origin/master2, master2)
|
||||||
|
Author: Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Date: Tue Mar 21 17:04:08 2017 -0400
|
||||||
|
|
||||||
|
gcc PR80115: sys/sdt.h: tweak i386 argument passing
|
||||||
|
|
||||||
|
Use %w[arg] to request that widened forms of register names be passed
|
||||||
|
to the sys/sdt.h macro operand strings, so as to avoid nominating
|
||||||
|
sub-registers such as %sil within -m32 code, which gcc <= 6 sometimes
|
||||||
|
buggily did.
|
||||||
|
|
||||||
|
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h
|
||||||
|
index 3b7eda7976d1..eff315bcd885 100644
|
||||||
|
--- a/includes/sys/sdt.h
|
||||||
|
+++ b/includes/sys/sdt.h
|
||||||
|
@@ -82,9 +82,11 @@
|
||||||
|
# define _SDT_ASM_STRING_1(x) _SDT_ASM_1(.asciz #x)
|
||||||
|
|
||||||
|
# define _SDT_ARGFMT(no) %n[_SDT_S##no]@_SDT_ARGTMPL(_SDT_A##no)
|
||||||
|
+
|
||||||
|
# ifndef STAP_SDT_ARG_CONSTRAINT
|
||||||
|
# define STAP_SDT_ARG_CONSTRAINT nor
|
||||||
|
# endif
|
||||||
|
+
|
||||||
|
# define _SDT_STRINGIFY(x) #x
|
||||||
|
# define _SDT_ARG_CONSTRAINT_STRING(x) _SDT_STRINGIFY(x)
|
||||||
|
# define _SDT_ARG(n, x) \
|
||||||
|
@@ -173,6 +175,8 @@ __extension__ extern unsigned long long __sdt_unsp;
|
||||||
|
|
||||||
|
#if defined __powerpc__ || defined __powerpc64__
|
||||||
|
# define _SDT_ARGTMPL(id) %I[id]%[id]
|
||||||
|
+#elif defined __i386__
|
||||||
|
+# define _SDT_ARGTMPL(id) %w[id] /* gcc.gnu.org/PR80115 */
|
||||||
|
#else
|
||||||
|
# define _SDT_ARGTMPL(id) %[id]
|
||||||
|
#endif
|
|
@ -0,0 +1,55 @@
|
||||||
|
commit 62640f2ed0deef9355970d216136ad4c49afa3d0
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Fri Mar 17 09:36:42 2017 -0500
|
||||||
|
|
||||||
|
PR21255: Fix missing get_task_mm() declaration.
|
||||||
|
|
||||||
|
* buildrun.cxx (compile_pass): Add <linux/sched/mm.h> autoconf test. This
|
||||||
|
was caused by the following kernel commit:
|
||||||
|
|
||||||
|
commit 6e84f31522f931027bf695752087ece278c10d3f
|
||||||
|
Author: Ingo Molnar <mingo@kernel.org>
|
||||||
|
Date: Wed Feb 8 18:51:29 2017 +0100
|
||||||
|
|
||||||
|
sched/headers: Prepare for new header dependencies before moving
|
||||||
|
code to <linux/sched/mm.h>
|
||||||
|
* runtime/linux/access_process_vm.h: Include <linux/sched.h> and, if it
|
||||||
|
exists, <linux/sched/mm.h>.
|
||||||
|
* runtime/linux/autoconf-sched-mm.c: New file.
|
||||||
|
|
||||||
|
diff --git a/buildrun.cxx b/buildrun.cxx
|
||||||
|
index aaea64c..644eea9 100644
|
||||||
|
--- a/buildrun.cxx
|
||||||
|
+++ b/buildrun.cxx
|
||||||
|
@@ -402,6 +402,7 @@ compile_pass (systemtap_session& s)
|
||||||
|
output_autoconf(s, o, "autoconf-netfilter-4_4.c", "STAPCONF_NETFILTER_V44", NULL);
|
||||||
|
output_autoconf(s, o, "autoconf-smpcall-5args.c", "STAPCONF_SMPCALL_5ARGS", NULL);
|
||||||
|
output_autoconf(s, o, "autoconf-smpcall-4args.c", "STAPCONF_SMPCALL_4ARGS", NULL);
|
||||||
|
+ output_autoconf(s, o, "autoconf-sched-mm.c", "STAPCONF_SCHED_MM_H", NULL);
|
||||||
|
|
||||||
|
// used by tapset/timestamp_monotonic.stp
|
||||||
|
output_exportconf(s, o, "cpu_clock", "STAPCONF_CPU_CLOCK");
|
||||||
|
diff --git a/runtime/linux/access_process_vm.h b/runtime/linux/access_process_vm.h
|
||||||
|
index 22a1220..a46b86f 100644
|
||||||
|
--- a/runtime/linux/access_process_vm.h
|
||||||
|
+++ b/runtime/linux/access_process_vm.h
|
||||||
|
@@ -3,6 +3,10 @@
|
||||||
|
* some distros export it on some architectures. To workaround this inconsistency,
|
||||||
|
* we copied and pasted it here. Fortunately, everything it calls is exported.
|
||||||
|
*/
|
||||||
|
+#include <linux/sched.h>
|
||||||
|
+#ifdef STAPCONF_SCHED_MM_H
|
||||||
|
+#include <linux/sched/mm.h>
|
||||||
|
+#endif
|
||||||
|
#include <linux/pagemap.h>
|
||||||
|
#include <asm/cacheflush.h>
|
||||||
|
|
||||||
|
diff --git a/runtime/linux/autoconf-sched-mm.c b/runtime/linux/autoconf-sched-mm.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..6d3f1c2
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/runtime/linux/autoconf-sched-mm.c
|
||||||
|
@@ -0,0 +1,3 @@
|
||||||
|
+#include <linux/sched.h>
|
||||||
|
+#include <linux/sched/mm.h>
|
||||||
|
+
|
|
@ -0,0 +1,37 @@
|
||||||
|
commit a477a43122609691ce6ef24f71114cfaa9790392
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Fri Mar 17 10:44:12 2017 -0500
|
||||||
|
|
||||||
|
PR21255: Fix missing __set_task_state() definition.
|
||||||
|
|
||||||
|
* runtime/stp_utrace.c: Fix missing __set_task_state() definition. If we
|
||||||
|
can't find a __set_task_state() definition, define our own.
|
||||||
|
|
||||||
|
diff --git a/runtime/stp_utrace.c b/runtime/stp_utrace.c
|
||||||
|
index bb2d663..5924016 100644
|
||||||
|
--- a/runtime/stp_utrace.c
|
||||||
|
+++ b/runtime/stp_utrace.c
|
||||||
|
@@ -29,6 +29,14 @@
|
||||||
|
|
||||||
|
#include "stp_helper_lock.h"
|
||||||
|
|
||||||
|
+#if defined(__set_task_state)
|
||||||
|
+#define __stp_set_task_state(tsk, state_value) \
|
||||||
|
+ __set_task_state((tsk), (state_value))
|
||||||
|
+#else
|
||||||
|
+#define __stp_set_task_state(tsk, state_value) \
|
||||||
|
+ do { (tsk)->state = (state_value); } while (0)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Per-thread structure private to utrace implementation.
|
||||||
|
* If task_struct.utrace_flags is nonzero, task_struct.utrace
|
||||||
|
@@ -1105,7 +1113,7 @@ static bool utrace_do_stop(struct task_struct *target, struct utrace *utrace)
|
||||||
|
*/
|
||||||
|
spin_lock_irq(&target->sighand->siglock);
|
||||||
|
if (likely(task_is_stopped(target)))
|
||||||
|
- __set_task_state(target, TASK_TRACED);
|
||||||
|
+ __stp_set_task_state(target, TASK_TRACED);
|
||||||
|
spin_unlock_irq(&target->sighand->siglock);
|
||||||
|
} else if (utrace->resume > UTRACE_REPORT) {
|
||||||
|
utrace->resume = UTRACE_REPORT;
|
|
@ -0,0 +1,42 @@
|
||||||
|
commit 030e9465eadf7d3b3a278951264dac83b2f4b4f7
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Wed Feb 22 10:04:00 2017 -0600
|
||||||
|
|
||||||
|
Update the vfs.stp tapset for newer kernels.
|
||||||
|
|
||||||
|
* tapset/linux/vfs.stp: Since the __block_write_begin() function can be
|
||||||
|
inlined on newer kernels, we'll also probe
|
||||||
|
__block_write_begin_int(). Also, check to see if '$file' is defined
|
||||||
|
before using it in _vfs.block_write_begin.return.
|
||||||
|
|
||||||
|
diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp
|
||||||
|
index 4572bd7..32db300 100644
|
||||||
|
--- a/tapset/linux/vfs.stp
|
||||||
|
+++ b/tapset/linux/vfs.stp
|
||||||
|
@@ -1104,7 +1104,8 @@ probe _vfs.generic_commit_write = kernel.function("generic_commit_write") ?
|
||||||
|
argstr = sprintf("%p, %p, %d, %d", $file, $page, $from, $to)
|
||||||
|
}
|
||||||
|
|
||||||
|
-probe _vfs.block_prepare_write = kernel.function("__block_write_begin") !,
|
||||||
|
+probe _vfs.block_prepare_write = kernel.function("__block_write_begin_int") !,
|
||||||
|
+ kernel.function("__block_write_begin") !,
|
||||||
|
kernel.function("__block_prepare_write")
|
||||||
|
{
|
||||||
|
page = $page
|
||||||
|
@@ -1134,6 +1135,7 @@ probe _vfs.block_prepare_write = kernel.function("__block_write_begin") !,
|
||||||
|
}
|
||||||
|
|
||||||
|
probe _vfs.block_prepare_write.return =
|
||||||
|
+ kernel.function("__block_write_begin_int").return !,
|
||||||
|
kernel.function("__block_write_begin").return !,
|
||||||
|
kernel.function("__block_prepare_write").return
|
||||||
|
{
|
||||||
|
@@ -1188,7 +1190,7 @@ probe _vfs.block_write_begin.return =
|
||||||
|
name = "_vfs.block_write_begin"
|
||||||
|
retstr = sprintf("%d", $return)
|
||||||
|
|
||||||
|
- file = @entry($file)
|
||||||
|
+ file = @choose_defined(@entry($file), "")
|
||||||
|
pathname = @defined(@entry($file)) ? fullpath_struct_file(task_current(), @entry($file)) : ""
|
||||||
|
pos = @entry($pos)
|
||||||
|
len = @entry($len)
|
|
@ -0,0 +1,43 @@
|
||||||
|
commit 5ab0c875df5011725f9cd2f0804c00bf9e63d492
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Thu Mar 2 15:23:28 2017 -0600
|
||||||
|
|
||||||
|
Fix s390x compile error in runtime/stack-s390.c.
|
||||||
|
|
||||||
|
* runtime/stack-s390.c (__stp_stack_print): Update code to let it compile
|
||||||
|
on the 4.10 kernel. Kernel commit d5c352c moved 'thread_info' into
|
||||||
|
task_struct.
|
||||||
|
|
||||||
|
diff --git a/runtime/stack-s390.c b/runtime/stack-s390.c
|
||||||
|
index 38eb73f..56043fc 100644
|
||||||
|
--- a/runtime/stack-s390.c
|
||||||
|
+++ b/runtime/stack-s390.c
|
||||||
|
@@ -11,7 +11,6 @@ static unsigned long
|
||||||
|
__stp_show_stack (unsigned long sp, unsigned long low,
|
||||||
|
unsigned long high, int verbose)
|
||||||
|
{
|
||||||
|
-
|
||||||
|
struct stack_frame *sf;
|
||||||
|
struct pt_regs *regs;
|
||||||
|
unsigned long ip;
|
||||||
|
@@ -62,9 +61,18 @@ static void __stp_stack_print (struct pt_regs *regs,
|
||||||
|
|
||||||
|
sp = __stp_show_stack(sp,
|
||||||
|
S390_lowcore.async_stack - ASYNC_SIZE,
|
||||||
|
- S390_lowcore.async_stack,verbose);
|
||||||
|
+ S390_lowcore.async_stack, verbose);
|
||||||
|
|
||||||
|
+#ifdef CONFIG_THREAD_INFO_IN_TASK
|
||||||
|
+ /* FIXME: Note that this CONFIG_THREAD_INFO_IN_TASK
|
||||||
|
+ * code is untested, since the s390 uses the dwarf
|
||||||
|
+ * unwinder so this code doesn't get called. */
|
||||||
|
+ __stp_show_stack(sp, ((unsigned long)current->stack),
|
||||||
|
+ (((unsigned long)current->stack)
|
||||||
|
+ + THREAD_SIZE), verbose);
|
||||||
|
+#else
|
||||||
|
__stp_show_stack(sp,
|
||||||
|
S390_lowcore.thread_info,
|
||||||
|
- S390_lowcore.thread_info + THREAD_SIZE,verbose);
|
||||||
|
+ S390_lowcore.thread_info + THREAD_SIZE, verbose);
|
||||||
|
+#endif
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
commit 386b8596d721e93ad618e682ecddb323d2bee446
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Thu Mar 2 15:25:17 2017 -0600
|
||||||
|
|
||||||
|
Fix s390x-specific syscall tests.
|
||||||
|
|
||||||
|
* testsuite/buildok/syscalls-arch-detailed.stp: Made s390x probe tests
|
||||||
|
optional, since the underlying probes don't exist on the 4.10 kernel.
|
||||||
|
* testsuite/buildok/nd_syscalls-arch-detailed.stp: Ditto.
|
||||||
|
|
||||||
|
diff --git a/testsuite/buildok/nd_syscalls-arch-detailed.stp b/testsuite/buildok/nd_syscalls-arch-detailed.stp
|
||||||
|
index 364b13e..b927d15 100755
|
||||||
|
--- a/testsuite/buildok/nd_syscalls-arch-detailed.stp
|
||||||
|
+++ b/testsuite/buildok/nd_syscalls-arch-detailed.stp
|
||||||
|
@@ -429,22 +429,22 @@ probe nd_syscall.ppc64_newuname.return ?
|
||||||
|
#
|
||||||
|
|
||||||
|
%( arch == "s390" %?
|
||||||
|
-probe nd_syscall.getresgid16
|
||||||
|
+probe nd_syscall.getresgid16 ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, argstr)
|
||||||
|
printf("%p, %p, %p\n", rgid_uaddr, egid_uaddr, sgid_uaddr)
|
||||||
|
}
|
||||||
|
-probe nd_syscall.getresgid16.return
|
||||||
|
+probe nd_syscall.getresgid16.return ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, retstr)
|
||||||
|
}
|
||||||
|
|
||||||
|
-probe nd_syscall.getresuid16
|
||||||
|
+probe nd_syscall.getresuid16 ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, argstr)
|
||||||
|
printf("%p, %p, %p\n", ruid_uaddr, euid_uaddr, suid_uaddr)
|
||||||
|
}
|
||||||
|
-probe nd_syscall.getresuid16.return
|
||||||
|
+probe nd_syscall.getresuid16.return ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, retstr)
|
||||||
|
}
|
||||||
|
diff --git a/testsuite/buildok/syscalls-arch-detailed.stp b/testsuite/buildok/syscalls-arch-detailed.stp
|
||||||
|
index 8d7d21e..914da9e 100755
|
||||||
|
--- a/testsuite/buildok/syscalls-arch-detailed.stp
|
||||||
|
+++ b/testsuite/buildok/syscalls-arch-detailed.stp
|
||||||
|
@@ -429,22 +429,22 @@ probe syscall.ppc64_newuname.return ?
|
||||||
|
#
|
||||||
|
|
||||||
|
%( arch == "s390" %?
|
||||||
|
-probe syscall.getresgid16
|
||||||
|
+probe syscall.getresgid16 ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, argstr)
|
||||||
|
printf("%p, %p, %p\n", rgid_uaddr, egid_uaddr, sgid_uaddr)
|
||||||
|
}
|
||||||
|
-probe syscall.getresgid16.return
|
||||||
|
+probe syscall.getresgid16.return ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, retstr)
|
||||||
|
}
|
||||||
|
|
||||||
|
-probe syscall.getresuid16
|
||||||
|
+probe syscall.getresuid16 ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, argstr)
|
||||||
|
printf("%p, %p, %p\n", ruid_uaddr, euid_uaddr, suid_uaddr)
|
||||||
|
}
|
||||||
|
-probe syscall.getresuid16.return
|
||||||
|
+probe syscall.getresuid16.return ?
|
||||||
|
{
|
||||||
|
printf("%s, %s\n", name, retstr)
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
commit 9f1c7a872e7a13d1ee29b692d0f1f4dd18a07baa
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Tue May 9 16:20:41 2017 -0500
|
||||||
|
|
||||||
|
Avoid missing "task_stack()" definition on 4.11 kernels.
|
||||||
|
|
||||||
|
* runtime/compatdefs.h: If <linux/sched/task_stack.h> exists, include
|
||||||
|
it. This avoids a missing task_stack() definition.
|
||||||
|
* buildrun.cxx (compile_pass): Add autoconf test for
|
||||||
|
<linux/sched/task_stack.h>.
|
||||||
|
* runtime/linux/autoconf-sched-task_stack.c: New file.
|
||||||
|
|
||||||
|
diff --git a/buildrun.cxx b/buildrun.cxx
|
||||||
|
index 21ed3c5..6da308a 100644
|
||||||
|
--- a/buildrun.cxx
|
||||||
|
+++ b/buildrun.cxx
|
||||||
|
@@ -403,6 +403,7 @@ compile_pass (systemtap_session& s)
|
||||||
|
output_autoconf(s, o, "autoconf-smpcall-5args.c", "STAPCONF_SMPCALL_5ARGS", NULL);
|
||||||
|
output_autoconf(s, o, "autoconf-smpcall-4args.c", "STAPCONF_SMPCALL_4ARGS", NULL);
|
||||||
|
output_autoconf(s, o, "autoconf-sched-mm.c", "STAPCONF_SCHED_MM_H", NULL);
|
||||||
|
+ output_autoconf(s, o, "autoconf-sched-task_stack.c", "STAPCONF_SCHED_TASK_STACK_H", NULL);
|
||||||
|
|
||||||
|
// used by tapset/timestamp_monotonic.stp
|
||||||
|
output_exportconf(s, o, "cpu_clock", "STAPCONF_CPU_CLOCK");
|
||||||
|
diff --git a/runtime/compatdefs.h b/runtime/compatdefs.h
|
||||||
|
index ba429b5..f261bfd 100644
|
||||||
|
--- a/runtime/compatdefs.h
|
||||||
|
+++ b/runtime/compatdefs.h
|
||||||
|
@@ -57,6 +57,10 @@ static inline int _stp_is_compat_task(void)
|
||||||
|
*/
|
||||||
|
#include <asm/processor.h>
|
||||||
|
#include <asm/ptrace.h>
|
||||||
|
+#include <linux/sched.h>
|
||||||
|
+#ifdef STAPCONF_SCHED_TASK_STACK_H
|
||||||
|
+#include <linux/sched/task_stack.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if !defined(task_pt_regs)
|
||||||
|
#if defined(__powerpc__)
|
||||||
|
diff --git a/runtime/linux/autoconf-sched-task_stack.c b/runtime/linux/autoconf-sched-task_stack.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..cdfcc60
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/runtime/linux/autoconf-sched-task_stack.c
|
||||||
|
@@ -0,0 +1,3 @@
|
||||||
|
+#include <linux/sched.h>
|
||||||
|
+#include <linux/sched/task_stack.h>
|
||||||
|
+
|
|
@ -0,0 +1,36 @@
|
||||||
|
diff --git a/tapset/linux/proc_mem.stp b/tapset/linux/proc_mem.stp
|
||||||
|
index 4b20686..890be69 100644
|
||||||
|
--- a/tapset/linux/proc_mem.stp
|
||||||
|
+++ b/tapset/linux/proc_mem.stp
|
||||||
|
@@ -155,7 +155,7 @@ function proc_mem_size_pid:long (pid:long)
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0)
|
||||||
|
- return mm->total_vm
|
||||||
|
+ return @mm(mm)->total_vm
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
@@ -322,8 +322,8 @@ function proc_mem_txt_pid:long (pid:long)
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0) {
|
||||||
|
- s = mm->start_code
|
||||||
|
- e = mm->end_code
|
||||||
|
+ s = @mm(mm)->start_code
|
||||||
|
+ e = @mm(mm)->end_code
|
||||||
|
return _stp_mem_txt_adjust (s, e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -381,8 +381,9 @@ function proc_mem_data_pid:long (pid:long)
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0) {
|
||||||
|
- return (@defined(&@mm(0)->data_vm) ? (mm->data_vm + mm->stack_vm)
|
||||||
|
- : (mm->total_vm - mm->shared_vm))
|
||||||
|
+ return (@defined(&@mm(0)->data_vm)
|
||||||
|
+ ? (@mm(mm)->data_vm + @mm(mm)->stack_vm)
|
||||||
|
+ : (@mm(mm)->total_vm - @mm(mm)->shared_vm))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
|
@ -0,0 +1,142 @@
|
||||||
|
commit c7029a89f5f1ff6d6a7008e8bccb797046f8af50
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Tue May 9 16:32:25 2017 -0500
|
||||||
|
|
||||||
|
Add missing @cast() calls for 4.11 kernels.
|
||||||
|
|
||||||
|
* tapset/linux/task.stp: Add a "signal_struct" cast to
|
||||||
|
_task_rlimit_cur().
|
||||||
|
* tapset/linux/task.stpm: Fix @mm() macro for kernels >= 2.6.34, where the
|
||||||
|
mm_struct definition has moved to <linux/mm_types.h>
|
||||||
|
* tapset/linux/proc_mem.stp (proc_mem_size): Use the @mm() macro to cast
|
||||||
|
values to a mm_struct.
|
||||||
|
(proc_mem_txt): Ditto.
|
||||||
|
(proc_mem_data): Ditto.
|
||||||
|
* tapset/linux/context.stp (cmdline_args): Ditto.
|
||||||
|
* tapset/linux/context-envvar.stp (env_var): Ditto.
|
||||||
|
|
||||||
|
diff --git a/tapset/linux/context-envvar.stp b/tapset/linux/context-envvar.stp
|
||||||
|
index 4d4c648..2ceb6c8 100644
|
||||||
|
--- a/tapset/linux/context-envvar.stp
|
||||||
|
+++ b/tapset/linux/context-envvar.stp
|
||||||
|
@@ -28,8 +28,8 @@ function env_var:string(name:string)
|
||||||
|
mm = task_current()->mm;
|
||||||
|
if (mm)
|
||||||
|
{
|
||||||
|
- env_start = mm->env_start;
|
||||||
|
- env_end = mm->env_end;
|
||||||
|
+ env_start = @mm(mm)->env_start;
|
||||||
|
+ env_end = @mm(mm)->env_end;
|
||||||
|
if (env_start != 0 && env_end != 0)
|
||||||
|
{
|
||||||
|
len = env_end - env_start;
|
||||||
|
diff --git a/tapset/linux/context.stp b/tapset/linux/context.stp
|
||||||
|
index e563983..8ab81b4 100644
|
||||||
|
--- a/tapset/linux/context.stp
|
||||||
|
+++ b/tapset/linux/context.stp
|
||||||
|
@@ -559,8 +559,8 @@ function cmdline_args:string(n:long, m:long, delim:string)
|
||||||
|
if (__mm == 0)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
- __arg_start = __mm->arg_start;
|
||||||
|
- __arg_end = __mm->arg_end;
|
||||||
|
+ __arg_start = @mm(__mm)->arg_start;
|
||||||
|
+ __arg_end = @mm(__mm)->arg_end;
|
||||||
|
if (__arg_start == 0 || __arg_end == 0)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
diff --git a/tapset/linux/proc_mem.stp b/tapset/linux/proc_mem.stp
|
||||||
|
index de6f423..161033d 100644
|
||||||
|
--- a/tapset/linux/proc_mem.stp
|
||||||
|
+++ b/tapset/linux/proc_mem.stp
|
||||||
|
@@ -124,7 +124,7 @@ function proc_mem_size:long ()
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0)
|
||||||
|
- return mm->total_vm
|
||||||
|
+ return @mm(mm)->total_vm
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
@@ -144,7 +144,7 @@ function proc_mem_size:long (pid:long)
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0)
|
||||||
|
- return mm->total_vm
|
||||||
|
+ return @mm(mm)->total_vm
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
@@ -260,8 +260,8 @@ function proc_mem_txt:long ()
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0) {
|
||||||
|
- s = mm->start_code
|
||||||
|
- e = mm->end_code
|
||||||
|
+ s = @mm(mm)->start_code
|
||||||
|
+ e = @mm(mm)->end_code
|
||||||
|
return _stp_mem_txt_adjust(s, e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -283,8 +283,8 @@ function proc_mem_txt:long (pid:long)
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0) {
|
||||||
|
- s = mm->start_code
|
||||||
|
- e = mm->end_code
|
||||||
|
+ s = @mm(mm)->start_code
|
||||||
|
+ e = @mm(mm)->end_code
|
||||||
|
return _stp_mem_txt_adjust (s, e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -308,8 +308,9 @@ function proc_mem_data:long ()
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0) {
|
||||||
|
- return (@defined(&@mm(0)->data_vm) ? (mm->data_vm + mm->stack_vm)
|
||||||
|
- : (mm->total_vm - mm->shared_vm))
|
||||||
|
+ return (@defined(&@mm(0)->data_vm)
|
||||||
|
+ ? (@mm(mm)->data_vm + @mm(mm)->stack_vm)
|
||||||
|
+ : (@mm(mm)->total_vm - @mm(mm)->shared_vm))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
@@ -330,8 +331,9 @@ function proc_mem_data:long (pid:long)
|
||||||
|
if (_stp_valid_task(task)) {
|
||||||
|
mm = task->mm
|
||||||
|
if (mm != 0) {
|
||||||
|
- return (@defined(&@mm(0)->data_vm) ? (mm->data_vm + mm->stack_vm)
|
||||||
|
- : (mm->total_vm - mm->shared_vm))
|
||||||
|
+ return (@defined(&@mm(0)->data_vm)
|
||||||
|
+ ? (@mm(mm)->data_vm + @mm(mm)->stack_vm)
|
||||||
|
+ : (@mm(mm)->total_vm - @mm(mm)->shared_vm))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
diff --git a/tapset/linux/task.stp b/tapset/linux/task.stp
|
||||||
|
index 5467e05..f7c852e 100644
|
||||||
|
--- a/tapset/linux/task.stp
|
||||||
|
+++ b/tapset/linux/task.stp
|
||||||
|
@@ -40,7 +40,7 @@ function task_current:long () {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
sig = @task(task)->signal;
|
||||||
|
- return sig->rlim[nd_limit]->rlim_cur;
|
||||||
|
+ return @cast(sig, "signal_struct")->rlim[nd_limit]->rlim_cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* sfunction task_rlimit - The current resource limit of the task
|
||||||
|
diff --git a/tapset/linux/task.stpm b/tapset/linux/task.stpm
|
||||||
|
index 7df04e3..f1bfb8e 100644
|
||||||
|
--- a/tapset/linux/task.stpm
|
||||||
|
+++ b/tapset/linux/task.stpm
|
||||||
|
@@ -3,5 +3,9 @@
|
||||||
|
%)
|
||||||
|
|
||||||
|
@define mm(ptr) %(
|
||||||
|
+ %( kernel_v >= "2.6.34" %?
|
||||||
|
+ @cast(@ptr, "mm_struct", "kernel<linux/mm_types.h>")
|
||||||
|
+ %:
|
||||||
|
@cast(@ptr, "mm_struct", "kernel<linux/sched.h>")
|
||||||
|
+ %)
|
||||||
|
%)
|
|
@ -0,0 +1,65 @@
|
||||||
|
commit 35ea394c93d3c296c0c809d21bc397b531b7e965
|
||||||
|
Author: David Smith <dsmith@redhat.com>
|
||||||
|
Date: Tue May 9 16:39:11 2017 -0500
|
||||||
|
|
||||||
|
Add small testsuite fixes for 4.11 kernels.
|
||||||
|
|
||||||
|
* testsuite/buildok/twentyseven.stp: Avoid missing inlined function
|
||||||
|
arguments by probing 'kernel.function("do_execve").call'.
|
||||||
|
* testsuite/buildok/thirtyone.stp: On 4.11 kernels, handle the vfs_stat()
|
||||||
|
function being renamed to vfs_statx().
|
||||||
|
* testsuite/systemtap.pass1-4/buildok.exp: Add kfails for
|
||||||
|
buildok/fortyfour.stp and buildok/map_probe_cond.stp if we don't have
|
||||||
|
uprobes.
|
||||||
|
* testsuite/systemtap.pass1-4/buildok-interactive.exp: Ditto.
|
||||||
|
|
||||||
|
diff --git a/testsuite/buildok/thirtyone.stp b/testsuite/buildok/thirtyone.stp
|
||||||
|
index ccba660..e7e102d 100755
|
||||||
|
--- a/testsuite/buildok/thirtyone.stp
|
||||||
|
+++ b/testsuite/buildok/thirtyone.stp
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
#! stap -wp4
|
||||||
|
|
||||||
|
-probe kprobe.function("vfs_stat") {}
|
||||||
|
+probe kprobe.function("vfs_stat")!, kprobe.function("vfs_statx") ? {}
|
||||||
|
probe kprobe.function("do_sys_open") {}
|
||||||
|
probe kernel.function("filp_close") {}
|
||||||
|
diff --git a/testsuite/buildok/twentyseven.stp b/testsuite/buildok/twentyseven.stp
|
||||||
|
index 62900f3..a3cbfde 100755
|
||||||
|
--- a/testsuite/buildok/twentyseven.stp
|
||||||
|
+++ b/testsuite/buildok/twentyseven.stp
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
#! stap -p4
|
||||||
|
|
||||||
|
-probe kernel.function("do_execve")
|
||||||
|
+probe kernel.function("do_execve").call
|
||||||
|
{
|
||||||
|
print(@defined($__argv) ? $__argv[0] : $argv[0])
|
||||||
|
}
|
||||||
|
diff --git a/testsuite/systemtap.pass1-4/buildok-interactive.exp b/testsuite/systemtap.pass1-4/buildok-interactive.exp
|
||||||
|
index fc4a019..d15640f 100644
|
||||||
|
--- a/testsuite/systemtap.pass1-4/buildok-interactive.exp
|
||||||
|
+++ b/testsuite/systemtap.pass1-4/buildok-interactive.exp
|
||||||
|
@@ -188,6 +188,9 @@ foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
|
||||||
|
# without utrace.
|
||||||
|
if {$rc == 1 && ![utrace_p]} { setup_kfail UTRACE *-*-*} }
|
||||||
|
|
||||||
|
+ buildok/fortyfour.stp -
|
||||||
|
+ buildok/map_probe_cond.stp -
|
||||||
|
+ buildok/pretty-uprobes.stp -
|
||||||
|
buildok/pretty-uprobes.stp -
|
||||||
|
buildok/ucontext-symbols-embedded.stp -
|
||||||
|
buildok/ucontext-unwind-embedded.stp {
|
||||||
|
diff --git a/testsuite/systemtap.pass1-4/buildok.exp b/testsuite/systemtap.pass1-4/buildok.exp
|
||||||
|
index 3926b7f..79f2217 100644
|
||||||
|
--- a/testsuite/systemtap.pass1-4/buildok.exp
|
||||||
|
+++ b/testsuite/systemtap.pass1-4/buildok.exp
|
||||||
|
@@ -40,6 +40,8 @@ foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
|
||||||
|
# without utrace.
|
||||||
|
if {$rc != 0 && ![utrace_p]} { setup_kfail UTRACE *-*-*} }
|
||||||
|
|
||||||
|
+ buildok/fortyfour.stp -
|
||||||
|
+ buildok/map_probe_cond.stp -
|
||||||
|
buildok/pretty-uprobes.stp -
|
||||||
|
buildok/ucontext-symbols-embedded.stp -
|
||||||
|
buildok/ucontext-unwind-embedded.stp {
|
|
@ -72,7 +72,7 @@
|
||||||
|
|
||||||
Name: systemtap
|
Name: systemtap
|
||||||
Version: 3.1
|
Version: 3.1
|
||||||
Release: 1%{?dist}
|
Release: 5%{?dist}
|
||||||
# for version, see also configure.ac
|
# for version, see also configure.ac
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,6 +186,18 @@ BuildRequires: python3-devel
|
||||||
BuildRequires: python3-setuptools
|
BuildRequires: python3-setuptools
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Patch10: bz1439914.patch
|
||||||
|
Patch21: bz1448099.1.patch
|
||||||
|
Patch22: bz1448099.2.patch
|
||||||
|
Patch23: bz1448099.3.patch
|
||||||
|
Patch24: bz1448099.4.patch
|
||||||
|
Patch25: bz1448099.5.patch
|
||||||
|
Patch26: bz1448099.6.patch
|
||||||
|
Patch27: bz1448099.7.patch
|
||||||
|
Patch28: bz1448099.7.1.patch
|
||||||
|
Patch29: bz1448099.8.patch
|
||||||
|
|
||||||
|
|
||||||
# Install requirements
|
# Install requirements
|
||||||
Requires: systemtap-client = %{version}-%{release}
|
Requires: systemtap-client = %{version}-%{release}
|
||||||
Requires: systemtap-devel = %{version}-%{release}
|
Requires: systemtap-devel = %{version}-%{release}
|
||||||
|
@ -461,6 +473,7 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q %{?setup_elfutils}
|
%setup -q %{?setup_elfutils}
|
||||||
|
%patch10 -p1
|
||||||
|
|
||||||
%if %{with_bundled_elfutils}
|
%if %{with_bundled_elfutils}
|
||||||
cd elfutils-%{elfutils_version}
|
cd elfutils-%{elfutils_version}
|
||||||
|
@ -472,6 +485,17 @@ find . \( -name configure -o -name config.h.in \) -print | xargs touch
|
||||||
cd ..
|
cd ..
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch21 -p1
|
||||||
|
%patch22 -p1
|
||||||
|
%patch23 -p1
|
||||||
|
%patch24 -p1
|
||||||
|
%patch25 -p1
|
||||||
|
%patch26 -p1
|
||||||
|
%patch27 -p1
|
||||||
|
%patch28 -p1
|
||||||
|
%patch29 -p1
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
%if %{with_bundled_elfutils}
|
%if %{with_bundled_elfutils}
|
||||||
|
@ -1139,6 +1163,15 @@ done
|
||||||
|
|
||||||
# PRERELEASE
|
# PRERELEASE
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon May 15 2017 Frank Ch. Eigler <fche@redhat.com> - 3.1-5
|
||||||
|
- Build with dsmith's bz1448099 patches for support of kernel 4.11
|
||||||
|
|
||||||
|
* Thu Apr 06 2017 Frank Ch. Eigler <fche@redhat.com> - 3.1-3
|
||||||
|
- Backport bz1439914 (sys/sdt.h argument encoding)
|
||||||
|
|
||||||
|
* Thu Mar 16 2017 Stan Cox <scox@redhat.com> - 3.1-2
|
||||||
|
- Rebuild for dyninst 9.3
|
||||||
|
|
||||||
* Fri Feb 17 2017 Frank Ch. Eigler <fche@redhat.com> - 3.1-1
|
* Fri Feb 17 2017 Frank Ch. Eigler <fche@redhat.com> - 3.1-1
|
||||||
- Upstream release.
|
- Upstream release.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue