在 2024/10/30 18:49, Matthieu Baerts 写道:
Hi Tao Chen,
Thank you for having shared this patch.
On 30/10/2024 11:01, Tao Chen wrote:
Fix compile error when MPTCP feature not support, though eBPF core check already done which seems invalid in this situation, the error info like: progs/mptcp_sock.c:49:40: error: no member named 'is_mptcp' in 'struct tcp_sock' 49 | is_mptcp = bpf_core_field_exists(tsk->is_mptcp) ?
The filed created in new definitions with eBPF core feature to solve this build problem, and test case result still ok in MPTCP kernel.
176/1 mptcp/base:OK 176/2 mptcp/mptcpify:OK 176 mptcp:OK Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED
Fixes: 8039d353217c ("selftests/bpf: Add MPTCP test base")
The commit you mentioned here is more than 2 years old, and as far as I can see, nobody else reported this compilation issue. I guess that's because people used tools/testing/selftests/bpf/config file as expected to populate the kernel config, and I suppose you didn't, right?
Hi Matt, thank you for your reply, as you said, i did not use tools/testing/selftests/bpf/config to compile kernel, i will use this helpful feature.
I don't think other BPF selftests check for missing kernel config if they are specified in the 'config' file, but even if it is the case, I think it would be better to skip all the MPTCP tests, and not try to have them checking something that doesn't exist: no need to validate these tests if the expected kernel config has not been enabled.
If i use the kernel not support MPTCP, the compile error still exists, and i can not build the bpf test successfully. Maybe skill the test case seems better when kernel not support. Now that bpf_core_field_exists check already used in the code, i think it is better to use new definition mode.
But again, please correct me if I'm wrong, but I don't think there is anything to change here to fix your compilation issue: simply make sure to use this tools/testing/selftests/bpf/config file to generate your kernel config, no?
Cheers, Matt