Skip to content

Error running on Linux kernel 6.14.2 x86_64 #2

@ianic

Description

@ianic

Trying to run it on kernel 6.14.2 but got libbpf error:

$ sudo /home/ianic/.opam/default/bin/uring-trace

libbpf: prog 'handle_task_work_run': BPF program load failed: Invalid argument
libbpf: prog 'handle_task_work_run': -- BEGIN PROG LOAD LOG --
0: R1=ctx() R10=fp0
; int handle_task_work_run(struct trace_event_raw_io_uring_task_work_run *ctx) { @ uring.bpf.c:286
0: (bf) r6 = r1                       ; R1=ctx() R6_w=ctx()
; value = bpf_map_lookup_elem(&globals, idx); @ uring.bpf.c:35
1: (18) r1 = 0xffff959c9b9b3400       ; R1_w=map_ptr(map=globals,ks=4,vs=8)
3: (18) r2 = 0xffffb3e44c4cc004       ; R2_w=map_value(map=uring_tr.rodata,ks=4,vs=58,off=4)
5: (85) call bpf_map_lookup_elem#1    ; R0_w=map_value_or_null(id=1,map=globals,ks=4,vs=8)
; if (value == NULL) { @ uring.bpf.c:36
6: (55) if r0 != 0x0 goto pc+5        ; R0_w=0
; bpf_printk("Error got NULL"); @ uring.bpf.c:37
7: (18) r1 = 0xffffb3e44c4cc01c       ; R1_w=map_value(map=uring_tr.rodata,ks=4,vs=58,off=28)
9: (b4) w2 = 15                       ; R2_w=15
10: (85) call bpf_trace_printk#6      ; R0=scalar()
; return; @ uring.bpf.c:38
11: (05) goto pc+10
; value = bpf_map_lookup_elem(&globals, idx); @ uring.bpf.c:35
22: (18) r1 = 0xffff959c9b9b3400      ; R1_w=map_ptr(map=globals,ks=4,vs=8)
24: (18) r2 = 0xffffb3e44c4cc018      ; R2_w=map_value(map=uring_tr.rodata,ks=4,vs=58,off=24)
26: (85) call bpf_map_lookup_elem#1   ; R0_w=map_value_or_null(id=2,map=globals,ks=4,vs=8)
; if (value == NULL) { @ uring.bpf.c:36
27: (55) if r0 != 0x0 goto pc+5       ; R0_w=0
; bpf_printk("Error got NULL"); @ uring.bpf.c:37
28: (18) r1 = 0xffffb3e44c4cc01c      ; R1_w=map_value(map=uring_tr.rodata,ks=4,vs=58,off=28)
30: (b4) w2 = 15                      ; R2_w=15
31: (85) call bpf_trace_printk#6      ; R0=scalar()
; return; @ uring.bpf.c:38
32: (05) goto pc+10
; e = bpf_ringbuf_reserve(&rb, sizeof(*e), 0); @ uring.bpf.c:71
43: (18) r1 = 0xffff959c88394100      ; R1_w=map_ptr(map=rb,ks=0,vs=0)
45: (b7) r2 = 264                     ; R2_w=264
46: (b7) r3 = 0                       ; R3_w=0
47: (85) call bpf_ringbuf_reserve#131         ; R0_w=ringbuf_mem_or_null(id=4,ref_obj_id=4,sz=264) refs=4
48: (bf) r7 = r0                      ; R0_w=ringbuf_mem_or_null(id=4,ref_obj_id=4,sz=264) R7_w=ringbuf_mem_or_null(id=4,ref_obj_id=4,sz=264) refs=4
; if (!e) { @ uring.bpf.c:72
49: (55) if r7 != 0x0 goto pc+11 61: R0_w=ringbuf_mem(ref_obj_id=4,sz=264) R6=ctx() R7_w=ringbuf_mem(ref_obj_id=4,sz=264) R10=fp0 refs=4
; id = bpf_get_current_pid_tgid(); @ uring.bpf.c:76
61: (85) call bpf_get_current_pid_tgid#14     ; R0_w=scalar() refs=4
62: (b4) w1 = 7                       ; R1_w=7 refs=4
; e->ty = ty; @ uring.bpf.c:77
63: (63) *(u32 *)(r7 +0) = r1         ; R1_w=7 R7_w=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
; e->tid = id; @ uring.bpf.c:79
64: (63) *(u32 *)(r7 +8) = r0         ; R0_w=scalar() R7_w=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
; e->pid = id >> 32; @ uring.bpf.c:78
65: (77) r0 >>= 32                    ; R0_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) refs=4
66: (63) *(u32 *)(r7 +4) = r0         ; R0_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R7_w=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
; e->ts = bpf_ktime_get_ns(); @ uring.bpf.c:80
67: (85) call bpf_ktime_get_ns#5      ; R0=scalar() refs=4
68: (7b) *(u64 *)(r7 +16) = r0        ; R0=scalar() R7=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
; bpf_get_current_comm(&e->comm, sizeof(e->comm)); @ uring.bpf.c:81
69: (bf) r1 = r7                      ; R1_w=ringbuf_mem(ref_obj_id=4,sz=264) R7=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
70: (07) r1 += 24                     ; R1_w=ringbuf_mem(ref_obj_id=4,off=24,sz=264) refs=4
71: (b4) w2 = 16                      ; R2_w=16 refs=4
72: (85) call bpf_get_current_comm#16         ; R0_w=scalar() refs=4
; extra->tctx = ctx->tctx; @ uring.bpf.c:296
73: (79) r1 = *(u64 *)(r6 +8)         ; R1_w=scalar() R6=ctx() refs=4
74: (7b) *(u64 *)(r7 +40) = r1        ; R1_w=scalar() R7=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
; extra->count = ctx->count; @ uring.bpf.c:297
75: (61) r1 = *(u32 *)(r6 +16)        ; R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=ctx() refs=4
76: (63) *(u32 *)(r7 +48) = r1        ; R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R7=ringbuf_mem(ref_obj_id=4,sz=264) refs=4
; extra->loops = ctx->loops; @ uring.bpf.c:298
77: <invalid CO-RE relocation>
failed to resolve CO-RE relocation <byte_off> [63] struct trace_event_raw_io_uring_task_work_run.loops (0:3 @ offset 20)
processed 60 insns (limit 1000000) max_states_per_insn 0 total_states 5 peak_states 5 mark_read 3
-- END PROG LOAD LOG --
libbpf: prog 'handle_task_work_run': failed to load: -22
libbpf: failed to load object '/home/ianic/.opam/default/share/uring-trace/bpf/uring-trace.bpf.o'
uring-trace: internal error, uncaught exception:
             Failure("Could not load bpf_object, got exit -22")


$ uname -a
Linux 6.14.2-061402-generic x86_64 x86_64 x86_64 GNU/Linux

$ opam info libbpf

<><> libbpf: information on all versions ><><><><><><><><><><><><><><><><><><><>
name                   libbpf
all-installed-versions 0.1.0 [default]
all-versions           0.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions