-
Notifications
You must be signed in to change notification settings - Fork 1
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
feat: Add vmlinux for kernel 5.15 for arm & amd #26
Conversation
The original /*
* Note that bpf programs need to include either
* vmlinux.h (auto-generated from BTF) or linux/types.h
* in advance since bpf_helper_defs.h uses such types
* as __u64.
*/ EDIT: We now just have the |
getting CrashLoopBackOff on the agent pod with this error:
|
Hm, same here on local arm 🤔 Will look into this a bit more. |
@vreynolds can you try again when you get a moment? I've added a flag to the Makefile |
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.
It works! 🎉
@JamieDanielson are there any gotchas with including the BPF_NO_PRESERVE_ACCESS_INDEX
?
As I understand it, this flag disables CO-RE relocation entirely with a flag, which means we can run it on our Mac or similar devices that do not have BTF or BPF CO-RE support. Using the generated #ifndef BPF_NO_PRESERVE_ACCESS_INDEX
#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record)
#endif From this post:
So if/when we decide to use BPF CO-RE, we'll want to remove this flag and/or add extra conditional logic checking for existence of BTF. And until BTF is available on our local workstations, we'll have to build on BTF-enabled devices to use the CO-RE macros (probably colima or EC2 instance). An alternative is to add the conditional logic now 🤔 |
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.
make it work ™️
Which problem is this PR solving?
Adds complete vmlinux.h files for both arm and amd platforms.
Short description of changes
vmlinux-arm64.h
andvmlinux-x86_64.h
header files generated from linuxvmlinux.h
to use appropriate header file based on architectureHow to verify this has the expected result
Make sure your
HONEYCOMB_API_KEY
env var is setmake docker-build
on arm64 laptop runs in EKS with Amazon Linux 2 OS, 5.10.184-175.731.amzn2.aarch64make mac-docker-build
on arm64 laptop runs in Kubernetes for Docker Desktop, Host kernel version: 5.15.49make mac-docker-build
on x86_64 laptop runs in Kubernetes for Docker Desktop, Host kernel version: 5.15.49