mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* eBPF verifier does not load libxdp dispatcher eBPF program
@ 2023-01-23 11:06 Chris Ward
  2023-01-23 12:35 ` Chris Ward
  0 siblings, 1 reply; 8+ messages in thread
From: Chris Ward @ 2023-01-23 11:06 UTC (permalink / raw)
  To: linux-kernel; +Cc: Chris Ward

I am trying to use the 'bleeding edge' kernel to determine whether a
problem I see has already been fixed, but with this kernel the eBPF
verifier will not load the dispatcher program that is contained within
libxdp. I am testing kernel commit hash 2475bf0 which fails, and the
kernel in Ubuntu 22.04 (5.15.0-58-generic) works properly. I am
running the test case from
https://github.com/tjcw/bpf-examples/tree/tjcw-explore-sameeth ; to
build it go to the AF_XDP-filter directory and type 'make', and to run
it go to the AF_XDP-filter/runscripts/iperf3-namespace directory and
type 'sudo FILTER=af_xdp_kern PORT=50000 ./run.sh' .
The lines from the run output indicating the failure are
libbpf: prog 'xdp_dispatcher': BPF program load failed: Invalid argument
libbpf: prog 'xdp_dispatcher': -- BEGIN PROG LOAD LOG --
Func#11 is safe for any args that match its prototype
btf_vmlinux is malformed
reg type unsupported for arg#0 function xdp_dispatcher#29
0: R1=ctx(off=0,imm=0) R10=fp0
; int xdp_dispatcher(struct xdp_md *ctx)
0: (bf) r6 = r1                       ; R1=ctx(off=0,imm=0)
R6_w=ctx(off=0,imm=0)
1: (b7) r0 = 2                        ; R0_w=2
; __u8 num_progs_enabled = conf.num_progs_enabled;
2: (18) r8 = 0xffffb2f6c06d8000       ; R8_w=map_value(off=0,ks=4,vs=84,imm=0)
4: (71) r7 = *(u8 *)(r8 +0)           ; R7=1
R8=map_value(off=0,ks=4,vs=84,imm=0)
; if (num_progs_enabled < 1)
5: (15) if r7 == 0x0 goto pc+141      ; R7=1
; ret = prog0(ctx);
6: (bf) r1 = r6                       ; R1_w=ctx(off=0,imm=0)
R6=ctx(off=0,imm=0)
7: (85) call pc+140
btf_vmlinux is malformed
R1 type=ctx expected=fp
Caller passes invalid args into func#1
processed 84 insns (limit 1000000) max_states_per_insn 0 total_states
9 peak_states 9 mark_read 1
-- END PROG LOAD LOG --
libbpf: prog 'xdp_dispatcher': failed to load: -22
libbpf: failed to load object 'xdp-dispatcher.o'
libxdp: Failed to load dispatcher: Invalid argument
libxdp: Falling back to loading single prog without dispatcher

Can this regression be fixed before kernel 6.2 ships ?

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: eBPF verifier does not load libxdp dispatcher eBPF program
@ 2023-01-23 13:23 Chris Ward
  0 siblings, 0 replies; 8+ messages in thread
From: Chris Ward @ 2023-01-23 13:23 UTC (permalink / raw)
  To: linux-kernel, Chris Ward

The 5.15.0 kernel (built by 'git checkout v5.15' from the kernel.org
torvalds tree) fails in the same way that the 6.2.0-rc5+ kernel fails.
So it seems that something Canonical did for the Ubuntu 20.04 kernel
causes eBPF to work correctly.

Chris Ward

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-02-26 16:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-23 11:06 eBPF verifier does not load libxdp dispatcher eBPF program Chris Ward
2023-01-23 12:35 ` Chris Ward
2025-02-25 15:55   ` Marc Kleine-Budde
2025-02-25 18:18     ` Eduard Zingerman
2025-02-25 18:21     ` Eduard Zingerman
2025-02-25 22:57       ` Marc Kleine-Budde
2025-02-26 16:01         ` Marc Kleine-Budde
2023-01-23 13:23 Chris Ward

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome