Merge branch 'net-netsec-Add-XDP-Support'
authorDavid S. Miller <davem@davemloft.net>
Tue, 2 Jul 2019 02:27:08 +0000 (19:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Jul 2019 02:27:08 +0000 (19:27 -0700)
commitfec3b9ec47bdf1383806c947353ba8d1ddc137cf
tree44f3634c61f1698ff8ed9a4f5d47bdbe70810f17
parenta8488b702648ee6a5f391e2127e98e69ccca5b45
parentba2b232108d3c2951bab02930a00f23b0cffd5af
Merge branch 'net-netsec-Add-XDP-Support'

Ilias Apalodimas says:

====================
net: netsec: Add XDP Support

This is a respin of https://www.spinics.net/lists/netdev/msg526066.html
Since page_pool API fixes are merged into net-next we can now safely use
it's DMA mapping capabilities.

First patch changes the buffer allocation from napi/netdev_alloc_frag()
to page_pool API. Although this will lead to slightly reduced performance
(on raw packet drops only) we can use the API for XDP buffer recycling.
Another side effect is a slight increase in memory usage, due to using a
single page per packet.

The second patch adds XDP support on the driver.
There's a bunch of interesting options that come up due to the single
Tx queue.
Locking is needed(to avoid messing up the Tx queues since ndo_xdp_xmit
and the normal stack can co-exist). We also need to track down the
'buffer type' for TX and properly free or recycle the packet depending
on it's nature.

Changes since RFC:
- Bug fixes from Jesper and Maciej
- Added page pool API to retrieve the DMA direction

Changes since v1:
- Use page_pool_free correctly if xdp_rxq_info_reg() failed
====================

Signed-off-by: David S. Miller <davem@davemloft.net>