-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cilium, bpf: select v3 BPF CPU in llc for 5.7+ kernels #10804
Conversation
Given this kernel has full 32bit subregister tracking, enable llc to emit instructions for those which also helps us to reduce complexity on the verifier. See also complexity comparison in recent commit 4baaa2c ("docker, runtime: upgrade to recent clang/llvm image in runtime"). From CI side, we are good as well here since test-me-please runs for: - 4.9 kernel compiles with v1 CPU - 4.19 kernel compiles with v2 CPU - bpf-next kernel compiles with v3 CPU Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
test-me-please |
test-me-please |
Unrelated but rather odd one from go build:
|
Could this be related to the operator split (#9920) that @errordeveloper has been working on? Specifically #10689? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome!
test-me-please |
1 similar comment
test-me-please |
Build finished. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Probing indirectly seems a bit fragile with regards to potential helper backports, should we try to add direct probes to e.g. bpftool in the future?
[Nit: the BPF guide mentions v1 and v2 processors, should it be updated to mention v3 too?]
Does that issue still persist? |
Didn't see it happen in the last few days. Looks like it was fixed in the meantime. |
restart-ginkgo |
test-with-kernel |
test-gke |
test-me-please jenkins history was gone and ginkgo-tests have failed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, one question about whether we'll misdetect the presence of the subregister backtracking changes.
We'll also need to keep this in mind as we think about slimming down the images: #9411
// but the jmp/alu32 handling is not suited for pre 5.7 due to | ||
// lack of 32 bit subreg tracking. | ||
if h := probes.NewProbeManager().GetHelpers("cgroup_sock_addr"); h != nil { | ||
if _, ok := h["bpf_get_netns_cookie"]; ok { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any chance that the subregister backtracking won't be backported but the netns_cookie changes will be? I think the netns_cookie helper is quite powerful with a relatively minimal set of changes.
(pr currently on hold given v3 complexity) |
this PR has been marked as a draft PR since it had a WIP label. Please click in "Ready for review" [below vvv ] once the PR is ready to be reviewed. CI will still run for draft PRs. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Closing for now. We'll revisit mcpu=v3 at a later point in time. |
Given this kernel has full 32bit subregister tracking, enable llc to
emit instructions for those which also helps us to reduce complexity
on the verifier.
See also complexity comparison in recent commit 4baaa2c ("docker,
runtime: upgrade to recent clang/llvm image in runtime").
From CI side, we are good as well here since test-me-please runs for:
Signed-off-by: Daniel Borkmann daniel@iogearbox.net