[Intel-wired-lan] [PATCH v7 0/2] i40e: support for XDP
Alexander Duyck
alexander.duyck at gmail.com
Wed May 24 16:31:16 UTC 2017
This series looks good to me.
Acked-by: Alexander Duyck <alexander.h.duyck at intel.com>
On Tue, May 23, 2017 at 10:55 PM, Björn Töpel <bjorn.topel at gmail.com> wrote:
> From: Björn Töpel <bjorn.topel at intel.com>
>
> This series adds XDP support for i40e-based NICs.
>
> The first patch wires up ndo_xdp and implements XDP_DROP semantics for
> all actions. The second patch adds egress support via the XDP_TX
> action.
>
> Performance numbers (40GbE port, 64B packets) for xdp1 and xdp2
> programs, from samples/bpf/:
>
> IOMMU | xdp1 | xdp2
> ---------------------------+-----------+-----------
> iommu=off | 29.7 Mpps | 17.1 Mpps
> iommu=pt intel_iommu=on | 29.7 Mpps | 11.6 Mpps
> iommu=on intel_iommu=on | 21.8 Mpps | 3.7 Mpps
>
> Future improvements, not covered by the patches:
> * Proper debugfs support.
> * i40evf support.
>
> Thanks to Alex, Daniel, John and Scott for all feedback!
>
> v7:
> * Proper MTU check for XDP
>
> v6:
> * Addressed various cosmetic issues (reverse xmas tree formatting on
> local variables, preserve function parameter ordering, qvector
> mapping).
> * Placed XDP Tx rings directly after Tx rings. This opened up to
> various simplications in the code, since we can now treat the XDP
> Tx rings as an extension of existing Tx ring space. E.g.,
> i40e_set_ringparam now has smaller changeset.
> * Ring allocation and setup was simplified (i40e_alloc_rings,
> i40e_vsi_alloc_arrays).
>
> v5:
> * Aligned the implementation to ixgbe's XDP support: naming, favor
> xchg instead of RCU semantics
> * Support for XDP headroom (piggybacking on Alex' build_skb work)
> * Added xdp tracepoints for exception states (as suggested by
> Daniel)
>
> v4:
> * Removed unused i40e_page_is_reserved function
> * Prior running the XDP program, set the struct xdp_buff
> data_hard_start member
>
> v3:
> * Rebased patch set on Jeff's dev-queue branch
> * MSI-X is no longer a prerequisite for XDP
> * RCU locking for the XDP program and XDP_RX support is introduced
> in the same patch
> * Rx bytes is now bumped for XDP
> * Removed pointer-to-pointer clunkiness
> * Added comments to XDP preconditions in ndo_xdp
> * When a non-EOF is received, log once, and drop the frame
>
> v2:
> * Fixed kbuild error for PAGE_SIZE >= 8192.
> * Renamed i40e_try_flip_rx_page to i40e_can_reuse_rx_page, which is
> more in line to the other Intel Ethernet drivers (igb/fm10k).
> * Validate xdp_adjust_head support in ndo_xdp/XDP_SETUP_PROG.
>
> Björn Töpel (2):
> i40e: add XDP support for pass and drop actions
> i40e: add support for XDP_TX action
>
> drivers/net/ethernet/intel/i40e/i40e.h | 8 +
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 42 ++-
> drivers/net/ethernet/intel/i40e/i40e_main.c | 364 ++++++++++++++++++++-----
> drivers/net/ethernet/intel/i40e/i40e_txrx.c | 244 ++++++++++++++---
> drivers/net/ethernet/intel/i40e/i40e_txrx.h | 12 +
> 5 files changed, 565 insertions(+), 105 deletions(-)
>
> --
> 2.11.0
>
More information about the Intel-wired-lan
mailing list