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
|
||||
Version: 3.1
|
||||
Release: 1%{?dist}
|
||||
Release: 5%{?dist}
|
||||
# for version, see also configure.ac
|
||||
|
||||
|
||||
|
@ -186,6 +186,18 @@ BuildRequires: python3-devel
|
|||
BuildRequires: python3-setuptools
|
||||
%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
|
||||
Requires: systemtap-client = %{version}-%{release}
|
||||
Requires: systemtap-devel = %{version}-%{release}
|
||||
|
@ -461,6 +473,7 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
|
|||
|
||||
%prep
|
||||
%setup -q %{?setup_elfutils}
|
||||
%patch10 -p1
|
||||
|
||||
%if %{with_bundled_elfutils}
|
||||
cd elfutils-%{elfutils_version}
|
||||
|
@ -472,6 +485,17 @@ find . \( -name configure -o -name config.h.in \) -print | xargs touch
|
|||
cd ..
|
||||
%endif
|
||||
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
|
||||
|
||||
%build
|
||||
|
||||
%if %{with_bundled_elfutils}
|
||||
|
@ -1139,6 +1163,15 @@ done
|
|||
|
||||
# PRERELEASE
|
||||
%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
|
||||
- Upstream release.
|
||||
|
||||
|
|
Loading…
Reference in New Issue