ietf-wg-bpf / ebpf-docs

eBPF Standard Documentation
37 stars 5 forks source link

ISA extension: BPF_CALL | BPF_X #82

Open dthaler opened 5 months ago

dthaler commented 5 months ago

clang has generated this invalid instruction with -O0 and -O1 for ages. Allowing its use with something other than the meaning clang gives it might be problematic, though clang's meaning is intuitive. Should the IANA registry have an entry for it or not?

dthaler commented 5 months ago

Question posted to list at https://mailarchive.ietf.org/arch/msg/bpf/l5tNEgL-Wo7qSEuaGssOl5VChKk/

dthaler commented 5 months ago

Jose Marchesi wrote:

GCC also generates BPF_CALL|BPF_X also named callx, but only if the experimental -mxbpf option is passed to the compiler.

I recommend this particular encoding to be specifically reserved for a future `call REG' for when/if a time comes when the BPF verifier supports some form of indirect calls.

Alexei wrote:

+1. Same thinking from llvm pov. CALL|X is what we will use when the kernel supports indirect calls. I think it means we need to add a 'reserved' category to the spec.

dthaler commented 5 months ago

This also now makes me think we should probably rename the "legacy" conformance group to "packet" for similar reasons. It's the status (Historical) of the group rather than the name that actually makes it legacy.

dthaler commented 5 months ago

Proposed patch posted at https://mailarchive.ietf.org/arch/msg/bpf/Wp4kYteVkk5h1vPxnckQZela8lQ/