On Tue, 2016-04-19 at 14:37 +0100, Edward Cree wrote: > Also involved adding a way to run a netfilter hook over a list of packets. > Rather than attempting to make netfilter know about lists (which would be > horrendous) we just let it call the regular okfn (in this case > ip_rcv_finish()) for any packets it steals, and have it give us back a list > of packets it's synchronously accepted (which normally NF_HOOK would > automatically call okfn() on, but we want to be able to potentially pass > the list to a listified version of okfn().) > > There is potential for out-of-order receives if the netfilter hook ends up > synchronously stealing packets, as they will be processed before any accepts > earlier in the list. However, it was already possible for an asynchronous > accept to cause out-of-order receives, so hopefully I haven't broken > anything that wasn't broken already. > > Signed-off-by: Edward Cree <ec...@solarflare.com> > ---
We have hard time to deal with latencies already, and maintaining some sanity in the stack(s) This is not going to give us a 10x or even 2x improvement factor, so what about working on something that would really lower cache line misses and use pipelines to amortize the costs ? The main problem in UDP stack today is having to lock the socket because of the dumb forward allocation problem. Are you really going to provide a list of skbs up to _one_ UDP socket ?