mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Eduard Zingerman <eddyz87@gmail.com>
To: Marc Kleine-Budde <mkl@pengutronix.de>,
	Chris Ward <tjcw01@gmail.com>,
	 Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	John Fastabend <john.fastabend@gmail.com>
Cc: linux-kernel@vger.kernel.org, Chris Ward <tjcw@uk.ibm.com>,
	 bpf@vger.kernel.org
Subject: Re: eBPF verifier does not load libxdp dispatcher eBPF program
Date: Tue, 25 Feb 2025 10:21:11 -0800	[thread overview]
Message-ID: <397970e484d2d0c1e0649d78cc723fbe3ad2ad5f.camel@gmail.com> (raw)
In-Reply-To: <20250225-gay-awesome-copperhead-502cd2-mkl@pengutronix.de>

On Tue, 2025-02-25 at 16:55 +0100, Marc Kleine-Budde wrote:
> On 23.01.2023 12:35:41, Chris Ward wrote:
> > 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.
> > 
> > On Mon, 23 Jan 2023 at 11:06, Chris Ward <tjcw01@gmail.com> wrote:
> > > 
> > > 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 ?
> 
> I'm seeing the same failure on 32 bit ARM on v6.13.
> 
> Have you found a solution?
> 
> regards,
> Marc
> 

Hello,

When I try the link from the discussion:
https://github.com/tjcw/bpf-examples/tree/tjcw-explore-sameeth
I get a 404 error from github.

(Sorry for previous email, it was sent unintentionally).


  parent reply	other threads:[~2025-02-25 18:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-23 11:06 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 [this message]
2025-02-25 22:57       ` Marc Kleine-Budde
2025-02-26 16:01         ` Marc Kleine-Budde
2023-01-23 13:23 Chris Ward

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=397970e484d2d0c1e0649d78cc723fbe3ad2ad5f.camel@gmail.com \
    --to=eddyz87@gmail.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=tjcw01@gmail.com \
    --cc=tjcw@uk.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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