Message ID | 20180924163557.1187-1-bjorn.topel@gmail.com |
---|---|
Headers | show
Return-Path: <intel-wired-lan-bounces@osuosl.org> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=osuosl.org (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=<UNKNOWN>) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42Jqd11cHfz9s9h for <incoming@patchwork.ozlabs.org>; Tue, 25 Sep 2018 02:37:56 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 2EAF521519; Mon, 24 Sep 2018 16:37:55 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xsUAsrV8wXKX; Mon, 24 Sep 2018 16:37:53 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 3296A2151F; Mon, 24 Sep 2018 16:37:53 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 40C351C2E37 for <intel-wired-lan@lists.osuosl.org>; Mon, 24 Sep 2018 16:37:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 3DB528502E for <intel-wired-lan@lists.osuosl.org>; Mon, 24 Sep 2018 16:37:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YpX2v8NKsNEf for <intel-wired-lan@lists.osuosl.org>; Mon, 24 Sep 2018 16:37:51 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by fraxinus.osuosl.org (Postfix) with ESMTPS id ABBAE84F6F for <intel-wired-lan@lists.osuosl.org>; Mon, 24 Sep 2018 16:37:51 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Sep 2018 09:37:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,298,1534834800"; d="scan'208";a="82877922" Received: from dandretz-mobl2.ger.corp.intel.com (HELO btopel-mobl1.isw.intel.com) ([10.252.37.237]) by FMSMGA003.fm.intel.com with ESMTP; 24 Sep 2018 09:36:13 -0700 From: =?utf-8?b?QmrDtnJuIFTDtnBlbA==?= <bjorn.topel@gmail.com> To: jeffrey.t.kirsher@intel.com, intel-wired-lan@lists.osuosl.org Date: Mon, 24 Sep 2018 18:35:52 +0200 Message-Id: <20180924163557.1187-1-bjorn.topel@gmail.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Subject: [Intel-wired-lan] [PATCH 0/5] Introducing ixgbe AF_XDP ZC support X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development <intel-wired-lan.osuosl.org> List-Unsubscribe: <https://lists.osuosl.org/mailman/options/intel-wired-lan>, <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe> List-Archive: <http://lists.osuosl.org/pipermail/intel-wired-lan/> List-Post: <mailto:intel-wired-lan@osuosl.org> List-Help: <mailto:intel-wired-lan-request@osuosl.org?subject=help> List-Subscribe: <https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe> Cc: daniel@iogearbox.net, netdev@vger.kernel.org, ast@kernel.org, tuc@vmware.com, u9012063@gmail.com, brouer@redhat.com, =?utf-8?q?Bj?= =?utf-8?b?w7ZybiBUw7ZwZWw=?= <bjorn.topel@intel.com>, magnus.karlsson@gmail.com, magnus.karlsson@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" <intel-wired-lan-bounces@osuosl.org> |
Series |
Introducing ixgbe AF_XDP ZC support
|
expand
|
From: Björn Töpel <bjorn.topel@intel.com> This patch set introduces zero-copy AF_XDP support for Intel's ixgbe driver. The ixgbe zero-copy code is located in its own file ixgbe_xsk.[ch], analogous to the i40e ZC support. Again, as in i40e, code paths have been copied from the XDP path to the zero-copy path. Going forward we will try to generalize more code between the AF_XDP ZC drivers, and also reduce the heavy C&P. We have run some benchmarks on a dual socket system with two Broadwell E5 2660 @ 2.0 GHz with hyperthreading turned off. Each socket has 14 cores which gives a total of 28, but only two cores are used in these experiments. One for TR/RX and one for the user space application. The memory is DDR4 @ 2133 MT/s (1067 MHz) and the size of each DIMM is 8192MB and with 8 of those DIMMs in the system we have 64 GB of total memory. The compiler used is GCC 7.3.0. The NIC is Intel 82599ES/X520-2 10Gbit/s using the ixgbe driver. Below are the results in Mpps of the 82599ES/X520-2 NIC benchmark runs for 64B and 1500B packets, generated by a commercial packet generator HW blasting packets at full 10Gbit/s line rate. The results are with retpoline and all other spectre and meltdown fixes. AF_XDP performance 64B packets: Benchmark XDP_DRV with zerocopy rxdrop 14.7 txpush 14.6 l2fwd 11.1 AF_XDP performance 1500B packets: Benchmark XDP_DRV with zerocopy rxdrop 0.8 l2fwd 0.8 XDP performance on our system as a base line. 64B packets: XDP stats CPU Mpps issue-pps XDP-RX CPU 16 14.7 0 1500B packets: XDP stats CPU Mpps issue-pps XDP-RX CPU 16 0.8 0 The structure of the patch set is as follows: Patch 1: Introduce Rx/Tx ring enable/disable functionality Patch 2: Preparatory patche to ixgbe driver code for RX Patch 3: ixgbe zero-copy support for RX Patch 4: Preparatory patch to ixgbe driver code for TX Patch 5: ixgbe zero-copy support for TX Cheers! Björn Björn Töpel (5): ixgbe: added Rx/Tx ring disable/enable functions ixgbe: move common Rx functions to ixgbe_txrx_common.h ixgbe: add AF_XDP zero-copy Rx support ixgbe: move common Tx functions to ixgbe_txrx_common.h ixgbe: add AF_XDP zero-copy Tx support drivers/net/ethernet/intel/ixgbe/Makefile | 3 +- drivers/net/ethernet/intel/ixgbe/ixgbe.h | 27 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 290 ++++++- .../ethernet/intel/ixgbe/ixgbe_txrx_common.h | 50 ++ drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 814 ++++++++++++++++++ 5 files changed, 1139 insertions(+), 45 deletions(-) create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c