Re: [PATCH bpf-next v2] libbpf: use implicit XSKMAP lookup from AF_XDP XDP program
From: Björn Töpel <hidden>
Date: 2019-10-22 07:16:26
Also in:
bpf
On Mon, 21 Oct 2019 at 17:43, Toke Høiland-Jørgensen [off-list ref] wrote:
Björn Töpel [off-list ref] writes:quoted
On Mon, 21 Oct 2019 at 15:37, Björn Töpel [off-list ref] wrote:quoted
On Mon, 21 Oct 2019 at 14:19, Toke Høiland-Jørgensen [off-list ref] wrote:quoted
Björn Töpel [off-list ref] writes:[...]quoted
quoted
bpf_redirect_map() returns a 32-bit signed int, so the upper 32-bit will need to be cleared. Having an explicit AND is one instruction less than two shifts. So, it's an optimization (every instruction is sacred).OIC. Well, a comment explaining that might be nice (since you're doing per-instruction comments anyway)? :)Sure, I can do a v3 with a comment, unless someone has a better idea avoiding both shifts and AND. Thanks for taking a look!Now wait, there are the JMP32 instructions that Jiong added. So, shifts/AND can be avoided. Now, regarding backward compat... JMP32 is pretty new. I need to think a bit how to approach this. I mean, I'd like to be able to use new BPF instructions.Well, they went into kernel 5.1 AFAICT; does AF_XDP even work properly in kernels older than that? For the xdp-tutorial we've just been telling people to upgrade their kernels to use it (see, e.g., https://github.com/xdp-project/xdp-tutorial/issues/76).
Yeah, let's take that route, i.e. using JMP32 and one program. One could argue that libbpf could do runtime checks and load the simpler program w/o the fallback for post-5.3 only, and avoiding the branching all together. Björn
-Toke