systemtap: update to 3.1.
This commit is contained in:
parent
d4b4c1832e
commit
4ffb318cb5
|
@ -1,45 +0,0 @@
|
||||||
From e7c42c3a9fa0c442ae59a15ccf256224c27ef745 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Smith <dsmith@redhat.com>
|
|
||||||
Date: Mon, 25 Apr 2016 10:02:36 -0500
|
|
||||||
Subject: [PATCH] Fix PR19990 by updating runtime/linux/access_process_vm.h.
|
|
||||||
|
|
||||||
* runtime/linux/access_process_vm.h (__access_process_vm_): Use
|
|
||||||
get_user_pages_remote() when available.
|
|
||||||
* buildrun.cxx (compile_pass): Added export test for
|
|
||||||
'get_user_pages_remote()'.
|
|
||||||
---
|
|
||||||
buildrun.cxx | 1 +
|
|
||||||
runtime/linux/access_process_vm.h | 4 ++++
|
|
||||||
2 files changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/buildrun.cxx b/buildrun.cxx
|
|
||||||
index cac46d42ff86..30082ac841bf 100644
|
|
||||||
--- a/buildrun.cxx
|
|
||||||
+++ b/buildrun.cxx
|
|
||||||
@@ -455,6 +455,7 @@ compile_pass (systemtap_session& s)
|
|
||||||
"STAPCONF_MODULE_LAYOUT", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-mod_kallsyms.c",
|
|
||||||
"STAPCONF_MOD_KALLSYMS", NULL);
|
|
||||||
+ output_exportconf(s, o, "get_user_pages_remote", "STAPCONF_GET_USER_PAGES_REMOTE");
|
|
||||||
|
|
||||||
o << module_cflags << " += -include $(STAPCONF_HEADER)" << endl;
|
|
||||||
|
|
||||||
diff --git a/runtime/linux/access_process_vm.h b/runtime/linux/access_process_vm.h
|
|
||||||
index a2114c60d9c9..214d4e2546bf 100644
|
|
||||||
--- a/runtime/linux/access_process_vm.h
|
|
||||||
+++ b/runtime/linux/access_process_vm.h
|
|
||||||
@@ -32,7 +32,11 @@ __access_process_vm_ (struct task_struct *tsk, unsigned long addr, void *buf,
|
|
||||||
int bytes, ret, offset;
|
|
||||||
void *maddr;
|
|
||||||
|
|
||||||
+#ifdef STAPCONF_GET_USER_PAGES_REMOTE
|
|
||||||
+ ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma);
|
|
||||||
+#else
|
|
||||||
ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
|
|
||||||
+#endif
|
|
||||||
if (ret <= 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.8.1
|
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
From 8f888904d8de9a798e4664caa373ea552366b304 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Smith <dsmith@redhat.com>
|
|
||||||
Date: Mon, 23 May 2016 13:56:29 -0500
|
|
||||||
Subject: [PATCH] Fix PR20132 by updating the runtime to handle a 'struct inode' change.
|
|
||||||
|
|
||||||
* runtime/transport/transport.c (_stp_lock_inode): Use the new inode
|
|
||||||
lock/unlock routines.
|
|
||||||
(_stp_unlock_inode): Ditto.
|
|
||||||
* buildrun.cxx (compile_pass): Add autoconf-inode-rwsem test.
|
|
||||||
* runtime/linux/autoconf-inode-rwsem.c: New 'autoconf' test.
|
|
||||||
---
|
|
||||||
buildrun.cxx | 1 +
|
|
||||||
runtime/linux/autoconf-inode-rwsem.c | 5 +++++
|
|
||||||
runtime/transport/transport.c | 8 ++++++++
|
|
||||||
3 files changed, 14 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100644 runtime/linux/autoconf-inode-rwsem.c
|
|
||||||
|
|
||||||
diff --git a/buildrun.cxx b/buildrun.cxx
|
|
||||||
index 8cf4b36..27e2be6 100644
|
|
||||||
--- a/buildrun.cxx
|
|
||||||
+++ b/buildrun.cxx
|
|
||||||
@@ -321,6 +321,7 @@ compile_pass (systemtap_session& s)
|
|
||||||
output_autoconf(s, o, "autoconf-generated-compile.c", "STAPCONF_GENERATED_COMPILE", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-hrtimer-getset-expires.c", "STAPCONF_HRTIMER_GETSET_EXPIRES", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-inode-private.c", "STAPCONF_INODE_PRIVATE", NULL);
|
|
||||||
+ output_autoconf(s, o, "autoconf-inode-rwsem.c", "STAPCONF_INODE_RWSEM", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-constant-tsc.c", "STAPCONF_CONSTANT_TSC", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-ktime-get-real.c", "STAPCONF_KTIME_GET_REAL", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-x86-uniregs.c", "STAPCONF_X86_UNIREGS", NULL);
|
|
||||||
diff --git a/runtime/linux/autoconf-inode-rwsem.c b/runtime/linux/autoconf-inode-rwsem.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..8ca4a4a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/runtime/linux/autoconf-inode-rwsem.c
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+#include <linux/fs.h>
|
|
||||||
+
|
|
||||||
+// check for 4.6 inode patch which changed i_mutex to i_rwsem
|
|
||||||
+
|
|
||||||
+struct inode i __attribute__ ((unused)) = {.i_rwsem=__RWSEM_INITIALIZER(i.i_rwsem)};
|
|
||||||
diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
|
|
||||||
index bbc61d2..d19eb1e 100644
|
|
||||||
--- a/runtime/transport/transport.c
|
|
||||||
+++ b/runtime/transport/transport.c
|
|
||||||
@@ -490,20 +490,28 @@ err0:
|
|
||||||
|
|
||||||
static inline void _stp_lock_inode(struct inode *inode)
|
|
||||||
{
|
|
||||||
+#ifdef STAPCONF_INODE_RWSEM
|
|
||||||
+ inode_lock(inode);
|
|
||||||
+#else
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
|
|
||||||
mutex_lock(&inode->i_mutex);
|
|
||||||
#else
|
|
||||||
down(&inode->i_sem);
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void _stp_unlock_inode(struct inode *inode)
|
|
||||||
{
|
|
||||||
+#ifdef STAPCONF_INODE_RWSEM
|
|
||||||
+ inode_unlock(inode);
|
|
||||||
+#else
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
|
|
||||||
mutex_unlock(&inode->i_mutex);
|
|
||||||
#else
|
|
||||||
up(&inode->i_sem);
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct dentry *_stp_lockfile = NULL;
|
|
||||||
--
|
|
||||||
1.7.1
|
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
From 15de83a3b4b298ea8fa5f86083017d062393c0db Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Smith <dsmith@redhat.com>
|
|
||||||
Date: Fri, 27 May 2016 11:19:03 -0500
|
|
||||||
Subject: [PATCH] Fix PR20158 by updating the runtime for the 4.6 kernel.
|
|
||||||
|
|
||||||
* buildrun.cxx (compile_pass): Added autoconf-stacktrace_ops-int-address.c
|
|
||||||
compile test.
|
|
||||||
* stack.c: (print_stack_address): If STAPCONF_STACKTRACE_OPS_INT_ADDRESS
|
|
||||||
is defined, the function returns a int instead of being a void
|
|
||||||
function.
|
|
||||||
* runtime/linux/autoconf-stacktrace_ops-int-address.c: New autoconf-style
|
|
||||||
test.
|
|
||||||
---
|
|
||||||
buildrun.cxx | 2 ++
|
|
||||||
runtime/linux/autoconf-stacktrace_ops-int-address.c | 14 ++++++++++++++
|
|
||||||
runtime/stack.c | 7 +++++++
|
|
||||||
3 files changed, 23 insertions(+)
|
|
||||||
create mode 100644 runtime/linux/autoconf-stacktrace_ops-int-address.c
|
|
||||||
|
|
||||||
diff --git a/buildrun.cxx b/buildrun.cxx
|
|
||||||
index 27e2be6a2dc3..7c68ba03e025 100644
|
|
||||||
--- a/buildrun.cxx
|
|
||||||
+++ b/buildrun.cxx
|
|
||||||
@@ -371,6 +371,8 @@ compile_pass (systemtap_session& s)
|
|
||||||
output_autoconf(s, o, "autoconf-walk-stack.c", "STAPCONF_WALK_STACK", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-stacktrace_ops-warning.c",
|
|
||||||
"STAPCONF_STACKTRACE_OPS_WARNING", NULL);
|
|
||||||
+ output_autoconf(s, o, "autoconf-stacktrace_ops-int-address.c",
|
|
||||||
+ "STAPCONF_STACKTRACE_OPS_INT_ADDRESS", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-mm-context-vdso.c", "STAPCONF_MM_CONTEXT_VDSO", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-mm-context-vdso-base.c", "STAPCONF_MM_CONTEXT_VDSO_BASE", NULL);
|
|
||||||
output_autoconf(s, o, "autoconf-blk-types.c", "STAPCONF_BLK_TYPES", NULL);
|
|
||||||
diff --git a/runtime/linux/autoconf-stacktrace_ops-int-address.c b/runtime/linux/autoconf-stacktrace_ops-int-address.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..8ca277a6e1c3
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/runtime/linux/autoconf-stacktrace_ops-int-address.c
|
|
||||||
@@ -0,0 +1,14 @@
|
|
||||||
+#include <linux/sched.h>
|
|
||||||
+#include <asm/stacktrace.h>
|
|
||||||
+
|
|
||||||
+// check for 4.6 patch which changed the function signature of
|
|
||||||
+// stacktrace_ops 'address' member.
|
|
||||||
+
|
|
||||||
+int print_stack_address(void *data __attribute__ ((unused)),
|
|
||||||
+ unsigned long addr __attribute__ ((unused)),
|
|
||||||
+ int reliable __attribute__ ((unused)))
|
|
||||||
+{
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+struct stacktrace_ops ops __attribute__ ((unused)) = {.address=print_stack_address};
|
|
||||||
diff --git a/runtime/stack.c b/runtime/stack.c
|
|
||||||
index a7d03db722d5..a99bad062382 100644
|
|
||||||
--- a/runtime/stack.c
|
|
||||||
+++ b/runtime/stack.c
|
|
||||||
@@ -111,7 +111,11 @@ static int print_stack_stack(void *data, char *name)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifdef STAPCONF_STACKTRACE_OPS_INT_ADDRESS
|
|
||||||
+static int print_stack_address(void *data, unsigned long addr, int reliable)
|
|
||||||
+#else
|
|
||||||
static void print_stack_address(void *data, unsigned long addr, int reliable)
|
|
||||||
+#endif
|
|
||||||
{
|
|
||||||
struct print_stack_data *sdata = data;
|
|
||||||
if (sdata->skip > 0)
|
|
||||||
@@ -122,6 +126,9 @@ static void print_stack_address(void *data, unsigned long addr, int reliable)
|
|
||||||
NULL);
|
|
||||||
sdata->levels--;
|
|
||||||
}
|
|
||||||
+#ifdef STAPCONF_STACKTRACE_OPS_INT_ADDRESS
|
|
||||||
+ return 0;
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct stacktrace_ops print_stack_ops = {
|
|
||||||
--
|
|
||||||
2.8.1
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
From 8acda2cea4688b8fca910ea8780fc29594ba6085 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Smith <dsmith@redhat.com>
|
|
||||||
Date: Mon, 11 Apr 2016 14:07:25 -0500
|
|
||||||
Subject: [PATCH] Fixed PR19940 by updating runtime/linux/access_process_vm.h.
|
|
||||||
|
|
||||||
* runtime/linux/access_process_vm.h: Changed page_cache_release() to
|
|
||||||
put_page().
|
|
||||||
---
|
|
||||||
runtime/linux/access_process_vm.h | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/runtime/linux/access_process_vm.h b/runtime/linux/access_process_vm.h
|
|
||||||
index fa11baf0276f..a2114c60d9c9 100644
|
|
||||||
--- a/runtime/linux/access_process_vm.h
|
|
||||||
+++ b/runtime/linux/access_process_vm.h
|
|
||||||
@@ -52,7 +52,7 @@ __access_process_vm_ (struct task_struct *tsk, unsigned long addr, void *buf,
|
|
||||||
reader (vma, page, addr, buf, maddr + offset, bytes);
|
|
||||||
}
|
|
||||||
kunmap (page);
|
|
||||||
- page_cache_release (page);
|
|
||||||
+ put_page (page);
|
|
||||||
len -= bytes;
|
|
||||||
buf += bytes;
|
|
||||||
addr += bytes;
|
|
||||||
--
|
|
||||||
2.8.1
|
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
# Template file for 'systemtap'
|
# Template file for 'systemtap'
|
||||||
pkgname=systemtap
|
pkgname=systemtap
|
||||||
version=3.0
|
version=3.1
|
||||||
revision=2
|
revision=1
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
patch_args="-Np1"
|
hostmakedepends="python"
|
||||||
makedepends="elfutils-devel"
|
makedepends="elfutils-devel"
|
||||||
|
depends="python"
|
||||||
short_desc="Infrastructure to simplify the gathering of information"
|
short_desc="Infrastructure to simplify the gathering of information"
|
||||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||||
license="GPL-3"
|
license="GPL-3"
|
||||||
homepage="https://sourceware.org/systemtap/"
|
homepage="https://sourceware.org/systemtap/"
|
||||||
distfiles="https://sourceware.org/systemtap/ftp/releases/systemtap-${version}.tar.gz"
|
distfiles="https://sourceware.org/systemtap/ftp/releases/systemtap-${version}.tar.gz"
|
||||||
checksum=c1c9dc2f63a1d619f41c4af1b757743c5ffaeb802b4b1b79db41567599f72294
|
checksum=a7b679877502db9b3ac9dfb658c05b49f77e29d42ad2eb36105b62bf2d32f676
|
||||||
only_for_archs="i686 x86_64 armv6l armv7l aarch64"
|
only_for_archs="i686 x86_64 armv6l armv7l aarch64"
|
||||||
|
|
Loading…
Reference in New Issue