On 11/11/2015 08:23 PM, Peter Zijlstra wrote:
On Wed, Nov 11, 2015 at 07:50:15PM +0100, Daniel Borkmann wrote:
Well, on that note, it's not like you just change the target to bpf in your Makefile and can compile (& load into the kernel) anything you want with it. You do have to write small, restricted programs from scratch for a specific use-case with the limited set of helper functions and intrinsics that are available from the kernel. So I don't think that "Programs that used to work will now no longer work." holds if you regard it as such.
So I don't get this argument. If everything is so targeted, then why are the BPF instructions an ABI.
If OTOH you're expected to be able to transfer these small proglets, then too I would expect to transfer the source of these proglets.
You cannot argue both ways.
Ohh, I think we were talking past each other. ;) So, yeah, you'd likely need to add new intrinstics that then map to the existing BPF_XADD instructions, and perhaps spill a warning when __sync_fetch_and_add() is being used to advise the developer to switch to the new intrinstics instead. From kernel ABI PoV nothing would change.