Björn Töpel <bjorn.topel@xxxxxxxxx> writes: > On 2021-01-20 13:52, Toke Høiland-Jørgensen wrote: >> Björn Töpel <bjorn.topel@xxxxxxxxx> writes: >> >>> From: Björn Töpel <bjorn.topel@xxxxxxxxx> >>> >>> Add detection for kernel version, and adapt the BPF program based on >>> kernel support. This way, users will get the best possible performance >>> from the BPF program. >> >> Please do explicit feature detection instead of relying on the kernel >> version number; some distro kernels are known to have a creative notion >> of their own version, which is not really related to the features they >> actually support (I'm sure you know which one I'm referring to ;)). >> > > Right. For a *new* helper, like bpf_redirect_xsk, we rely on rejection > from the verifier to detect support. What about "bpf_redirect_map() now > supports passing return value as flags"? Any ideas how to do that in a > robust, non-version number-based scheme? Well, having a BPF program pass in a flag of '1' with an invalid lookup and checking if it returns 1 or 0. But how to do that from libbpf, hmm, good question. BPF_PROG_RUN()? An alternative could be to default to a program that will handle both cases in the BPF code, and make it opt-in to use the optimised versions if the user knows their kernel supports it? -Toke