systemtap/0001-Support-newer-kernels-with-struct-module_memory.patch
langfei295455 f84d06efbd Upgrade to 4.9
Signed-off-by: langfei <langfei@huawei.com>
2023-09-11 16:42:25 +08:00

68 lines
2.7 KiB
Diff

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