diff options
author | Tudor Florea <tudor.florea@enea.com> | 2015-10-09 22:59:03 +0200 |
---|---|---|
committer | Tudor Florea <tudor.florea@enea.com> | 2015-10-09 22:59:03 +0200 |
commit | 972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch) | |
tree | 97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/recipes-kernel/systemtap/systemtap | |
download | poky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz |
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-kernel/systemtap/systemtap')
6 files changed, 227 insertions, 0 deletions
diff --git a/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch b/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch new file mode 100644 index 0000000000..b4f2fbc066 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | From 5eb10d90af9178edb65e6091ae939d1b5b19bb78 Mon Sep 17 00:00:00 2001 | ||
2 | From: Wenzong Fan <wenzong.fan@windriver.com> | ||
3 | Date: Tue, 23 Sep 2014 04:47:10 -0400 | ||
4 | Subject: [PATCH] systemtap: allow to disable libvirt | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | ||
9 | --- | ||
10 | configure.ac | 13 +++++++++---- | ||
11 | 1 file changed, 9 insertions(+), 4 deletions(-) | ||
12 | |||
13 | diff --git a/configure.ac b/configure.ac | ||
14 | index a631ae7..cb4885b 100644 | ||
15 | --- a/configure.ac | ||
16 | +++ b/configure.ac | ||
17 | @@ -525,10 +525,15 @@ dnl Check for the libvirt and libxml2 devel packages | ||
18 | |||
19 | dnl We require libvirt >= 1.0.2 because stapvirt relies on the | ||
20 | dnl virDomainOpenChannel function, which was implemented in 1.0.2. | ||
21 | -PKG_CHECK_MODULES([libvirt], [libvirt >= 1.0.2], [ | ||
22 | - have_libvirt=yes | ||
23 | - AC_DEFINE([HAVE_LIBVIRT],[1],[Define to 1 if libvirt development libraries are installed]) | ||
24 | - ], [have_libvirt=no]) | ||
25 | +AC_ARG_ENABLE([libvirt], | ||
26 | + AS_HELP_STRING([--disable-libvirt], [Do not use libvirt even if present])) | ||
27 | + | ||
28 | +if test "$enable_libvirt" != no; then | ||
29 | + PKG_CHECK_MODULES([libvirt], [libvirt >= 1.0.2], [ | ||
30 | + have_libvirt=yes | ||
31 | + AC_DEFINE([HAVE_LIBVIRT],[1],[Define to 1 if libvirt development libraries are installed]) | ||
32 | + ], [have_libvirt=no]) | ||
33 | +fi | ||
34 | AM_CONDITIONAL([HAVE_LIBVIRT], [test "${have_libvirt}" = "yes"]) | ||
35 | PKG_CHECK_MODULES([libxml2], [libxml-2.0], [ | ||
36 | have_libxml2=yes | ||
37 | -- | ||
38 | 1.7.9.5 | ||
39 | |||
diff --git a/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch b/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch new file mode 100644 index 0000000000..33a89940ae --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch | |||
@@ -0,0 +1,19 @@ | |||
1 | Upstream-Status: Inappropriate [configuration] | ||
2 | |||
3 | Signed-off-by: Tom Zanussi <tom.zanussi@intel.com> | ||
4 | |||
5 | Index: git/doc/SystemTap_Tapset_Reference/Makefile.am | ||
6 | =================================================================== | ||
7 | --- git.orig/doc/SystemTap_Tapset_Reference/Makefile.am 2012-04-13 08:43:46.263339003 -0500 | ||
8 | +++ git/doc/SystemTap_Tapset_Reference/Makefile.am 2012-04-13 09:31:22.470083915 -0500 | ||
9 | @@ -27,6 +27,10 @@ | ||
10 | noinst_PROGRAMS = docproc | ||
11 | SRCTREE=$(abs_top_srcdir)/ | ||
12 | DOCPROC=$(abs_builddir)/docproc | ||
13 | +docproc_LINK = $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ | ||
14 | + | ||
15 | +docproc.o: $(srcdir)/docproc.c | ||
16 | + $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) -o $@ $(srcdir)/docproc.c | ||
17 | |||
18 | all: $(PDFDOCS) stamp-htmldocs stamp-mandocs | ||
19 | tapsets.xml: docproc $(shell find $(SRCTREE)/tapset -name '*.stp') | ||
diff --git a/meta/recipes-kernel/systemtap/systemtap/obsolete_automake_macros.patch b/meta/recipes-kernel/systemtap/systemtap/obsolete_automake_macros.patch new file mode 100644 index 0000000000..988cda4f0c --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/obsolete_automake_macros.patch | |||
@@ -0,0 +1,15 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> | ||
4 | Index: git/configure.ac | ||
5 | =================================================================== | ||
6 | --- git.orig/configure.ac | ||
7 | +++ git/configure.ac | ||
8 | @@ -19,7 +19,6 @@ AC_PROG_LN_S | ||
9 | AC_PROG_CC | ||
10 | AC_PROG_CXX | ||
11 | AC_PROG_CPP | ||
12 | -AM_PROG_CC_STDC | ||
13 | AM_PROG_CC_C_O | ||
14 | AC_PROG_RANLIB | ||
15 | AC_OBJEXT | ||
diff --git a/meta/recipes-kernel/systemtap/systemtap/scheduler-stp.patch b/meta/recipes-kernel/systemtap/systemtap/scheduler-stp.patch new file mode 100644 index 0000000000..9897e481a3 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/scheduler-stp.patch | |||
@@ -0,0 +1,109 @@ | |||
1 | scheduler.stp: Handle missing symbols. | ||
2 | |||
3 | Compiler output code optimization leads to missing debug data for some | ||
4 | target variables, in particular some inline functions parameters, e.g. | ||
5 | context_switch. | ||
6 | |||
7 | Handle this by testing for variable name resolvability and provide default | ||
8 | variable values in case no suitable target data is available through variable | ||
9 | name. Affected functions: ctxswitch,wakeup. | ||
10 | |||
11 | This fix does not affect the intended context switch tracing. | ||
12 | |||
13 | |||
14 | Upstream-Status: Pending | ||
15 | |||
16 | Signed-off-by: George Nita <george.nita@enea.com> | ||
17 | |||
18 | |||
19 | diff --git a/tapset/linux/scheduler.stp b/tapset/linux/scheduler.stp | ||
20 | index 7596a46..539a0f1 100644 | ||
21 | --- a/tapset/linux/scheduler.stp | ||
22 | +++ b/tapset/linux/scheduler.stp | ||
23 | @@ -120,7 +120,7 @@ probe scheduler.ctxswitch = kernel.trace("sched_switch") !, | ||
24 | %( arch != "x86_64" && arch != "ia64" && arch != "arm" %? | ||
25 | kernel.function("__switch_to") | ||
26 | %: | ||
27 | - kernel.function("context_switch") | ||
28 | + kernel.function("prepare_task_switch") | ||
29 | %) | ||
30 | { | ||
31 | name = "ctxswitch" | ||
32 | @@ -140,7 +140,7 @@ probe scheduler.ctxswitch = kernel.trace("sched_switch") !, | ||
33 | prev_task_name = task_execname($prev_p) | ||
34 | prevtsk_state = $prev_p->state | ||
35 | } | ||
36 | - else { | ||
37 | + else if (@defined($prev)) { | ||
38 | prev_priority = $prev->prio | ||
39 | prev_pid = $prev->tgid | ||
40 | prev_tid = $prev->pid | ||
41 | @@ -148,6 +148,15 @@ probe scheduler.ctxswitch = kernel.trace("sched_switch") !, | ||
42 | prev_task_name = task_execname($prev) | ||
43 | prevtsk_state = $prev->state | ||
44 | } | ||
45 | + else { | ||
46 | + prev_priority = 0 | ||
47 | + prev_pid = 0 | ||
48 | + prev_tid = 0 | ||
49 | + /* No prev_task, dummy */ | ||
50 | + prev_task = task_current() | ||
51 | + prev_task_name = "UNAVAILABLE" | ||
52 | + prevtsk_state = 0 | ||
53 | + } | ||
54 | |||
55 | if (@defined($next)) { | ||
56 | next_priority = $next->prio | ||
57 | @@ -165,7 +174,7 @@ probe scheduler.ctxswitch = kernel.trace("sched_switch") !, | ||
58 | next_task_name = task_execname($next_p) | ||
59 | nexttsk_state = $next_p->state | ||
60 | } | ||
61 | - else { | ||
62 | + else if (@defined($new)) { | ||
63 | next_priority = $new->prio | ||
64 | next_pid = $new->tgid | ||
65 | next_tid = $new->pid | ||
66 | @@ -173,6 +182,14 @@ probe scheduler.ctxswitch = kernel.trace("sched_switch") !, | ||
67 | next_task_name = task_execname($new) | ||
68 | nexttsk_state = $new->state | ||
69 | } | ||
70 | + else { | ||
71 | + next_task = task_current() | ||
72 | + next_priority = task_prio(next_task) | ||
73 | + next_pid = task_pid(next_task) | ||
74 | + next_tid = task_tid(next_task) | ||
75 | + next_task_name = task_execname(next_task) | ||
76 | + nexttsk_state = task_state(next_task) | ||
77 | + } | ||
78 | } | ||
79 | |||
80 | |||
81 | @@ -254,12 +271,22 @@ probe scheduler.wakeup = | ||
82 | kernel.function("try_to_wake_up") | ||
83 | { | ||
84 | name = "wakeup" | ||
85 | - task = $p | ||
86 | - task_pid = $p->tgid | ||
87 | - task_tid = $p->pid | ||
88 | - task_priority = $p->prio | ||
89 | - task_cpu = task_cpu($p) | ||
90 | - task_state = task_state($p) | ||
91 | + if (@defined($p)) { | ||
92 | + task = $p | ||
93 | + task_pid = $p->tgid | ||
94 | + task_tid = $p->pid | ||
95 | + task_priority = $p->prio | ||
96 | + task_cpu = task_cpu($p) | ||
97 | + task_state = task_state($p) | ||
98 | + } | ||
99 | + else { | ||
100 | + task = task_current() | ||
101 | + task_pid = task_pid(task) | ||
102 | + task_tid = task_tid(task) | ||
103 | + task_priority = task_prio(task) | ||
104 | + task_cpu = task_cpu(task) | ||
105 | + task_state = task_state(task) | ||
106 | + } | ||
107 | } | ||
108 | |||
109 | /** | ||
diff --git a/meta/recipes-kernel/systemtap/systemtap/system_map_location.patch b/meta/recipes-kernel/systemtap/systemtap/system_map_location.patch new file mode 100644 index 0000000000..013af5c3a4 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/system_map_location.patch | |||
@@ -0,0 +1,23 @@ | |||
1 | systemtap: Cross compilation fix | ||
2 | |||
3 | This is a cross compilation fix. It allows systemtap to find | ||
4 | the kernel map file in the right place, i.e. in the kernel build tree. | ||
5 | Without this fix it takes a map file from the build host, if available. | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | |||
9 | Signed-off-by: Mikhail Durnev <mikhail_durnev@mentor.com> | ||
10 | |||
11 | Index: git/session.cxx | ||
12 | =================================================================== | ||
13 | --- git.orig/session.cxx | ||
14 | +++ git/session.cxx | ||
15 | @@ -1634,7 +1634,7 @@ systemtap_session::parse_kernel_function | ||
16 | clog << _F("Kernel symbol table %s unavailable, (%s)", | ||
17 | system_map_path.c_str(), strerror(errno)) << endl; | ||
18 | |||
19 | - system_map_path = "/boot/System.map-" + kernel_release; | ||
20 | + system_map_path = kernel_build_tree + "/System.map-" + kernel_release; | ||
21 | system_map.clear(); | ||
22 | system_map.open(system_map_path.c_str(), ifstream::in); | ||
23 | if (! system_map.is_open()) | ||
diff --git a/meta/recipes-kernel/systemtap/systemtap/tapset-linux-sendfile-syscall.patch b/meta/recipes-kernel/systemtap/systemtap/tapset-linux-sendfile-syscall.patch new file mode 100644 index 0000000000..f945760fde --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/tapset-linux-sendfile-syscall.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | systemtap: Fixed probe syscall.sendfile failure | ||
2 | |||
3 | compat_sendfile syscall is unavailable in kernels starting version 3.8. | ||
4 | Hence systemtap scripts like 'probe syscall.* { if (target()==pid()) log(name." ".argstr) }' fail. | ||
5 | This problem is solved by marking __syscall.compat_sendfile as optional in tapset/linux/syscalls2.stp | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | |||
9 | Signed-off-by: Mikhail Durnev <mikhail_durnev@mentor.com> | ||
10 | |||
11 | diff -Naur old/tapset/linux/syscalls2.stp new/tapset/linux/syscalls2.stp | ||
12 | --- old/tapset/linux/syscalls2.stp 2014-04-21 01:28:41.000000000 -0500 | ||
13 | +++ new/tapset/linux/syscalls2.stp 2014-04-21 01:38:14.961233914 -0500 | ||
14 | @@ -1953,7 +1953,7 @@ | ||
15 | # COMPAT_SYSCALL_DEFINE4(sendfile64, int, out_fd, int, in_fd, | ||
16 | # compat_loff_t __user *, offset, compat_size_t, count) | ||
17 | # | ||
18 | -probe syscall.sendfile = __syscall.sendfile, __syscall.compat_sendfile | ||
19 | +probe syscall.sendfile = __syscall.sendfile, __syscall.compat_sendfile ? | ||
20 | { | ||
21 | name = "sendfile" | ||
22 | out_fd = __int32($out_fd) | ||