On Thu, Feb 9, 2017 at 5:48 PM, David Miller <da...@davemloft.net> wrote: > From: Tom Herbert <t...@herbertland.com> > Date: Thu, 9 Feb 2017 15:08:22 -0800 > >> Okay, how about this... I'll add a configuration option like >> XDP_ALLOW_OTHER_HOOKS. The default will be to disallow setting any >> hook other than a BPF. If it is set, then we'll accept other hooks >> to be run. This way mostly restrict the interface by default, but >> still allow experimentation with other hook types like I need with >> TXDP or maybe the netfilter guys might want to fastpath netfilter >> etc. When we we bring a working robust implementation to netdev that >> show clear benefits then we can add those to BPF as the "allowed" >> hooks at that time. So this strictly controls the interfaces, but >> still also allows room for innovation. > > Anyone is allowed to "innovate" in their own private kernel tree. > > But I'm not unleashing that upstream. > > The only reason I accepted XDP is entirely because it is limited > in scope to eBPF. All eBPF programs execute in finite time, > cannot loop, cannot deadlock, cannot access arbitrary pieces > of kernel memory and datastructures. > > It is a well defined, constrained, and incredibly tightly controlled > execution environment for implementing policy, monitoring and control.
And it's also incredibly invasive in the core data path of drivers. TBH it is not clear to me that the narrow use cases for XDP justifies adding this complexity being added to every driver. In any case, I withdraw the patch set. Tom