From e01d49b43a8dd2217fa6138376911c69a34d1a91 Mon Sep 17 00:00:00 2001 From: liaozhaoyan Date: Tue, 30 May 2023 11:13:20 +0800 Subject: [PATCH 1/3] fix compile for new coolbpf. --- .../monitor/unity/collector/plugin/Makefile | 3 ++- .../monitor/unity/collector/plugin/bpfso.mk | 6 ++--- .../plugin/virtiostat/virtiostat.bpf.c | 22 +++++++++---------- .../tools/monitor/unity/httplib/cmonCli.lua | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/source/tools/monitor/unity/collector/plugin/Makefile b/source/tools/monitor/unity/collector/plugin/Makefile index 63b7aaf7..20ba7476 100644 --- a/source/tools/monitor/unity/collector/plugin/Makefile +++ b/source/tools/monitor/unity/collector/plugin/Makefile @@ -4,7 +4,8 @@ LDFLAG := -g -fpic -shared OBJS := proto_sender.o LIB := libproto_sender.a -DEPMOD=sample threads kmsg proc_schedstat proc_loadavg unity_nosched unity_irqoff cpudist cpu_bled net_health net_retrans netlink cpufreq gpuinfo pmu_events virtout sum_retrans virtiostat +#DEPMOD=sample threads kmsg proc_schedstat proc_loadavg unity_nosched unity_irqoff cpudist cpu_bled net_health net_retrans netlink cpufreq gpuinfo pmu_events virtout sum_retrans virtiostat +DEPMOD=sample threads kmsg proc_schedstat proc_loadavg unity_irqoff cpudist cpu_bled net_health net_retrans netlink cpufreq gpuinfo pmu_events virtout sum_retrans virtiostat all: $(LIB) $(DEPMOD) diff --git a/source/tools/monitor/unity/collector/plugin/bpfso.mk b/source/tools/monitor/unity/collector/plugin/bpfso.mk index aab74175..0a3ee53f 100644 --- a/source/tools/monitor/unity/collector/plugin/bpfso.mk +++ b/source/tools/monitor/unity/collector/plugin/bpfso.mk @@ -4,7 +4,7 @@ BPFTOOL ?= $(SRC)/lib/internal/ebpf/tools/bpftool APPS_DIR := $(abspath .) prefix ?= /usr/local ARCH := $(shell uname -m | sed 's/x86_64/x86/') -COOLBPF_OBJ += $(OBJ_LIB_PATH)/libbpf.so $(OBJ_LIB_PATH)/libcoolbpf.so +COOLBPF_OBJ += $(OBJ_LIB_PATH)/lib/libcoolbpf.so ifeq ($(KERNEL_DEPEND), Y) TARGET_PATH := $(OBJ_TOOLS_PATH) @@ -16,8 +16,8 @@ DEPEND := "prev{btf}" SHARED_CFLAGS += -fPIC -DSHARED CFLAGS += $(EXTRA_CLFAGS) -g -O2 -Wall -fPIC -LDFLAGS += $(EXTRA_LDFLAGS) -L$(OBJ_LIB_PATH) -lbpf -lcoolbpf -lelf -lz -fPIC -shared -INCLUDES += $(EXTRA_INCLUDES) -I$(OBJPATH) -I$(SRC)/lib/internal/ebpf -I$(TARGET_PATH) -I$(OBJ_LIB_PATH) -I$(SRC)/lib/internal/ebpf/coolbpf/third/libbpf/include/uapi -I$(SRC)/lib/uapi/include +LDFLAGS += $(EXTRA_LDFLAGS) -L$(OBJ_LIB_PATH) -L$(COOLBPF_OBJ) -lelf -lz -fPIC -shared +INCLUDES += $(EXTRA_INCLUDES) -I$(OBJPATH) -I$(SRC)/lib/internal/ebpf -I$(TARGET_PATH) -I$(OBJ_LIB_PATH) -I$(SRC)/lib/internal/ebpf/coolbpf/third/libbpf/include/uapi -I$(SRC)/lib/uapi/include -I$(OBJ_LIB_PATH)/include/coolbpf/ ifeq ($(V),1) Q = diff --git a/source/tools/monitor/unity/collector/plugin/virtiostat/virtiostat.bpf.c b/source/tools/monitor/unity/collector/plugin/virtiostat/virtiostat.bpf.c index de54bb42..05371da8 100644 --- a/source/tools/monitor/unity/collector/plugin/virtiostat/virtiostat.bpf.c +++ b/source/tools/monitor/unity/collector/plugin/virtiostat/virtiostat.bpf.c @@ -10,19 +10,19 @@ BPF_HASH(stats, u64, virtio_stat_t, 256); -struct virtio_device_id { +struct _virtio_device_id { u32 device; u32 vendor; }; -struct virtio_device { +struct _virtio_device { int index; bool failed; bool config_enabled; bool config_change_pending; spinlock_t config_lock; struct device dev; - struct virtio_device_id id; + struct _virtio_device_id id; void *config; void *vringh_config; struct list_head vqs; @@ -30,11 +30,11 @@ struct virtio_device { void *priv; }; -struct virtqueue { +struct _virtqueue { struct list_head list; - void (*callback)(struct virtqueue *vq); + void (*callback)(struct _virtqueue *vq); const char *name; - struct virtio_device *vdev; + struct _virtio_device *vdev; unsigned int index; unsigned int num_free; void *priv; @@ -46,7 +46,7 @@ static inline void add_value(virtio_stat_t *vs, struct scatterlist **sgs, vs->in_sgs += in_sgs; } -static inline void record(struct virtqueue *vq, struct scatterlist **sgs, +static inline void record(struct _virtqueue *vq, struct scatterlist **sgs, unsigned int out_sgs, unsigned int in_sgs) { virtio_stat_t newvs = {0}; @@ -69,7 +69,7 @@ static inline void record(struct virtqueue *vq, struct scatterlist **sgs, SEC("kprobe/virtqueue_add_sgs") int trace_virtqueue_add_sgs(struct pt_regs *ctx) { - struct virtqueue *vq = (struct virtqueue *)PT_REGS_PARM1(ctx); + struct _virtqueue *vq = (struct _virtqueue *)PT_REGS_PARM1(ctx); struct scatterlist **sgs = (struct scatterlist **)PT_REGS_PARM2(ctx); u32 out_sgs = PT_REGS_PARM3(ctx); u32 in_sgs = PT_REGS_PARM4(ctx); @@ -80,7 +80,7 @@ int trace_virtqueue_add_sgs(struct pt_regs *ctx) SEC("kprobe/virtqueue_add_outbuf") int trace_virtqueue_add_outbuf(struct pt_regs *ctx) { - struct virtqueue *vq = (struct virtqueue *)PT_REGS_PARM1(ctx); + struct _virtqueue *vq = (struct _virtqueue *)PT_REGS_PARM1(ctx); struct scatterlist **sgs = (struct scatterlist **)PT_REGS_PARM2(ctx); record(vq, sgs, 1, 0); return 0; @@ -89,7 +89,7 @@ int trace_virtqueue_add_outbuf(struct pt_regs *ctx) SEC("kprobe/virtqueue_add_inbuf") int trace_virtqueue_add_inbuf(struct pt_regs *ctx) { - struct virtqueue *vq = (struct virtqueue *)PT_REGS_PARM1(ctx); + struct _virtqueue *vq = (struct _virtqueue *)PT_REGS_PARM1(ctx); struct scatterlist **sgs = (struct scatterlist **)PT_REGS_PARM2(ctx); record(vq, sgs, 0, 1); return 0; @@ -98,7 +98,7 @@ int trace_virtqueue_add_inbuf(struct pt_regs *ctx) SEC("kprobe/virtqueue_add_inbuf_ctx") int trace_virtqueue_add_inbuf_ctx(struct pt_regs *ctx) { - struct virtqueue *vq = (struct virtqueue *)PT_REGS_PARM1(ctx); + struct _virtqueue *vq = (struct _virtqueue *)PT_REGS_PARM1(ctx); struct scatterlist **sgs = (struct scatterlist **)PT_REGS_PARM2(ctx); record(vq, sgs, 0, 1); return 0; diff --git a/source/tools/monitor/unity/httplib/cmonCli.lua b/source/tools/monitor/unity/httplib/cmonCli.lua index 3f210137..2702070b 100644 --- a/source/tools/monitor/unity/httplib/cmonCli.lua +++ b/source/tools/monitor/unity/httplib/cmonCli.lua @@ -18,5 +18,5 @@ local CcmonCli = class("cmonCli", ChttpCli) function CcmonCli:_init_(cpath, proxy) ChttpCli._init_(proxy) - + self._cpath = cpath end \ No newline at end of file -- Gitee From 1490252ab80fa47d3aa02c770fe43d773e98459b Mon Sep 17 00:00:00 2001 From: liaozhaoyan Date: Tue, 30 May 2023 11:32:09 +0800 Subject: [PATCH 2/3] fix copy bugs for coolbpf. --- source/tools/monitor/unity/Makefile | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/source/tools/monitor/unity/Makefile b/source/tools/monitor/unity/Makefile index 33cfc768..2071a6ab 100644 --- a/source/tools/monitor/unity/Makefile +++ b/source/tools/monitor/unity/Makefile @@ -2,13 +2,7 @@ target := unity all: - cp $(OBJ_LIB_PATH)/libbpf.so collector/native/ - cp $(OBJ_LIB_PATH)/libbpf.so.0 collector/native/ - cp $(OBJ_LIB_PATH)/libbpf.so.0.6.0 collector/native/ - - cp $(OBJ_LIB_PATH)/libcoolbpf.so collector/native/ - cp $(OBJ_LIB_PATH)/libcoolbpf.so.0 collector/native/ - cp $(OBJ_LIB_PATH)/libcoolbpf.so.0.1.0 collector/native/ + cp $(OBJ_LIB_PATH)/lib/libcoolbpf.so* collector/native/ echo "build for beeQ" make dist -C beeQ -- Gitee From 101a911c4bf0ccdb704e1f8af4735c6c3c92f85e Mon Sep 17 00:00:00 2001 From: liaozhaoyan Date: Tue, 30 May 2023 11:59:20 +0800 Subject: [PATCH 3/3] fix bug report for downBtf. --- source/tools/monitor/unity/collector/btfLoader.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/tools/monitor/unity/collector/btfLoader.lua b/source/tools/monitor/unity/collector/btfLoader.lua index 500be2ad..76d6d687 100644 --- a/source/tools/monitor/unity/collector/btfLoader.lua +++ b/source/tools/monitor/unity/collector/btfLoader.lua @@ -40,8 +40,8 @@ end local function downBtf(path, region, machine, release) local url = "https://sysom-".. region ..".oss-".. region .."-internal.aliyuncs.com/home/hive/btf/".. machine .."/vmlinux-" .. release if not unistd.access("/boot") then - local res, err, errno = posix.mkdir("/boot") - assert(res ~= 0, err .. errno) + local res, err = posix.mkdir("/boot") + assert(res == 0, err) end local cli = ChttpCli.new() local res = cli:get(url) -- Gitee