Fix execution issues for bpf_performance tests on latest kernel #229
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the issue where bpf_performance_runner fails on the latest upstream kernel with error -EINVAL (error code -22, displayed as 4294967274 when printed as unsigned). The error originated from the kernel requiring the BPF_F_TEST_XDP_LIVE_FRAMES flag for XDP programs on newer kernels.
Changes Made
Added compile-time check for flags field (
runner/CMakeLists.txt):HAS_BPF_TEST_RUN_OPTS_FLAGScheck for theflagsfield inbpf_test_run_optsstructureHAS_BPF_TEST_RUN_OPTS_BATCH_SIZEcheckUpdated runner implementation (
runner/runner.cc):linux/bpf.hheader and definedBPF_F_TEST_XDP_LIVE_FRAMESif not availableactual_prog_type)BPF_F_TEST_XDP_LIVE_FRAMESflag for XDP programs in both the main test execution and map state preparation|=) to preserve any existing flagsUpdated .gitignore:
Testing
The fix ensures compatibility with both older and newer kernel versions by using conditional compilation based on the availability of the flags field in the bpf_test_run_opts structure.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.