[Bloat] Linux network is damn fast, need more use XDP (Was: DC behaviors today)

Jesper Dangaard Brouer brouer at redhat.com
Thu Dec 7 03:49:49 EST 2017

(Removed netdev list)

On Mon, 4 Dec 2017 09:00:41 -0800 Dave Taht <dave.taht at gmail.com> wrote:

> > If you have not heard, the netdev-community have worked on something
> > called XDP (eXpress Data Path).  This is a new layer in the network
> > stack, that basically operates a the same "layer"/level as DPDK.
> > Thus, surprise we get the same performance numbers as DPDK. E.g. I can
> > do 13.4 Mpps forwarding with ixgbe on a single CPU (more CPUs=14.6Mps)
> >
> > We can actually use XDP for (software) offloading the Linux routing
> > table.  There are two methods we are experimenting with:
> >
> > (1) externally monitor route changes from userspace and update BPF-maps
> > to reflect this. That approach is already accepted upstream[4][5].  I'm
> > measuring 9,513,746 pps per CPU with that approach.
> >
> > (2) add a bpf helper to simply call fib_table_lookup() from the XDP hook.
> > This is still experimental patches (credit to David Ahern), and I've
> > measured 9,350,160 pps with this approach in a single CPU.  Using more
> > CPUs we hit 14.6Mpps (only used 3 CPUs in that test)  
> Neat. Perhaps trying xdp on the itty bitty routers I usually work on
> would be a win.

Definitely. It will be a huge win for small routers. This is part of my
grand scheme.  We/I just need to implement XDP in one of these small
router's driver.

That said, XDP skip many layers and features of the network stack that
you likely need on these small routers e.g. like NAT... 

> > [4] https://github.com/torvalds/linux/blob/master/samples/bpf/xdp_router_ipv4_user.c
> > [5] https://github.com/torvalds/linux/blob/master/samples/bpf/xdp_router_ipv4_kern.c  
> thx very much for the update.

Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

More information about the Bloat mailing list