Skip to content

Gcc 16 switch and re-enable - #505

Merged
vineetgarc merged 2 commits into
masterfrom
gcc-16-switch-n-fix-pathname
Aug 14, 2026
Merged

Gcc 16 switch and re-enable#505
vineetgarc merged 2 commits into
masterfrom
gcc-16-switch-n-fix-pathname

Conversation

@vineetgarc

@vineetgarc vineetgarc commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This re-enables GCC built selftests - uses latest GCC (16 as of now)

  • denylist refreshed for current gcc-16 based builds
  • gcc-bpf: run the selftests instead of just building them (runner was disabled back in 2025)
    • This is more involved as it requires splitting into build and run jobs (see that patch for more details)

@vineetgarc vineetgarc mentioned this pull request Aug 7, 2026
@vineetgarc
vineetgarc force-pushed the gcc-16-switch-n-fix-pathname branch 5 times, most recently from 8c192e9 to 0fd09ad Compare August 7, 2026 22:32
@theihor

theihor commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

@vineetgarc are you still working on this? The gcc-bpf job is red, the PR doesn't look ready for review.

@theihor theihor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the next respin, please use nice PR title and add a brief summary too. I now see that it depends on libbpf/ci#228, would be nice to mention that.

To submit a new revision you can just force push updated gcc-16-switch-n-fix-pathname branch, PR will be refreshed. Don't close and re-open the PR, it's harder to track the comments then.

Could you please also delete a commented block in matrix.py? With this PR it's stale (uncommenting won't work).

Comment thread .github/workflows/gcc-bpf.yml Outdated
Comment thread ci/vmtest/configs/DENYLIST.test_progs-bpf_gcc
Comment thread .github/workflows/kernel-test.yml Outdated
Comment thread .github/workflows/kernel-build-test.yml
Comment thread ci/vmtest/configs/DENYLIST.test_progs-bpf_gcc
Comment thread .github/workflows/gcc-bpf.yml Outdated
Comment thread .github/workflows/gcc-bpf.yml Outdated
Comment thread .github/workflows/gcc-bpf.yml Outdated
@vineetgarc

Copy link
Copy Markdown
Contributor Author

@vineetgarc are you still working on this? The gcc-bpf job is red, the PR doesn't look ready for review.

Yes I'm. This was gated on the libbpf-ci 228 which you pulled. Let me see what other changes you requeted and respin with better PR look and feel. Thx.

@vineetgarc
vineetgarc force-pushed the gcc-16-switch-n-fix-pathname branch 3 times, most recently from 77eebc3 to 25eafb4 Compare August 12, 2026 23:42
@vineetgarc

Copy link
Copy Markdown
Contributor Author

@theihor fwiw this series has been proven to pass: cfr https://github.com/kernel-patches/vmtest/actions/runs/31639638784
We are missing the libbpf-ci version tag v4 to be moved to encompass 386733ce0455 normalize_bpf_test_names: don't drop tests that share a name prefix (#228

@theihor

theihor commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

@vineetgarc A couple of things to address:

For testing, add a commit on top that renames libbpf/ci/run-vmtest@v4 to libbpf/ci/run-vmtest@main in gcc-bpf.yml. Then you can just drop it when the PR is ready for merge.

I don't want to move the tag right now, because CI is busy due to recent pushes to bpf and bpf-next. I expect tomorrow to be quieter.

Thanks.

@vineetgarc vineetgarc changed the title Gcc 16 switch n fix pathname Gcc 16 switch and re-enable Aug 13, 2026
@vineetgarc
vineetgarc force-pushed the gcc-16-switch-n-fix-pathname branch from 25eafb4 to 61b3e41 Compare August 13, 2026 23:36
@vineetgarc

Copy link
Copy Markdown
Contributor Author

@vineetgarc A couple of things to address:

Indeed it is flaky in my local runs: added now.

  • we have a run_tests flag passed through from matrix.py, I think you should use it for the test step as well

Done.

  • and looks like you haven't addressed my first comment: please fixup matrix.py and add brief summary and proper title for the PR

Oops done now. !

For testing, add a commit on top that renames libbpf/ci/run-vmtest@v4 to libbpf/ci/run-vmtest@main in gcc-bpf.yml. Then you can just drop it when the PR is ready for merge.

I think the prereq it wants is there. The 2nd one is not really mandatory. I'll check anyways.

I don't want to move the tag right now, because CI is busy due to recent pushes to bpf and bpf-next. I expect tomorrow to be quieter.

No rush.

Thx !

The denylist has not been touched since the GCC BPF runner was disabled in
January 2025, so it still describes what GCC 15 was failing back then. Rebuild
it against GCC-16 of today, which leaves it a good deal
shorter.

A test is denied outright only when nothing in it passes, otherwise the failing
subtests are named individually so that the rest of the test keeps running.

Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
The GCC BPF workflow compiles test_progs-bpf_gcc and then throws it away, so it
only ever checked that the selftests still build with GCC. Nothing runs them:
the runner was disabled in f7504ae ("Disable test_progs-bpf_gcc") because
too many tests were failing with GCC 15, and it has stayed off since.
As evident in previous patch to denylist, GCC 16 is in much better shape, still
fails a fair number of selftests, but few enough that the remainder is worth
running rather than leaving untested.

Split the workflow into a build job and a test job, in the same shape as
test-progs-asan.yml. The build job keeps doing what it did and now packages
test_progs-bpf_gcc as an artifact; the test job unpacks it over the selftests
directory from the main build and runs it under vmtest.

Keeping this in its own workflow rather than folding the GCC BPF build into
kernel-build.yml is deliberate. Every test and veristat job depends on the root
build job, so a break in the GCC BPF compiler download, in the scripts, or in
the GCC selftests build would take out the whole matrix leg and the artifact it
produces. Here it can only fail the GCC BPF jobs.

The test job needs /dev/kvm, so kernel-build-test.yml now passes the test
runners; the build job continues to pick its own builder image.

Drop the commented out matrix.py entry that used to run test_progs-bpf_gcc.
The tests run again, just not through the test matrix, so the note saying they
are disabled is now actively misleading.

Gate the test job on run_tests, the same flag the matrix test job uses, so that
push events keep building test_progs-bpf_gcc without occupying a test runner to
run it.

Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
@vineetgarc
vineetgarc force-pushed the gcc-16-switch-n-fix-pathname branch from 61b3e41 to 618bc84 Compare August 14, 2026 16:03
@theihor

theihor commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

It's green, congrats! :)

I noticed a bunch of errors like this in the logs:

2026-08-14T16:20:24.4439743Z libbpf: Error loading .BTF into kernel: -22. BTF is optional, ignoring.
2026-08-14T16:20:32.0898416Z [  136.250755] ip6_tunnel: gre6_dev xmit: Local address not yet configured!
2026-08-14T16:20:32.5270475Z libbpf: BTF loading error: -22

Is this a known issue? The test_progs reports PASS on everything, so maybe it's not a blocker for the CI changes.

@vineetgarc
vineetgarc merged commit 2e7a26d into master Aug 14, 2026
70 checks passed
@vineetgarc
vineetgarc deleted the gcc-16-switch-n-fix-pathname branch August 14, 2026 17:07
@vineetgarc

Copy link
Copy Markdown
Contributor Author

Woo hoo ! and in this process uncovered a legit x86 jit bug ! https://lore.kernel.org/bpf/20260814165557.3405518-1-vineet.gupta@linux.dev/T/#u

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants