Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b413069f7 | |||
| c304def666 | |||
| 156e8b1a72 | |||
| fc8a791cef | |||
| 3c31882c55 | |||
| 73a0b1c45b | |||
| 54586b5245 | |||
| 0b6e381fcb | |||
| 161925cca3 | |||
| d7bae1def5 | |||
| 7b468f9885 | |||
| bcf91eabdf | |||
| f3a88dedc6 | |||
| aeba2d99ae | |||
| 729da1fb58 | |||
| 8e2f8c7b2d | |||
| df5d2510f5 | |||
| ce4ee0272a | |||
| c1b3e5bfd5 | |||
| 530b3c58ec | |||
| ceeded114a | |||
| f6be3eef0e | |||
| 9bd07d0547 | |||
| 2d43183c1e |
@@ -0,0 +1,37 @@
|
||||
From ff265fa1ed86b85e021ec0f16a28ab48c237414a Mon Sep 17 00:00:00 2001
|
||||
From: "Yichun Zhang (agentzh)" <yichun@openresty.com>
|
||||
Date: Sat, 6 May 2023 15:21:14 -0700
|
||||
Subject: [PATCH] PR30405: stapkp_init(): we should not disable preemption
|
||||
around the kallsyms_on_each_symbol() call
|
||||
|
||||
---
|
||||
runtime/linux/kprobes.c | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/runtime/linux/kprobes.c b/runtime/linux/kprobes.c
|
||||
index 09f0e0665..1875092c5 100644
|
||||
--- a/runtime/linux/kprobes.c
|
||||
+++ b/runtime/linux/kprobes.c
|
||||
@@ -763,9 +763,7 @@ stapkp_init(struct stap_kprobe_probe *probes,
|
||||
#ifdef STAPCONF_MODULE_MUTEX
|
||||
mutex_lock(&module_mutex);
|
||||
#endif
|
||||
- preempt_disable();
|
||||
kallsyms_on_each_symbol(stapkp_symbol_callback, &sd);
|
||||
- preempt_enable();
|
||||
#ifdef STAPCONF_MODULE_MUTEX
|
||||
mutex_unlock(&module_mutex);
|
||||
#endif
|
||||
@@ -835,9 +833,7 @@ stapkp_refresh(const char *modname,
|
||||
#ifdef STAPCONF_MODULE_MUTEX
|
||||
mutex_lock(&module_mutex);
|
||||
#endif
|
||||
- preempt_disable();
|
||||
kallsyms_on_each_symbol(stapkp_symbol_callback, &sd);
|
||||
- preempt_enable();
|
||||
#ifdef STAPCONF_MODULE_MUTEX
|
||||
mutex_unlock(&module_mutex);
|
||||
#endif
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,231 @@
|
||||
From 33fae2d0107fb6166b4eac3fdffd277829849ab0 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Cermak <mcermak@redhat.com>
|
||||
Date: Fri, 2 Jun 2023 23:28:07 +0200
|
||||
Subject: [PATCH] =?UTF-8?q?PR30415:=20conflicting=20types=20for=20?=
|
||||
=?UTF-8?q?=E2=80=98kallsyms=5Fon=5Feach=5Fsymbol=E2=80=99?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
---
|
||||
runtime/linux/kprobes.c | 28 ++++++++++++++++++++++++-
|
||||
runtime/linux/runtime.h | 8 +++++--
|
||||
runtime/sym.c | 39 +++++++++++++++++++++++++++++++++++
|
||||
runtime/transport/symbols.c | 4 ++++
|
||||
runtime/transport/transport.c | 1 +
|
||||
staprun/staprun.c | 13 +++++++++++-
|
||||
6 files changed, 89 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/runtime/linux/kprobes.c b/runtime/linux/kprobes.c
|
||||
index 1875092c5..6b30f2c52 100644
|
||||
--- a/runtime/linux/kprobes.c
|
||||
+++ b/runtime/linux/kprobes.c
|
||||
@@ -28,6 +28,9 @@ extern void *_stp_kallsyms_on_each_symbol;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+// No export check and gates. This one seems simply like a non-export.
|
||||
+extern void *_stp_module_kallsyms_on_each_symbol;
|
||||
+
|
||||
#if defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) && defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED)
|
||||
#define USE_KALLSYMS_ON_EACH_SYMBOL (1)
|
||||
#elif defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL)
|
||||
@@ -684,7 +687,7 @@ struct stapkp_symbol_data {
|
||||
|
||||
|
||||
static int
|
||||
-stapkp_symbol_callback(void *data, const char *name,
|
||||
+__stapkp_symbol_callback(void *data, const char *name,
|
||||
struct module *mod, unsigned long addr)
|
||||
{
|
||||
struct stapkp_symbol_data *sd = data;
|
||||
@@ -733,6 +736,19 @@ stapkp_symbol_callback(void *data, const char *name,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0)
|
||||
+stapkp_symbol_callback(void *data, const char *name,
|
||||
+ unsigned long addr)
|
||||
+{
|
||||
+ struct module *mod = NULL;
|
||||
+#else
|
||||
+stapkp_symbol_callback(void *data, const char *name,
|
||||
+ struct module *mod, unsigned long addr)
|
||||
+{
|
||||
+#endif
|
||||
+ return __stapkp_symbol_callback(data, name, mod, addr);
|
||||
+}
|
||||
|
||||
static int
|
||||
stapkp_init(struct stap_kprobe_probe *probes,
|
||||
@@ -764,6 +780,11 @@ stapkp_init(struct stap_kprobe_probe *probes,
|
||||
mutex_lock(&module_mutex);
|
||||
#endif
|
||||
kallsyms_on_each_symbol(stapkp_symbol_callback, &sd);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)
|
||||
+ module_kallsyms_on_each_symbol(sd.modname, stapkp_symbol_callback, &sd);
|
||||
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)
|
||||
+ module_kallsyms_on_each_symbol(stapkp_symbol_callback, &sd);
|
||||
+#endif
|
||||
#ifdef STAPCONF_MODULE_MUTEX
|
||||
mutex_unlock(&module_mutex);
|
||||
#endif
|
||||
@@ -834,6 +855,11 @@ stapkp_refresh(const char *modname,
|
||||
mutex_lock(&module_mutex);
|
||||
#endif
|
||||
kallsyms_on_each_symbol(stapkp_symbol_callback, &sd);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)
|
||||
+ module_kallsyms_on_each_symbol(sd.modname, stapkp_symbol_callback, &sd);
|
||||
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)
|
||||
+ module_kallsyms_on_each_symbol(stapkp_symbol_callback, &sd);
|
||||
+#endif
|
||||
#ifdef STAPCONF_MODULE_MUTEX
|
||||
mutex_unlock(&module_mutex);
|
||||
#endif
|
||||
diff --git a/runtime/linux/runtime.h b/runtime/linux/runtime.h
|
||||
index 86d64fd0d..f7b3cdcf0 100644
|
||||
--- a/runtime/linux/runtime.h
|
||||
+++ b/runtime/linux/runtime.h
|
||||
@@ -221,11 +221,15 @@ static void *_stp_kallsyms_lookup_name;
|
||||
#ifndef CONFIG_PPC64
|
||||
#define STAPCONF_KALLSYMS_ON_EACH_SYMBOL
|
||||
#if !defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED)
|
||||
-// XXX Should not be static, since it is linked into kprobes.c.
|
||||
-static void *_stp_kallsyms_on_each_symbol;
|
||||
+// Not static, since it is linked into kprobes.c:
|
||||
+void *_stp_kallsyms_on_each_symbol;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+// No export check and gates. This one seems simply like a non-export.
|
||||
+// Not static, since it is linked into kprobes.c:
|
||||
+void *_stp_module_kallsyms_on_each_symbol;
|
||||
+
|
||||
// PR13489, inode-uprobes sometimes lacks the necessary SYMBOL_EXPORT's.
|
||||
#if !defined(STAPCONF_TASK_USER_REGSET_VIEW_EXPORTED)
|
||||
static void *kallsyms_task_user_regset_view;
|
||||
diff --git a/runtime/sym.c b/runtime/sym.c
|
||||
index fc81ac5e8..29171b45f 100644
|
||||
--- a/runtime/sym.c
|
||||
+++ b/runtime/sym.c
|
||||
@@ -1155,9 +1155,15 @@ unsigned long kallsyms_lookup_name (const char *name)
|
||||
typedef typeof(&kallsyms_on_each_symbol) kallsyms_on_each_symbol_fn;
|
||||
|
||||
// XXX Will be linked in place of the kernel's kallsyms_on_each_symbol:
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0)
|
||||
+int kallsyms_on_each_symbol(int (*fn)(void *, const char *,
|
||||
+ unsigned long),
|
||||
+ void *data)
|
||||
+#else
|
||||
int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *,
|
||||
unsigned long),
|
||||
void *data)
|
||||
+#endif
|
||||
{
|
||||
/* First, try to use a kallsyms_lookup_name address passed to us
|
||||
through the relocation mechanism. */
|
||||
@@ -1170,6 +1176,39 @@ int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *,
|
||||
_stp_error("BUG: attempting to use unavailable kallsyms_on_each_symbol!!\n");
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)
|
||||
+typedef typeof(&module_kallsyms_on_each_symbol) module_kallsyms_on_each_symbol_fn;
|
||||
+
|
||||
+// XXX Will be linked in place of the kernel's module_kallsyms_on_each_symbol:
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0)
|
||||
+int module_kallsyms_on_each_symbol(const char *modname,
|
||||
+ int (*fn)(void *, const char *,
|
||||
+ unsigned long),
|
||||
+ void *data)
|
||||
+#else
|
||||
+int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *,
|
||||
+ unsigned long),
|
||||
+ void *data)
|
||||
+#endif
|
||||
+{
|
||||
+ /* First, try to use a kallsyms_lookup_name address passed to us
|
||||
+ through the relocation mechanism. */
|
||||
+ if (_stp_module_kallsyms_on_each_symbol != NULL)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0)
|
||||
+ return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(modname, fn, data);
|
||||
+#else
|
||||
+ return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(fn, data);
|
||||
+#endif
|
||||
+
|
||||
+ /* Next, give up and signal a BUG. We should have detected
|
||||
+ that this function is not available and used a different
|
||||
+ mechanism! */
|
||||
+ _stp_error("BUG: attempting to use unavailable module_kallsyms_on_each_symbol!!\n");
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#endif
|
||||
|
||||
|
||||
diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
|
||||
index 7f2fe0fc8..3af9a1098 100644
|
||||
--- a/runtime/transport/symbols.c
|
||||
+++ b/runtime/transport/symbols.c
|
||||
@@ -119,6 +119,10 @@ static void _stp_do_relocation(const char __user *buf, size_t count)
|
||||
_stp_kallsyms_on_each_symbol = (void *) msg.address;
|
||||
}
|
||||
#endif
|
||||
+ if (!strcmp ("kernel", msg.module)
|
||||
+ && !strcmp ("module_kallsyms_on_each_symbol", msg.reloc)) {
|
||||
+ _stp_module_kallsyms_on_each_symbol = (void *) msg.address;
|
||||
+ }
|
||||
|
||||
_stp_kmodule_update_address(msg.module, msg.reloc, msg.address);
|
||||
}
|
||||
diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
|
||||
index 3db76badf..cf57d4286 100644
|
||||
--- a/runtime/transport/transport.c
|
||||
+++ b/runtime/transport/transport.c
|
||||
@@ -614,6 +614,7 @@ static int _stp_transport_init(void)
|
||||
#if defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) && !defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED)
|
||||
_stp_kallsyms_on_each_symbol = NULL;
|
||||
#endif
|
||||
+ _stp_module_kallsyms_on_each_symbol = NULL;
|
||||
#if defined(CONFIG_KALLSYMS) && !defined(STAPCONF_KALLSYMS_LOOKUP_NAME_EXPORTED)
|
||||
_stp_need_kallsyms_stext = 0;
|
||||
#endif
|
||||
diff --git a/staprun/staprun.c b/staprun/staprun.c
|
||||
index edd1bc67a..8437f3af6 100644
|
||||
--- a/staprun/staprun.c
|
||||
+++ b/staprun/staprun.c
|
||||
@@ -640,6 +640,7 @@ int send_relocation_kernel ()
|
||||
int found_stext = 0;
|
||||
int found_kallsyms_lookup_name = 0;
|
||||
int found_kallsyms_on_each_symbol = 0;
|
||||
+ int found_module_kallsyms_on_each_symbol = 0;
|
||||
int done_with_kallsyms = 0;
|
||||
char *line = NULL;
|
||||
size_t linesz = 0;
|
||||
@@ -681,10 +682,20 @@ int send_relocation_kernel ()
|
||||
|
||||
found_kallsyms_on_each_symbol = 1;
|
||||
}
|
||||
+ else if (linesize - pos == sizeof "module_kallsyms_on_each_symbol"
|
||||
+ && !strcmp(line + pos, "module_kallsyms_on_each_symbol" "\n"))
|
||||
+ {
|
||||
+ rc = send_a_relocation ("kernel", "module_kallsyms_on_each_symbol", address);
|
||||
+ if (rc != 0) // non fatal, follows perror()
|
||||
+ dbug(1, "Relocation was reloc module_kallsyms_on_each_symbol=%llx\n", address);
|
||||
+
|
||||
+ found_module_kallsyms_on_each_symbol = 1;
|
||||
+ }
|
||||
}
|
||||
done_with_kallsyms = found_stext
|
||||
&& found_kallsyms_lookup_name
|
||||
- && found_kallsyms_on_each_symbol;
|
||||
+ && found_kallsyms_on_each_symbol
|
||||
+ && found_module_kallsyms_on_each_symbol;
|
||||
}
|
||||
free (line);
|
||||
fclose (kallsyms);
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From c893e0eaa4dedc90fafc9353ea00fc34ad4b6d42 Mon Sep 17 00:00:00 2001
|
||||
From: William Cohen <wcohen@redhat.com>
|
||||
Date: Wed, 17 May 2023 10:38:31 -0400
|
||||
Subject: [PATCH] Support newer kernels with struct module_memory
|
||||
|
||||
The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e
|
||||
changed the structures for modules. The runtime printing of kernel
|
||||
information accessed information about modules and the fields in
|
||||
module structure. A test has been added to the autoconf list to
|
||||
determine the appropriate fields to get information about the
|
||||
module.
|
||||
---
|
||||
buildrun.cxx | 2 ++
|
||||
runtime/linux/autoconf-module_memory.c | 3 +++
|
||||
runtime/linux/print.c | 6 ++++++
|
||||
3 files changed, 11 insertions(+)
|
||||
create mode 100644 runtime/linux/autoconf-module_memory.c
|
||||
|
||||
diff --git a/buildrun.cxx b/buildrun.cxx
|
||||
index a4a254c7d..7f4ad860d 100644
|
||||
--- a/buildrun.cxx
|
||||
+++ b/buildrun.cxx
|
||||
@@ -512,6 +512,8 @@ compile_pass (systemtap_session& s)
|
||||
|
||||
output_autoconf(s, o, cs, "autoconf-module_layout.c",
|
||||
"STAPCONF_MODULE_LAYOUT", NULL);
|
||||
+ output_autoconf(s, o, cs, "autoconf-module_memory.c",
|
||||
+ "STAPCONF_MODULE_MEMORY", NULL);
|
||||
output_autoconf(s, o, cs, "autoconf-mod_kallsyms.c",
|
||||
"STAPCONF_MOD_KALLSYMS", NULL);
|
||||
output_exportconf(s, o2, "get_user_pages_remote", "STAPCONF_GET_USER_PAGES_REMOTE");
|
||||
diff --git a/runtime/linux/autoconf-module_memory.c b/runtime/linux/autoconf-module_memory.c
|
||||
new file mode 100644
|
||||
index 000000000..db04b8d2e
|
||||
--- /dev/null
|
||||
+++ b/runtime/linux/autoconf-module_memory.c
|
||||
@@ -0,0 +1,3 @@
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
+struct module_memory ml;
|
||||
diff --git a/runtime/linux/print.c b/runtime/linux/print.c
|
||||
index 57a157986..594b155be 100644
|
||||
--- a/runtime/linux/print.c
|
||||
+++ b/runtime/linux/print.c
|
||||
@@ -361,6 +361,11 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro
|
||||
(unsigned long) (THIS_MODULE->core_layout.size - THIS_MODULE->core_layout.text_size)/1024,
|
||||
(unsigned long) (THIS_MODULE->core_layout.text_size)/1024,
|
||||
#else
|
||||
+#if STAPCONF_MODULE_MEMORY
|
||||
+ (unsigned long) THIS_MODULE->mem[MOD_TEXT].base,
|
||||
+ (unsigned long) (THIS_MODULE->mem[MOD_DATA].size)/1024,
|
||||
+ (unsigned long) (THIS_MODULE->mem[MOD_TEXT].size)/1024,
|
||||
+#else
|
||||
#ifndef STAPCONF_GRSECURITY
|
||||
(unsigned long) THIS_MODULE->module_core,
|
||||
(unsigned long) (THIS_MODULE->core_size - THIS_MODULE->core_text_size)/1024,
|
||||
@@ -370,6 +375,7 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro
|
||||
(unsigned long) (THIS_MODULE->core_size_rw - THIS_MODULE->core_size_rx)/1024,
|
||||
(unsigned long) (THIS_MODULE->core_size_rx)/1024,
|
||||
#endif
|
||||
+#endif
|
||||
#endif
|
||||
ctx/1024,
|
||||
_stp_allocated_net_memory/1024,
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
From 5d0424e51857d5f706e78d6d962f380fa70f49f0 Mon Sep 17 00:00:00 2001
|
||||
From: langfei <langfei@huawei.com>
|
||||
Date: Wed, 5 Jul 2023 10:27:11 +0800
|
||||
Subject: [PATCH] fix network tcp test error
|
||||
|
||||
Signed-off-by: langfei <langfei@huawei.com>
|
||||
---
|
||||
tapset/linux/ipmib.stp | 4 ++--
|
||||
tapset/linux/linuxmib.stp | 2 +-
|
||||
testsuite/systemtap.examples/network/tcp_trace.stp | 2 +-
|
||||
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/tapset/linux/ipmib.stp b/tapset/linux/ipmib.stp
|
||||
index 6f51dfd..603c5d4 100644
|
||||
--- a/tapset/linux/ipmib.stp
|
||||
+++ b/tapset/linux/ipmib.stp
|
||||
@@ -271,7 +271,7 @@ probe ipmib.InAddrErrors=kernel.function("ip_route_input_noref").return!,
|
||||
* IPSTATS_MIB_INUNKNOWNPROTOS)
|
||||
*/
|
||||
/* icmp_send() is called by ip_local_deliver_finish() */
|
||||
-probe ipmib.InUnknownProtos=kernel.function("icmp_send")
|
||||
+probe ipmib.InUnknownProtos=kernel.function("__icmp_send")
|
||||
{
|
||||
skb = $skb_in;
|
||||
op = 1;
|
||||
@@ -360,7 +360,7 @@ probe ipmib.OutRequests=kernel.function("ip_output"),
|
||||
* counted in the global @ReasmTimeout (equivalent to SNMP's MIB
|
||||
* IPSTATS_MIB_REASMTIMEOUT)
|
||||
*/
|
||||
-probe ipmib.ReasmTimeout=kernel.function("icmp_send")
|
||||
+probe ipmib.ReasmTimeout=kernel.function("__icmp_send")
|
||||
{
|
||||
skb = $skb_in;
|
||||
op = 0;
|
||||
diff --git a/tapset/linux/linuxmib.stp b/tapset/linux/linuxmib.stp
|
||||
index 63ec248..cb92875 100644
|
||||
--- a/tapset/linux/linuxmib.stp
|
||||
+++ b/tapset/linux/linuxmib.stp
|
||||
@@ -30,7 +30,7 @@ probe linuxmib.DelayedACKs = _linuxmib.DelayedACKs.* {}
|
||||
|
||||
probe _linuxmib.DelayedACKs.A = kernel.function("tcp_send_ack")
|
||||
{
|
||||
- sk=$sk
|
||||
+ sk=pointer_arg(1)
|
||||
if ( !indelack_timer[sk] ) next
|
||||
op=1
|
||||
key = linuxmib_filter_key(sk,op);
|
||||
diff --git a/testsuite/systemtap.examples/network/tcp_trace.stp b/testsuite/systemtap.examples/network/tcp_trace.stp
|
||||
index 65a32f2..98c77c0 100755
|
||||
--- a/testsuite/systemtap.examples/network/tcp_trace.stp
|
||||
+++ b/testsuite/systemtap.examples/network/tcp_trace.stp
|
||||
@@ -192,7 +192,7 @@ probe kernel.{function("tcp_rcv_established"),
|
||||
}
|
||||
}
|
||||
|
||||
-probe kernel.function("tcp_transmit_skb")
|
||||
+probe kernel.function("__tcp_transmit_skb")
|
||||
{
|
||||
sk = $sk
|
||||
key = filter_key(sk)
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
From cea3c6a744e5f0d2017e5cc11033b8d226b482f9 Mon Sep 17 00:00:00 2001
|
||||
From: langfei <langfei@huawei.com>
|
||||
Date: Wed, 5 Jul 2023 10:45:23 +0800
|
||||
Subject: [PATCH] local is only valid in functions for shellcheck sc2168
|
||||
|
||||
Signed-off-by: langfei <langfei@huawei.com>
|
||||
---
|
||||
doc/Tapset_Reference_Guide/publicanize.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/doc/Tapset_Reference_Guide/publicanize.sh b/doc/Tapset_Reference_Guide/publicanize.sh
|
||||
index 330409e..97254fe 100755
|
||||
--- a/doc/Tapset_Reference_Guide/publicanize.sh
|
||||
+++ b/doc/Tapset_Reference_Guide/publicanize.sh
|
||||
@@ -22,7 +22,7 @@ do
|
||||
val=`printf %s $1 | awk -F= '{print $2}'`
|
||||
shift
|
||||
if test -z "$val"; then
|
||||
- local possibleval=$1
|
||||
+ possibleval=$1
|
||||
printf %s $1 "$possibleval" | grep ^- >/dev/null 2>&1
|
||||
if test "$?" != "0"; then
|
||||
val=$possibleval
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
name: systemtap
|
||||
old_version: 4.1
|
||||
new_version: 4.3
|
||||
interface_differences:
|
||||
- type: 'feature'
|
||||
item: 支持eBPF功能
|
||||
diff: 新增
|
||||
influence: 支持prometheus导出器、procfs探针等eBPF功能
|
||||
- type: 'feature'
|
||||
item: 同名probe解析功能
|
||||
diff: 新增
|
||||
influence: 支持用不同的PC地址去区分多个同名的probe
|
||||
- type: 'feature'
|
||||
item: 后端执行器支持try-catch捕获异常
|
||||
diff: 新增
|
||||
influence: 不影响
|
||||
- type: 'ABI'
|
||||
item: 新增gettimeofday()
|
||||
diff: 返回当前的时间
|
||||
influence: 不影响
|
||||
- type: 'ABI'
|
||||
item: 新增dump_stack()
|
||||
diff: 打印内核调用栈
|
||||
influence: 不影响
|
||||
- type: 'ABI'
|
||||
item: gettimeofday_*
|
||||
diff: 返回当前的时间
|
||||
influence: 不影响
|
||||
- type: 'CLI'
|
||||
item: 加强对$variable变量类型的检查
|
||||
diff: 可能在解析和编译的时候输出更多的告警信息
|
||||
influence: 尽可能的修正这些告警信息,虽然不会影响最终的执行结果
|
||||
remark: '功能增强,无影响;'
|
||||
Binary file not shown.
Binary file not shown.
+75
-5
@@ -21,13 +21,20 @@
|
||||
%undefine __brp_mangle_shebangs
|
||||
|
||||
Name: systemtap
|
||||
Version: 4.3
|
||||
Version: 4.9
|
||||
Release: 1
|
||||
Summary: Linux trace and probe tool
|
||||
License: GPLv2+ and Public Domain
|
||||
URL: http://sourceware.org/systemtap
|
||||
Source: https://sourceware.org/systemtap/ftp/releases/%{name}-%{version}.tar.gz
|
||||
|
||||
Patch1: 0001-PR30405-stapkp_init-we-should-not-disable-preemption.patch
|
||||
Patch2: 0001-Support-newer-kernels-with-struct-module_memory.patch
|
||||
Patch3: 0001-PR30415-conflicting-types-for-kallsyms_on_each_symbo.patch
|
||||
|
||||
Patch9000: huawei-fix-network-tcp-test-error.patch
|
||||
Patch9001: huawei-local-is-only-valid-in-functions-for-shellche-sc2168.patch
|
||||
|
||||
BuildRequires: gcc-c++ emacs systemd python3-setuptools
|
||||
BuildRequires: gettext-devel rpm-devel readline-devel
|
||||
BuildRequires: pkgconfig(nss) pkgconfig(avahi-client)
|
||||
@@ -44,7 +51,6 @@ BuildRequires: crash-devel zlib-devel
|
||||
%endif
|
||||
|
||||
Requires: systemtap-client = %{version}-%{release}
|
||||
Requires: systemtap-devel = %{version}-%{release}
|
||||
|
||||
%description
|
||||
SystemTap is an instrumentation system for systems running Linux.
|
||||
@@ -55,7 +61,7 @@ the components needed to locally develop and execute systemtap scripts.
|
||||
%package devel
|
||||
Summary: Programmable system-wide instrumentation system - development headers, tools
|
||||
License: GPLv2+
|
||||
Requires: gcc make kernel-devel systemd
|
||||
Requires: make kernel-devel systemd
|
||||
|
||||
%description devel
|
||||
This package contains the components needed to compile a systemtap
|
||||
@@ -160,6 +166,17 @@ This package includes files for a systemd service that manages
|
||||
systemtap sessions and relays prometheus metrics from the sessions
|
||||
to remote requesters on demand.
|
||||
|
||||
%package jupyter
|
||||
Summary: ISystemtap jupyter kernel and examples
|
||||
License: GPLv2+
|
||||
URL: http://sourceware.org/systemtap/
|
||||
Requires: systemtap = %{version}-%{release}
|
||||
|
||||
%description jupyter
|
||||
This package includes files needed to build and run
|
||||
the interactive systemtap Jupyter kernel, either locally
|
||||
or within a container.
|
||||
|
||||
%package help
|
||||
Summary: systemtap manual
|
||||
License: GPLv2+
|
||||
@@ -169,7 +186,7 @@ URL: http://sourceware.org/systemtap
|
||||
This package include systemtap manual
|
||||
|
||||
%prep
|
||||
%setup -q %{?setup_elfutils}
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%configure \
|
||||
@@ -325,8 +342,11 @@ fi
|
||||
exit 0
|
||||
|
||||
%preun stap-exporter
|
||||
if [ "$1" -eq "0" ] ; then
|
||||
/bin/systemctl stop stap-exporter.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl disable stap-exporter.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%post
|
||||
/bin/systemctl enable systemtap.service >/dev/null 2>&1 || :
|
||||
@@ -382,6 +402,7 @@ exit 0
|
||||
%files devel -f systemtap.lang
|
||||
%{_bindir}/stap
|
||||
%{_bindir}/stap-prep
|
||||
%{_bindir}/stap-profile-annotate
|
||||
%{_bindir}/stap-report
|
||||
%dir %{_datadir}/systemtap
|
||||
%{_datadir}/systemtap/runtime
|
||||
@@ -448,11 +469,60 @@ exit 0
|
||||
/usr/sbin/stap-exporter
|
||||
/etc/sysconfig/stap-exporter
|
||||
|
||||
%files jupyter
|
||||
%{_bindir}/stap-jupyter-container
|
||||
%{_bindir}/stap-jupyter-install
|
||||
%{_mandir}/man1/stap-jupyter.1*
|
||||
%dir %{_datadir}/systemtap
|
||||
%{_datadir}/systemtap/interactive-notebook
|
||||
|
||||
%files help
|
||||
%{_mandir}/man[1378]/*
|
||||
|
||||
%changelog
|
||||
* Thu Jul 21 2020 jinzhimin <jinzhimin2@huawei.com> - 4.3-1
|
||||
* Wed Sep 6 2023 langfei<langfei@huawei.com> - 4.9-1
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:Upgrade to 4.9
|
||||
|
||||
* Tue Aug 8 2023 langfei<langfei@huawei.com> - 4.5-7
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:Adapts to gcc 12 and python 3.11
|
||||
|
||||
* Wed Jul 5 2023 langfei<langfei@huawei.com> - 4.5-6
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:Fix some test cases fail to be executed, Resolve the sc2168 warning detected by the shellcheck tool.
|
||||
|
||||
* Mon Feb 6 2023 langfei<langfei@huawei.com> - 4.5-5
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:Solve systemtap build problem in openEuler:MultiLanguage
|
||||
|
||||
* Mon Dec 5 2022 langfei<langfei@huawei.com> - 4.5-4
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:Resolve stap-exporter.service chenge to disable when upgraded systemtap-stap-exporter package
|
||||
|
||||
* Fri Apr 8 2022 zhouwenpei <zhouwenpei1@h-partners.com> - 4.5-3
|
||||
- Add int type cast to resolve gcc issue for option Wformat=2
|
||||
|
||||
* Tue Feb 15 2022 zhouwenpei <zhouwenpei1@h-partners.com> - 4.5-2
|
||||
- Remove requires on gcc and systemtap-devel
|
||||
|
||||
* Thu Dec 2 2021 zhouwenpei <zhouwenpei1@huawei.com> - 4.5-1
|
||||
- upgrade to 4.5
|
||||
|
||||
* Mon Feb 1 2021 xinghe <xinghe1@huawei.com> - 4.4-1
|
||||
- upgrade to 4.4
|
||||
|
||||
* Tue Jul 21 2020 jinzhimin <jinzhimin2@huawei.com> - 4.3-1
|
||||
- upgrade to 4.3
|
||||
|
||||
* Fri Mar 13 2020 yuxiangyang <yuxiangyang4@huawei.com> - 4.1.3
|
||||
|
||||
Reference in New Issue
Block a user