aboutsummaryrefslogtreecommitdiff
path: root/ebpf
diff options
context:
space:
mode:
authorAndrew Melnychenko <andrew@daynix.com>2024-04-22 16:51:16 +0300
committerJason Wang <jasowang@redhat.com>2024-06-04 15:14:26 +0800
commitdcab53611191f50cf4feabc1d8794d04afe53407 (patch)
tree11f06af1f8af7b3c0a35c9dad71dedba8cbfb719 /ebpf
parent2c3e4e2de699cd4d9f6c71f30a22d8f125cd6164 (diff)
downloadqemu-dcab53611191f50cf4feabc1d8794d04afe53407.zip
qemu-dcab53611191f50cf4feabc1d8794d04afe53407.tar.gz
qemu-dcab53611191f50cf4feabc1d8794d04afe53407.tar.bz2
ebpf: Added traces back. Changed source set for eBPF to 'system'.
There was an issue with Qemu build with "--disable-system". The traces could be generated and the build fails. The traces were 'cut out' for previous patches, and overall, the 'system' source set should be used like in pre-'eBPF blob' patches. Signed-off-by: Andrew Melnychenko <andrew@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'ebpf')
-rw-r--r--ebpf/ebpf_rss.c7
-rw-r--r--ebpf/trace.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/ebpf/ebpf_rss.c b/ebpf/ebpf_rss.c
index d102f3d..87f0714 100644
--- a/ebpf/ebpf_rss.c
+++ b/ebpf/ebpf_rss.c
@@ -25,6 +25,8 @@
#include "ebpf/rss.bpf.skeleton.h"
#include "ebpf/ebpf.h"
+#include "trace.h"
+
void ebpf_rss_init(struct EBPFRSSContext *ctx)
{
if (ctx != NULL) {
@@ -55,18 +57,21 @@ static bool ebpf_rss_mmap(struct EBPFRSSContext *ctx)
PROT_READ | PROT_WRITE, MAP_SHARED,
ctx->map_configuration, 0);
if (ctx->mmap_configuration == MAP_FAILED) {
+ trace_ebpf_error("eBPF RSS", "can not mmap eBPF configuration array");
return false;
}
ctx->mmap_toeplitz_key = mmap(NULL, qemu_real_host_page_size(),
PROT_READ | PROT_WRITE, MAP_SHARED,
ctx->map_toeplitz_key, 0);
if (ctx->mmap_toeplitz_key == MAP_FAILED) {
+ trace_ebpf_error("eBPF RSS", "can not mmap eBPF toeplitz key");
goto toeplitz_fail;
}
ctx->mmap_indirections_table = mmap(NULL, qemu_real_host_page_size(),
PROT_READ | PROT_WRITE, MAP_SHARED,
ctx->map_indirections_table, 0);
if (ctx->mmap_indirections_table == MAP_FAILED) {
+ trace_ebpf_error("eBPF RSS", "can not mmap eBPF indirection table");
goto indirection_fail;
}
@@ -108,12 +113,14 @@ bool ebpf_rss_load(struct EBPFRSSContext *ctx)
rss_bpf_ctx = rss_bpf__open();
if (rss_bpf_ctx == NULL) {
+ trace_ebpf_error("eBPF RSS", "can not open eBPF RSS object");
goto error;
}
bpf_program__set_type(rss_bpf_ctx->progs.tun_rss_steering_prog, BPF_PROG_TYPE_SOCKET_FILTER);
if (rss_bpf__load(rss_bpf_ctx)) {
+ trace_ebpf_error("eBPF RSS", "can not load RSS program");
goto error;
}
diff --git a/ebpf/trace.h b/ebpf/trace.h
new file mode 100644
index 0000000..abefc46
--- /dev/null
+++ b/ebpf/trace.h
@@ -0,0 +1 @@
+#include "trace/trace-ebpf.h"