adapt libbpf v0.8
(cherry picked from commit 692e6ed146b15729a991e54a7b57223e9484e15c)
This commit is contained in:
parent
d7ac92e344
commit
dd9945e2a1
140
adapt-libbpf-v08.patch
Normal file
140
adapt-libbpf-v08.patch
Normal file
@ -0,0 +1,140 @@
|
||||
From d3a5b078c4566c966280dad7a5efa7e74053b718 Mon Sep 17 00:00:00 2001
|
||||
From: wo_cow <niuqianqian@huawei.com>
|
||||
Date: Thu, 17 Nov 2022 16:29:47 +0800
|
||||
Subject: [PATCH] adapt libbpf v0.8
|
||||
|
||||
---
|
||||
.../ebpf.probe/src/include/__bpf_usr.h | 32 ++++++++++++++-----
|
||||
.../extends/ebpf.probe/src/include/bpf.h | 4 ++-
|
||||
.../ebpf.probe/src/ioprobe/io_count.bpf.c | 2 +-
|
||||
.../ebpf.probe/src/ioprobe/io_err.bpf.c | 2 +-
|
||||
src/probes/extends/ebpf.probe/src/mk/var.mk | 5 +++
|
||||
5 files changed, 34 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/probes/extends/ebpf.probe/src/include/__bpf_usr.h b/src/probes/extends/ebpf.probe/src/include/__bpf_usr.h
|
||||
index d75070c..95e7160 100644
|
||||
--- a/src/probes/extends/ebpf.probe/src/include/__bpf_usr.h
|
||||
+++ b/src/probes/extends/ebpf.probe/src/include/__bpf_usr.h
|
||||
@@ -37,14 +37,6 @@
|
||||
|
||||
#define bpf_section(NAME) __attribute__((section(NAME), used))
|
||||
|
||||
-#define UPROBE(func, type) \
|
||||
- bpf_section("uprobe/" #func) \
|
||||
- void ubpf_##func(struct type *ctx)
|
||||
-
|
||||
-#define URETPROBE(func, type) \
|
||||
- bpf_section("uretprobe/" #func) \
|
||||
- void ubpf_ret_##func(struct type *ctx)
|
||||
-
|
||||
#define UPROBE_PARMS_STASH(func, ctx, prog_id) \
|
||||
do { \
|
||||
int ret; \
|
||||
@@ -63,7 +55,30 @@
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
+#if (CURRENT_LIBBPF_VERSION >= LIBBPF_VERSION(0, 8))
|
||||
+#define UPROBE(func, type) \
|
||||
+ bpf_section("uprobe") \
|
||||
+ void ubpf_##func(struct type *ctx)
|
||||
+
|
||||
+#define URETPROBE(func, type) \
|
||||
+ bpf_section("uretprobe") \
|
||||
+ void ubpf_ret_##func(struct type *ctx)
|
||||
+#define UPROBE_RET(func, type, prog_id) \
|
||||
+ bpf_section("uprobe") \
|
||||
+ void __uprobe_bpf_##func(struct type *ctx) { \
|
||||
+ UPROBE_PARMS_STASH(func, ctx, prog_id); \
|
||||
+ } \
|
||||
+ \
|
||||
+ bpf_section("uretprobe") \
|
||||
+ void __uprobe_ret_bpf_##func(struct type *ctx)
|
||||
+#else
|
||||
+#define UPROBE(func, type) \
|
||||
+ bpf_section("uprobe/" #func) \
|
||||
+ void ubpf_##func(struct type *ctx)
|
||||
|
||||
+#define URETPROBE(func, type) \
|
||||
+ bpf_section("uretprobe/" #func) \
|
||||
+ void ubpf_ret_##func(struct type *ctx)
|
||||
#define UPROBE_RET(func, type, prog_id) \
|
||||
bpf_section("uprobe/" #func) \
|
||||
void __uprobe_bpf_##func(struct type *ctx) { \
|
||||
@@ -72,6 +87,7 @@
|
||||
\
|
||||
bpf_section("uretprobe/" #func) \
|
||||
void __uprobe_ret_bpf_##func(struct type *ctx)
|
||||
+#endif
|
||||
|
||||
#endif
|
||||
|
||||
diff --git a/src/probes/extends/ebpf.probe/src/include/bpf.h b/src/probes/extends/ebpf.probe/src/include/bpf.h
|
||||
index cfeca26..5008c2a 100644
|
||||
--- a/src/probes/extends/ebpf.probe/src/include/bpf.h
|
||||
+++ b/src/probes/extends/ebpf.probe/src/include/bpf.h
|
||||
@@ -19,10 +19,12 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
-
|
||||
#define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
|
||||
#define CURRENT_KERNEL_VERSION KERNEL_VERSION(KER_VER_MAJOR, KER_VER_MINOR, KER_VER_PATCH)
|
||||
|
||||
+#define LIBBPF_VERSION(a, b) (((a) << 8) + (b))
|
||||
+#define CURRENT_LIBBPF_VERSION LIBBPF_VERSION(LIBBPF_VER_MAJOR, LIBBPF_VER_MINOR)
|
||||
+
|
||||
#include "__share_map_match.h"
|
||||
#include "__obj_map.h"
|
||||
#include "__bpf_kern.h"
|
||||
diff --git a/src/probes/extends/ebpf.probe/src/ioprobe/io_count.bpf.c b/src/probes/extends/ebpf.probe/src/ioprobe/io_count.bpf.c
|
||||
index 042292d..8fd71cb 100644
|
||||
--- a/src/probes/extends/ebpf.probe/src/ioprobe/io_count.bpf.c
|
||||
+++ b/src/probes/extends/ebpf.probe/src/ioprobe/io_count.bpf.c
|
||||
@@ -105,7 +105,7 @@ static __always_inline char is_write_bio(struct block_bio_queue_args *bio)
|
||||
}
|
||||
|
||||
bpf_section("tracepoint/block/block_bio_queue")
|
||||
-static void tracepoint_block_bio_queue(struct block_bio_queue_args *ctx)
|
||||
+void tracepoint_block_bio_queue(struct block_bio_queue_args *ctx)
|
||||
{
|
||||
u32 bio_size;
|
||||
int major, minor;
|
||||
diff --git a/src/probes/extends/ebpf.probe/src/ioprobe/io_err.bpf.c b/src/probes/extends/ebpf.probe/src/ioprobe/io_err.bpf.c
|
||||
index d60a3d7..b48f766 100644
|
||||
--- a/src/probes/extends/ebpf.probe/src/ioprobe/io_err.bpf.c
|
||||
+++ b/src/probes/extends/ebpf.probe/src/ioprobe/io_err.bpf.c
|
||||
@@ -112,7 +112,7 @@ static __always_inline void update_io_err(struct block_rq_complete_args* ctx, st
|
||||
}
|
||||
|
||||
bpf_section("tracepoint/block/block_rq_complete")
|
||||
-static void tracepoint_block_rq_complete(struct block_rq_complete_args *ctx)
|
||||
+void tracepoint_block_rq_complete(struct block_rq_complete_args *ctx)
|
||||
{
|
||||
int major, minor;
|
||||
struct io_err_s *io_err = NULL;
|
||||
diff --git a/src/probes/extends/ebpf.probe/src/mk/var.mk b/src/probes/extends/ebpf.probe/src/mk/var.mk
|
||||
index e41603c..2522a6f 100644
|
||||
--- a/src/probes/extends/ebpf.probe/src/mk/var.mk
|
||||
+++ b/src/probes/extends/ebpf.probe/src/mk/var.mk
|
||||
@@ -30,12 +30,17 @@ KER_VER_PATCH = $(shell echo $(KER_VER) | awk -F'.' '{print $$3}')
|
||||
RELEASE_INFOS = $(shell uname -r | awk -F'-' '{print $$2}')
|
||||
KER_RELEASE = $(shell echo $(RELEASE_INFOS) | awk -F'.' '{print $$1}')
|
||||
|
||||
+LIBBPF_VER = $(shell rpm -qa | grep libbpf-devel | awk -F'-' '{print $$3}')
|
||||
+LIBBPF_VER_MAJOR = $(shell echo $(LIBBPF_VER) | awk -F'.' '{print $$1}')
|
||||
+LIBBPF_VER_MINOR = $(shell echo $(LIBBPF_VER) | awk -F'.' '{print $$2}')
|
||||
+
|
||||
LINK_TARGET ?= -lpthread -lbpf -lelf -llog4cplus -lz -lconfig
|
||||
EXTRA_CFLAGS ?= -g -O2 -Wall -fPIC
|
||||
EXTRA_CDEFINE ?= -D__TARGET_ARCH_$(ARCH)
|
||||
CFLAGS := $(EXTRA_CFLAGS) $(EXTRA_CDEFINE)
|
||||
CFLAGS += -DKER_VER_MAJOR=$(KER_VER_MAJOR) -DKER_VER_MINOR=$(KER_VER_MINOR) -DKER_VER_PATCH=$(KER_VER_PATCH)
|
||||
CFLAGS += -DKER_RELEASE=$(KER_RELEASE)
|
||||
+CFLAGS += -DLIBBPF_VER_MAJOR=$(LIBBPF_VER_MAJOR) -DLIBBPF_VER_MINOR=$(LIBBPF_VER_MINOR)
|
||||
LDFLAGS += -Wl,--copy-dt-needed-entries -Wl,-z,relro,-z,now
|
||||
|
||||
CXXFLAGS += -std=c++11 -g -O2 -Wall -fPIC
|
||||
--
|
||||
2.36.0.windows.1
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
Summary: Intelligent ops toolkit for openEuler
|
||||
Name: gala-gopher
|
||||
Version: 1.0.0
|
||||
Release: 5
|
||||
Release: 6
|
||||
License: Mulan PSL v2
|
||||
URL: https://gitee.com/openeuler/gala-gopher
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
@ -25,6 +25,7 @@ patch1: modify-to-adapt-to-oe2203-LTS-SP1-x86.patch
|
||||
patch1: modify-to-adapt-to-oe2203-LTS-SP1-arm.patch
|
||||
%endif
|
||||
patch2: fix-pgsliprobe.patch
|
||||
patch3: adapt-libbpf-v08.patch
|
||||
|
||||
%description
|
||||
gala-gopher is a low-overhead eBPF-based probes framework
|
||||
@ -71,6 +72,10 @@ popd
|
||||
/usr/lib/systemd/system/gala-gopher.service
|
||||
|
||||
%changelog
|
||||
|
||||
* Thu Nov 17 2022 wo_cow <niuqianqian@huawei.com> - 1.0.0-6
|
||||
- adapt libbpf v0.8
|
||||
|
||||
* Thu Nov 17 2022 Zhen Chen <chenzhen126@huawei.com> - 1.0.0-5
|
||||
- add flamegraph-stackcollapse to Requires
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user