Skip to content

runqlat: failed to run and returns -ENOTSUPP #5436

@LinuxZrc

Description

@LinuxZrc

Hello, I tried running runqlat in my arm-32bit embedded environment to debug scheduling latency issues. After cross compiling, I encountered the following error - ENOTSUPP. Is it due to a low kernel version that is not supported, or is it a compatibility support issue on arm-32bit? How to further investigate and locate the problem, thank you!

  • kernel: linux-5.4.61 (BTF spported)
  • chang: CLANG-18 -bpf ARM
  • cross-compiler: arm-linux-gnueabihf-7.3.1
libbpf: sched_wakeup is not found in vmlinux BTF
libbpf: prog 'handle_sched_switch': BPF program load failed: -ENOTSUPP
libbpf: prog 'handle_sched_switch': -- BEGIN PROG LOAD LOG --
; int BPF_PROG(handle_sched_switch, bool preempt, struct task_struct *prev, struct task_struct *next)
0: (79) r2 = *(u64 *)(r1 +16)
1: (79) r1 = *(u64 *)(r1 +8)
; return handle_switch(preempt, prev, next);
2: (85) call pc+2
caller:
 R10=fp0
callee:
 frame1: R1_w=invP(id=0) R2_w=invP(id=0) R10=fp0
; static int handle_switch(bool preempt, struct task_struct *prev, struct task_struct *next)
5: (bf) r6 = r2
6: (bf) r7 = r1
; if (filter_cg && !bpf_current_task_under_cgroup(&cgroup_map, 0))
7: (18) r1 = 0xc5210b90
9: (71) r1 = *(u8 *)(r1 +0)
 frame1: R1_w=map_value(id=0,off=0,ks=4,vs=12,imm=0) R2_w=invP(id=0) R6_w=invP(id=0) R7_w=invP(id=0) R10=fp0
; if (filter_cg && !bpf_current_task_under_cgroup(&cgroup_map, 0))
10: (15) if r1 == 0x0 goto pc+5
 frame1: R1_w=invP(id=0,umax_value=255,var_off=(0x0; 0xff)) R2_w=invP(id=0) R6_w=invP(id=0) R7_w=invP(id=0) R10=fp0

....

from 10 to 16: frame1: R1_w=invP0 R2_w=invP(id=0) R6_w=invP(id=0) R7_w=invP(id=0) R10=fp0
; if (filter_cg && !bpf_current_task_under_cgroup(&cgroup_map, 0))
16: (b7) r1 = 0
; if (bpf_core_field_exists(t->__state))
17: (15) if r1 == 0x0 goto pc+10
; if (get_task_state(prev) == TASK_RUNNING)
28: (b7) r1 = 0
29: (bf) r3 = r7
30: (0f) r3 += r1
31: (bf) r1 = r10
; return BPF_CORE_READ((struct task_struct___o *)task, state);
32: (07) r1 += -16
33: (b7) r2 = 8
34: (85) call bpf_probe_read#4
35: safe
processed 735 insns (limit 1000000) max_states_per_insn 4 total_states 49 peak_states 45 mark_read 6
-- END PROG LOAD LOG --
libbpf: prog 'handle_sched_switch': failed to load: -ENOTSUPP
libbpf: failed to load object 'runqlat_bpf'
libbpf: failed to load BPF skeleton 'runqlat_bpf': -ENOTSUPP
failed to load BPF object: -524

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