You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This discussion is for tracking the status of compatibility of eunomia-bpf on several platforms, including AARCH64, RISC-V, MIPS and POWERPC.
Recording fail cases of example/tests runs on different platforms, It's also still pending to check if it's specific distro or kernel option related.
One of the runtime implemented in Rust, which using wasmtime as backend, not support MIPS and PowerPC yet.
AARCH64
Tested on:
System: openEuler 22.03 (LTS-SP1)
Arch: aarch64
rev: current master HEAD 044c175
cargo 1.67.1 (8ecd4f20a 2023-01-10)
clang version 12.0.1 (openEuler 12.0.1-2.oe2203sp1 be6a48b606b2e8cbb42ec8cbde926)
Passed examples:
bashreadline
bootstrap
fentry-link (platforms other than x86 has no fentry calls)
kprobe-link
lsm-connect
mdflush (platforms other than x86 has no fentry calls)
minimal
opensnoop (aarch64 & riscv has no open syscall)
runqlat
sigsnoop
tc
tcpstates
Failed cases
Expand
ls ../aa/fentry-link/fentry-link.h && ../../compiler/workspace/bin/ecc ../aa/fentry-link/fentry-link.bpf.c ../aa/fentry-link/fentry-link.h \
|| ../../compiler/workspace/bin/ecc ../aa/fentry-link/fentry-link.bpf.c
ls: cannot access '../aa/fentry-link/fentry-link.h': No such file or directory
Compiling bpf object...
Packing ebpf object and config into ../aa/fentry-link/package.json...
sudo timeout --preserve-status -s 2 2 ./ecli run ../aa/fentry-link/package.json
arg: ../aa/fentry-link/package.json
libbpf: prog 'do_unlinkat': failed to attach: ERROR: strerror_r(-524)=22
libbpf: prog 'do_unlinkat': failed to auto-attach: -524
failed to attach skeleton
Error: BpfError("load and attach ebpf program failed")
make: *** [Makefile:27: fentry-link] Error 1
ls ../aa/lsm-connect/lsm-connect.h && ../../compiler/workspace/bin/ecc ../aa/lsm-connect/lsm-connect.bpf.c ../aa/lsm-connect/lsm-connect.h \
|| ../../compiler/workspace/bin/ecc ../aa/lsm-connect/lsm-connect.bpf.c
ls: cannot access '../aa/lsm-connect/lsm-connect.h': No such file or directory
Compiling bpf object...
Packing ebpf object and config into ../aa/lsm-connect/package.json...
sudo timeout --preserve-status -s 2 2 ./ecli run ../aa/lsm-connect/package.json
arg: ../aa/lsm-connect/package.json
unknown type: __u32
libbpf: prog 'restrict_connect': failed to find kernel BTF type ID of 'socket_connect': -3
libbpf: prog 'restrict_connect': failed to prepare load attributes: -3
libbpf: prog 'restrict_connect': failed to load: -3
libbpf: failed to load object 'lsm_connect_bpf'
libbpf: failed to load BPF skeleton 'lsm_connect_bpf': -3
failed to load skeleton
Error: BpfError("load and attach ebpf program failed")
make: *** [Makefile:27: lsm-connect] Error 1
Generating export types...
Packing ebpf object and config into ../aa/mdflush/package.json...
sudo timeout --preserve-status -s 2 2 ./ecli run ../aa/mdflush/package.json
arg: ../aa/mdflush/package.json
libbpf: prog 'md_flush_request': failed to attach: ERROR: strerror_r(-524)=22
libbpf: prog 'md_flush_request': failed to auto-attach: -524
failed to attach skeleton
Error: BpfError("load and attach ebpf program failed")
make: *** [Makefile:27: mdflush] Error 1
user@opulr-a ~/t/e/e/b/opensnoop (master)> ../../../compiler/workspace/bin/ecc opensnoop.bpf.c opensnoop.h
Compiling bpf object...
warning: text is not json: Process ID to trace use it as a string
warning: text is not json: Thread ID to trace use it as a string
warning: text is not json: User ID to trace use it as a string
warning: text is not json: trace only failed events use it as a string
warning: text is not json: Trace open family syscalls. use it as a string
Generating export types...
Packing ebpf object and config into package.json...
user@opulr-a ~/t/e/e/b/opensnoop (master)> sudo ../../tests/ecli run package.json
arg: package.json
libbpf: failed to determine tracepoint 'syscalls/sys_enter_open' perf event ID: No such file or directory
libbpf: prog 'tracepoint__syscalls__sys_enter_open': failed to create tracepoint 'syscalls/sys_enter_open' perf event: No such file or directory
libbpf: prog 'tracepoint__syscalls__sys_enter_open': failed to auto-attach: -2
failed to attach skeleton
Error: BpfError("load and attach ebpf program failed")
fentry-link (platforms other than x86 has no fentry calls)
kprobe-link
lsm-connect
mdflush (platforms other than x86 has no fentry calls)
minimal
opensnoop (aarch64 & riscv has no open syscall)
runqlat
sigsnoop
tc
tcpstates
Failed cases
Logs
ls ../bpftools/fentry-link/fentry-link.h && ../../compiler/workspace/bin/ecc ../bpftools/fentry-link/fentry-link.bpf.c ../bpftools/fentry-link/fentry-link.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/fentry-link/fentry-link.bpf.c
ls: cannot access '../bpftools/fentry-link/fentry-link.h': No such file or directory
Compiling bpf object...
Packing ebpf object and config into ../bpftools/fentry-link/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/fentry-link/package.json
arg: ../bpftools/fentry-link/package.json
libbpf: prog 'do_unlinkat': failed to attach: ERROR: strerror_r(-524)=22
libbpf: prog 'do_unlinkat': failed to auto-attach: -524
failed to attach skeleton
Error: BpfError("load and attach ebpf program failed")
ls ../bpftools/kprobe-link/kprobe-link.h && ../../compiler/workspace/bin/ecc ../bpftools/kprobe-link/kprobe-link.bpf.c ../bpftools/kprobe-link/kprobe-link.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/kprobe-link/kprobe-link.bpf.c
ls: cannot access '../bpftools/kprobe-link/kprobe-link.h': No such file or directory
Compiling bpf object...
Packing ebpf object and config into ../bpftools/kprobe-link/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/kprobe-link/package.json
arg: ../bpftools/kprobe-link/package.json
libbpf: failed to add legacy kprobe event for 'do_unlinkat+0x0': No such file or directory
libbpf: prog 'do_unlinkat': failed to create kprobe 'do_unlinkat+0x0' perf event: No such file or directory
libbpf: prog 'do_unlinkat': failed to auto-attach: -2
failed to attach skeleton
Error: BpfError("load and attach ebpf program failed")
ls ../bpftools/lsm-connect/lsm-connect.h && ../../compiler/workspace/bin/ecc ../bpftools/lsm-connect/lsm-connect.bpf.c ../bpftools/lsm-connect/lsm-connect.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/lsm-connect/lsm-connect.bpf.c
ls: cannot access '../bpftools/lsm-connect/lsm-connect.h': No such file or directory
Compiling bpf object...
Packing ebpf object and config into ../bpftools/lsm-connect/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/lsm-connect/package.json
arg: ../bpftools/lsm-connect/package.json
unknown type: __u32
libbpf: prog 'restrict_connect': failed to find kernel BTF type ID of 'socket_connect': -3
libbpf: prog 'restrict_connect': failed to prepare load attributes: -3
libbpf: prog 'restrict_connect': failed to load: -3
libbpf: failed to load object 'lsm_connect_bpf'
libbpf: failed to load BPF skeleton 'lsm_connect_bpf': -3
failed to load skeleton
Error: BpfError("load and attach ebpf program failed")
ls ../bpftools/mdflush/mdflush.h && ../../compiler/workspace/bin/ecc ../bpftools/mdflush/mdflush.bpf.c ../bpftools/mdflush/mdflush.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/mdflush/mdflush.bpf.c
../bpftools/mdflush/mdflush.h
Compiling bpf object...
error: unknown argument: '-target bpf'
warning: unknown warning option '-Wno-unknown-attributes '; did you mean '-Wno-unknown-attributes'? [-Wunknown-warning-option]
<omitted warnings>
Generating export types...
Packing ebpf object and config into ../bpftools/mdflush/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/mdflush/package.json
arg: ../bpftools/mdflush/package.json
libbpf: prog 'md_flush_request': failed to find kernel BTF type ID of 'md_flush_request': -3
libbpf: prog 'md_flush_request': failed to prepare load attributes: -3
libbpf: prog 'md_flush_request': failed to load: -3
libbpf: failed to load object 'mdflush_bpf'
libbpf: failed to load BPF skeleton 'mdflush_bpf': -3
failed to load skeleton
Error: BpfError("load and attach ebpf program failed")
ls ../bpftools/opensnoop/opensnoop.h && ../../compiler/workspace/bin/ecc ../bpftools/opensnoop/opensnoop.bpf.c ../bpftools/opensnoop/opensnoop.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/opensnoop/opensnoop.bpf.c
../bpftools/opensnoop/opensnoop.h
Compiling bpf object...
warning: text is not json: Process ID to trace use it as a string
warning: text is not json: Thread ID to trace use it as a string
warning: text is not json: User ID to trace use it as a string
warning: text is not json: trace only failed events use it as a string
warning: text is not json: Trace open family syscalls. use it as a string
Generating export types...
Packing ebpf object and config into ../bpftools/opensnoop/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/opensnoop/package.json
arg: ../bpftools/opensnoop/package.json
libbpf: prog 'tracepoint__syscalls__sys_exit_open': relo #0: insn #48 (LDX/ST/STX) accesses field incorrectly. Make sure you are accessing pointers, unsigned integers, or fields of matching type and size.
libbpf: prog 'tracepoint__syscalls__sys_exit_openat': relo #0: insn #48 (LDX/ST/STX) accesses field incorrectly. Make sure you are accessing pointers, unsigned integers, or fields of matching type and size.
libbpf: prog 'tracepoint__syscalls__sys_exit_open': BPF program load failed: Invalid argument
libbpf: prog 'tracepoint__syscalls__sys_exit_open': -- BEGIN PROG LOAD LOG --
reg type unsupported for arg#0 function tracepoint__syscalls__sys_exit_open#38
0: R1=ctx(off=0,imm=0) R10=fp0
; int tracepoint__syscalls__sys_exit_open(struct trace_event_raw_sys_exit* ctx)
0: (bf) r6 = r1 ; R1=ctx(off=0,imm=0) R6_w=ctx(off=0,imm=0)
1: (b7) r1 = 0 ; R1_w=0
; struct event event = {};
2: (7b) *(u64 *)(r10 -8) = r1 ; R1_w=P0 R10=fp0 fp-8_w=00000000
3: (7b) *(u64 *)(r10 -16) = r1 ; R1_w=P0 R10=fp0 fp-16_w=00000000
4: (7b) *(u64 *)(r10 -24) = r1 ; R1_w=P0 R10=fp0 fp-24_w=00000000
5: (7b) *(u64 *)(r10 -32) = r1 ; R1_w=P0 R10=fp0 fp-32_w=00000000
6: (7b) *(u64 *)(r10 -40) = r1 ; R1_w=P0 R10=fp0 fp-40_w=00000000
7: (7b) *(u64 *)(r10 -48) = r1 ; R1_w=P0 R10=fp0 fp-48_w=00000000
8: (7b) *(u64 *)(r10 -56) = r1 ; R1_w=P0 R10=fp0 fp-56_w=00000000
9
ls ../bpftools/sigsnoop/sigsnoop.h && ../../compiler/workspace/bin/ecc ../bpftools/sigsnoop/sigsnoop.bpf.c ../bpftools/sigsnoop/sigsnoop.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/sigsnoop/sigsnoop.bpf.c
../bpftools/sigsnoop/sigsnoop.h
Compiling bpf object...
Generating export types...
Packing ebpf object and config into ../bpftools/sigsnoop/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/sigsnoop/package.json
arg: ../bpftools/sigsnoop/package.json
libbpf: prog 'kill_exit': relo #0: insn #1 (LDX/ST/STX) accesses field incorrectly. Make sure you are accessing pointers, unsigned integers, or fields of matching type and size.
libbpf: prog 'tkill_exit': relo #0: insn #1 (LDX/ST/STX) accesses field incorrectly. Make sure you are accessing pointers, unsigned integers, or fields of matching type and size.
libbpf: prog 'tgkill_exit': relo #0: insn #1 (LDX/ST/STX) accesses field incorrectly. Make sure you are accessing pointers, unsigned integers, or fields of matching type and size.
libbpf: prog 'kill_exit': BPF program load failed: Invalid argument
libbpf: prog 'kill_exit': -- BEGIN PROG LOAD LOG --
reg type unsupported for arg#0 function kill_exit#34
0: R1=ctx(off=0,imm=0) R10=fp0
; int kill_exit(struct trace_event_raw_sys_exit *ctx)
0: (bf) r6 = r1 ; R1=ctx(off=0,imm=0) R6_w=ctx(off=0,imm=0)
; return probe_exit(ctx, ctx->ret);
1: <invalid CO-RE relocation>
failed to resolve CO-RE relocation <byte_off> [32] struct trace_event_raw_sys_exit.ret (0:2 @ offset 16)
processed 2 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
-- END PROG LOAD LOG --
libbpf: prog 'kill_exit': failed to load: -22
libbpf: failed to load object 'sigsnoop_bpf'
libbpf: failed to load BPF skeleton 'sigsnoop_bpf': -22
failed to load skeleton
Error: BpfError("load and attach ebpf program failed")
ls ../bpftools/tc/tc.h && ../../compiler/workspace/bin/ecc ../bpftools/tc/tc.bpf.c ../bpftools/tc/tc.h \
|| ../../compiler/workspace/bin/ecc ../bpftools/tc/tc.bpf.c
ls: cannot access '../bpftools/tc/tc.h': No such file or directory
Compiling bpf object...
Packing ebpf object and config into ../bpftools/tc/package.json...
timeout --preserve-status -s 2 2 ./ecli run ../bpftools/tc/package.json
arg: ../bpftools/tc/package.json
libbpf: Kernel error message: Specified qdisc kind is unknown
Failed to create TC hook: -2
failed to attach tc prog
failed to attach programs
Error: BpfError("load and attach ebpf program failed")
make: *** [Makefile:27: tc] Error 1
</details>
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
This discussion is for tracking the status of compatibility of
eunomia-bpf
on several platforms, includingAARCH64
,RISC-V
,MIPS
andPOWERPC
.Recording fail cases of
example/tests
runs on different platforms, It's also still pending to check if it's specific distro or kernel option related.One of the runtime implemented in
Rust
, which using wasmtime as backend, not support MIPS and PowerPC yet.AARCH64
Tested on:
System: openEuler 22.03 (LTS-SP1)
Arch: aarch64
rev: current master HEAD 044c175
cargo 1.67.1 (8ecd4f20a 2023-01-10)
clang version 12.0.1 (openEuler 12.0.1-2.oe2203sp1 be6a48b606b2e8cbb42ec8cbde926)
Passed examples:
fentry-link(platforms other than x86 has no fentry calls)mdflush(platforms other than x86 has no fentry calls)opensnoop(aarch64 & riscv has no open syscall)Failed cases
Expand
RISC-V64
The support works about RISC-V is still in progress, test with forks.
wasm-rumtime: oluceps/wasm-bpf@044c175
eunomia-bpf: oluceps#6
Tested on:
System: Ubuntu 22.10 (Kinetic Kudu)
Arch: riscv64
cargo 1.67.0 (8ecd4f20a 2023-01-10)
Ubuntu clang version 15.0.6
Passed examples:
fentry-link(platforms other than x86 has no fentry calls)mdflush(platforms other than x86 has no fentry calls)opensnoop(aarch64 & riscv has no open syscall)Failed cases
Expand
MIPS
Tested on:
System: Debian GNU/Linux 11 (bullseye)
Arch: mipsel
cargo 1.67.0 (8ecd4f20a 2023-01-10)
Debian clang version 13.0.1-6~deb11u1
Passed examples:
fentry-link(platforms other than x86 has no fentry calls)mdflush(platforms other than x86 has no fentry calls)opensnoop(aarch64 & riscv has no open syscall)Failed cases
Logs
PowerPC
Build fail, Same as MIPS
Beta Was this translation helpful? Give feedback.
All reactions