From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [pull request][net-next 00/13] Mellanox, mlx5e updates 2018-07-26 (XDP redirect) Date: Thu, 26 Jul 2018 15:56:34 -0700 Message-ID: <20180726225647.11926-1-saeedm@mellanox.com> Cc: netdev@vger.kernel.org, Saeed Mahameed To: "David S. Miller" Return-path: Received: from mail-il-dmz.mellanox.com ([193.47.165.129]:41436 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731737AbeG0APu (ORCPT ); Thu, 26 Jul 2018 20:15:50 -0400 Sender: netdev-owner@vger.kernel.org List-ID: Hi Dave, This series from Tariq adds the support for device-out XDP redirect. For more information please see tag log below. Please pull and let me know if there's any problem. Thanks, Saeed. --- The following changes since commit 6a8fab17940d4934293d4145abce00e178393bec: Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue (2018-07-26 14:14:01 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5e-updates-2018-07-26 for you to fetch changes up to 8ee48233566624826d185bf63735cc01d7113fce: net/mlx5e: TX, Use function to access sq_dma object in fifo (2018-07-26 15:23:59 -0700) ---------------------------------------------------------------- mlx5e-updates-2018-07-26 (XDP redirect) This series from Tariq adds the support for device-out XDP redirect. Start with a simple RX and XDP cleanups: - Replace call to MPWQE free with dealloc in interface down flow - Do not recycle RX pages in interface down flow - Gather all XDP pre-requisite checks in a single function - Restrict the combination of large MTU and XDP Since now XDP logic is going to be called from TX side as well, generic XDP TX logic is not RX only anymore, for that Tariq creates a new xdp.c file and moves XDP related code into it, and generalizes the code to support XDP TX for XDP redirect, such as the xdp tx sq structures and xdp counters. XDP redirect support: Add implementation for the ndo_xdp_xmit callback. Dedicate a new set of XDP-SQ instances to satisfy the XDP_REDIRECT requests. These instances are totally separated from the existing XDP-SQ objects that satisfy local XDP_TX actions. Performance tests: xdp_redirect_map from ConnectX-5 to ConnectX-5. CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz Packet-rate of 64B packets. Single queue: 7 Mpps. Multi queue: 55 Mpps. -Saeed. ---------------------------------------------------------------- Tariq Toukan (13): net/mlx5e: Replace call to MPWQE free with dealloc in interface down flow net/mlx5e: Do not recycle RX pages in interface down flow net/mlx5e: Gather all XDP pre-requisite checks in a single function net/mlx5e: Restrict the combination of large MTU and XDP net/mlx5e: Move XDP related code into new XDP files net/mlx5e: Add counter for XDP redirect in RX net/mlx5e: Make XDP xmit functions more generic net/mlx5e: Refactor XDP counters net/mlx5e: Re-order fields of struct mlx5e_xdpsq net/mlx5e: Add support for XDP_REDIRECT in device-out side net/mlx5e: RX, Prefetch the xdp_frame data area net/mlx5e: TX, Move DB fields in TXQ-SQ struct net/mlx5e: TX, Use function to access sq_dma object in fifo drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 61 +++-- drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 302 +++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h | 63 +++++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 116 ++++++-- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 254 ++--------------- drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 80 +++++- drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 24 +- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 19 +- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 4 + 10 files changed, 612 insertions(+), 313 deletions(-) create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h