68 lines
2.7 KiB
Diff
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
|
|
|