summaryrefslogtreecommitdiff
path: root/SOURCE
diff options
context:
space:
mode:
authorWen Yang <[email protected]>2021-11-13 23:08:10 +0800
committerWen Yang <[email protected]>2021-11-13 23:08:10 +0800
commit35715d429531f6286e596efd89f6ceef03daceb9 (patch)
treef06e59f388b88bf9b995eb0321acc197eeed4d2a /SOURCE
parent19c8cbdf483bb14b4dae02cee41bc657bf98909c (diff)
diagnost-tools: 适配kernel 5.10 + glibc 2.32
Diffstat (limited to 'SOURCE')
-rw-r--r--SOURCE/diagnose-tools/Makefile2
-rwxr-xr-xSOURCE/module/kernel/load.c2
-rw-r--r--SOURCE/module/mm/memcg_stats.c8
-rwxr-xr-xSOURCE/module/stub.c10
-rw-r--r--SOURCE/uapi/load_monitor.h2
5 files changed, 20 insertions, 4 deletions
diff --git a/SOURCE/diagnose-tools/Makefile b/SOURCE/diagnose-tools/Makefile
index 0b0c9f3..f2cf955 100644
--- a/SOURCE/diagnose-tools/Makefile
+++ b/SOURCE/diagnose-tools/Makefile
@@ -3,7 +3,7 @@ VENDER_LDFLAGS ?= -L../../deps/lib
arch=$(shell uname -i)
ifeq ($(arch),x86_64)
-LDFLAGS = $(VENDER_LDFLAGS) -static-libgcc -static-libstdc++ -lgcc_eh -lunwind-x86_64 -lunwind -lelf \
+LDFLAGS = $(VENDER_LDFLAGS) -static-libgcc -static-libstdc++ -lgcc_eh -lunwind-x86_64 -lunwind -lelf -llzma \
-L`pwd` -L/usr/lib64 -I./ -lz \
-lssh2 -ldl -lpthread -Wl,-allow-multiple-definition
else
diff --git a/SOURCE/module/kernel/load.c b/SOURCE/module/kernel/load.c
index 09f4f42..ce34668 100755
--- a/SOURCE/module/kernel/load.c
+++ b/SOURCE/module/kernel/load.c
@@ -96,7 +96,7 @@ static void load_monitor_ipi(void *ignore)
cpu_run->id = get_cycles();
cpu_run->et_type = et_load_monitor_cpu_run;
cpu_run->cpu = cpu;
- do_gettimeofday(&cpu_run->tv);
+ do_diag_gettimeofday(&cpu_run->tv);
diag_task_brief(tsk, &cpu_run->task);
diag_task_kern_stack(tsk, &cpu_run->kern_stack);
diff --git a/SOURCE/module/mm/memcg_stats.c b/SOURCE/module/mm/memcg_stats.c
index d1358b6..dc00824 100644
--- a/SOURCE/module/mm/memcg_stats.c
+++ b/SOURCE/module/mm/memcg_stats.c
@@ -8,14 +8,19 @@
#include <linux/slab.h>
#include <linux/kprobes.h>
#include <linux/kallsyms.h>
-#include <linux/page_counter.h>
#include <linux/kernfs.h>
+#include <linux/version.h>
+#if KERNEL_VERSION(4, 9, 0) <= LINUX_VERSION_CODE
+#include <linux/kernfs.h>
+#endif
#include <asm/delay.h>
#include "uapi/ali_diagnose.h"
#include "uapi/memcg_stats.h"
#include "pub/variant_buffer.h"
#include "internal.h"
+#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 9, 0)
+
static struct mem_cgroup * (*orig_mem_cgroup_iter)(struct mem_cgroup *,
struct mem_cgroup *,
struct mem_cgroup_reclaim_cookie *) = NULL;
@@ -406,3 +411,4 @@ void diag_memcg_stats_exit(void)
destroy_diag_variant_buffer(&memcg_stats_variant_buffer);
}
+#endif
diff --git a/SOURCE/module/stub.c b/SOURCE/module/stub.c
index 04b94b7..8d979f8 100755
--- a/SOURCE/module/stub.c
+++ b/SOURCE/module/stub.c
@@ -1237,3 +1237,13 @@ int __weak memcg_stats_syscall(struct pt_regs *regs, long id)
{
return -ENOSYS;
}
+
+int __weak activate_memcg_stats(void)
+{
+ return -EINVAL;
+}
+
+int __weak deactivate_memcg_stats(void)
+{
+ return -EINVAL;
+}
diff --git a/SOURCE/uapi/load_monitor.h b/SOURCE/uapi/load_monitor.h
index f4f91e9..4dc0fcf 100644
--- a/SOURCE/uapi/load_monitor.h
+++ b/SOURCE/uapi/load_monitor.h
@@ -47,7 +47,7 @@ struct load_monitor_cpu_run {
int et_type;
unsigned long id;
unsigned long cpu;
- struct timeval tv;
+ struct diag_timespec tv;
struct diag_task_detail task;
struct diag_kern_stack_detail kern_stack;
struct diag_user_stack_detail user_stack;