Hi BPF experts, I have a cilium PR https://github.com/cilium/cilium/pull/16916 that failed to pass verifier in kernel 4.19, the error is like: level=warning msg="Prog section '2/7' rejected: Argument list too long (7)!" subsys=datapath-loader level=warning msg=" - Type: 3" subsys=datapath-loader level=warning msg=" - Attach Type: 0" subsys=datapath-loader level=warning msg=" - Instructions: 4578 (482 over limit)" subsys=datapath-loader level=warning msg=" - License: GPL" subsys=datapath-loader level=warning subsys=datapath-loader level=warning msg="Verifier analysis:" subsys=datapath-loader level=warning subsys=datapath-loader level=warning msg="Error filling program arrays!" subsys=datapath-loader level=warning msg="Unable to load program" subsys=datapath-loader then I tried to run the PR locally in my dev machine with custom upstream kernel version, I narrowed the issue down to between upstream kernel version 5.7 and 5.8, in 5.7, it failed with: level=warning msg="processed 50 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1" subsys=datapath-loader level=warning subsys=datapath-loader level=warning msg="Log buffer too small to dump verifier log 16777215 bytes (9 tries)!" subsys=datapath-loader level=warning msg="Error filling program arrays!" subsys=datapath-loader level=warning msg="Unable to load program" subsys=datapath-loader 5.8 works fine. What difference between 5.7 and 5.8 to cause this verifier problem, I tried to git log v5.7..v5.8 kernel/bpf/verifier, I could not see commits that would make the difference with my limited BPF knowledge. Any clue would be appreciated! Thanks Vincent