Bug 1329
Summary: | Kernel BPF API changes break TAP RSS | ||
---|---|---|---|
Product: | DPDK | Reporter: | Stephen Hemminger (stephen) |
Component: | ethdev | Assignee: | Stephen Hemminger (stephen) |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | madhuker.mythri, thomas |
Priority: | Normal | ||
Version: | 22.11 | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All |
Description
Stephen Hemminger
2023-11-23 02:31:37 CET
Good question. I would vote for deprecating it with a clear announce. If nobody complains, we can drop. On the RHEL9.2 with DPDK 22.11.1 version, DPDK primary application failed to add RSS flow on TAP sub-device, when loading the TAP BPF byte-code instructions. This "struct bpf_insn l3_l4_hash_insns[]" array(from file: drivers/net/tap/tap_bpf_insns.h) is in eBPF bytecode instructions format, this eBPF failed to load on TAP PMD with the following error: ======================== rss_add_actions(): Failed to load BPF section 'l3_l4' (7): Argument list too long. net_failsafe: Failed to create a flow on sub_device 1." ======================== On Kernel-version: 5.15.0 #9 SMP PREEMPT Arch: x86_64 GNU/Linux When added some debug logs on Kernel BPF verifier code, we could see that instruction processed were reached to 1 Million and returning the "-E2BIG" error. Whereas with older Kernel-version:5.4.x, this BPF load worked well. |