-
Notifications
You must be signed in to change notification settings - Fork 240
SIMD-0377: eBPF ISA compatibility #377
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
base: main
Are you sure you want to change the base?
Conversation
b7c662c to
36dccfe
Compare
|
|
||
| Another consideration was bringing new eBPFv4 instructions to the Solana | ||
| environment. They are a superset of eBPFv3 and does not conflict with it, | ||
| however they are not yet stabilized, so they can change in future LLVM releaes. |
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.
What do you mean by "not yet stabilized"? Why do llvm releases even matter? Isn't the linux-kernel version the actual definition of the isa that should be relevant for the definition of the solana runtime?
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.
We have relied on LLVM for code generation for some years now. The LLVM eBPF target (and the GCC target as well) brings in some instructions that are not yet fully adopted by the kernel, and not necessarily appear in the documentation.
The oldest example is callx (indirect calls). We have supported callx with the LLVM encoding since Solana started, but LLVM has changed its encoding for callx recently (see llvm/llvm-project@c43ad6c), rendering it incompatible with our VM.
What I wanted to point out was to avoid experimenting with v4 before it is officially supported.
No description provided.