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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions