DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: <dev@dpdk.org>
Subject: [dpdk-dev] [PATCH 00/13] Improve Solarflare PMD performance
Date: Thu, 2 Mar 2017 07:07:06 +0000	[thread overview]
Message-ID: <1488438439-14776-1-git-send-email-arybchenko@solarflare.com> (raw)

Implement EF10 (SFN7xxx and SFN8xxx) native datapaths which may be
chosen per device using PCI whitelist device arguments.

libefx-based datapath implementation is bound to API and structure
imposed by the libefx. It has many indirect function calls to
provide HW abstraction (bad for CPU pipeline) and uses many data
structures: driver Rx/Tx queue, driver event queue, libefx Rx/Tx
queue, libefx event queue, libefx NIC (bad for cache).

Native datapath implementation is fully separated from control
path to be able to use alternative control path if required
(e.g. kernel-aware).

Native datapaths show better performance than libefx-based.

Andrew Rybchenko (13):
  net/sfc: callbacks should depend on EvQ usage
  net/sfc: emphasis that RSS hash flag is an Rx queue flag
  net/sfc: do not use Rx queue control state on datapath
  net/sfc: factor out libefx-based Rx datapath
  net/sfc: Rx scatter is a datapath-dependent feature
  net/sfc: implement EF10 native Rx datapath
  net/sfc: factory out libefx-based Tx datapath
  net/sfc: VLAN insertion is a datapath dependent feature
  net/sfc: TSO is a datapath dependent feature
  net/sfc: implement EF10 native Tx datapath
  net/sfc: multi-segment support as is Tx datapath features
  net/sfc: implement simple EF10 native Tx datapath
  net/sfc: support Rx packed stream EF10-specific datapath

 doc/guides/nics/sfc_efx.rst      |  45 +++
 drivers/net/sfc/Makefile         |   4 +
 drivers/net/sfc/efsys.h          |   2 +-
 drivers/net/sfc/sfc.h            |   4 +
 drivers/net/sfc/sfc_dp.c         |  89 +++++
 drivers/net/sfc/sfc_dp.h         |  91 +++++
 drivers/net/sfc/sfc_dp_rx.h      | 216 ++++++++++++
 drivers/net/sfc/sfc_dp_tx.h      | 177 ++++++++++
 drivers/net/sfc/sfc_ef10_ps_rx.c | 659 ++++++++++++++++++++++++++++++++++++
 drivers/net/sfc/sfc_ef10_rx.c    | 713 +++++++++++++++++++++++++++++++++++++++
 drivers/net/sfc/sfc_ef10_tx.c    | 517 ++++++++++++++++++++++++++++
 drivers/net/sfc/sfc_ethdev.c     | 171 ++++++++--
 drivers/net/sfc/sfc_ev.c         | 272 +++++++++++++--
 drivers/net/sfc/sfc_ev.h         |  27 +-
 drivers/net/sfc/sfc_kvargs.c     |  11 +
 drivers/net/sfc/sfc_kvargs.h     |  19 ++
 drivers/net/sfc/sfc_rx.c         | 329 ++++++++++++++----
 drivers/net/sfc/sfc_rx.h         |  79 +++--
 drivers/net/sfc/sfc_tso.c        |  22 +-
 drivers/net/sfc/sfc_tx.c         | 331 +++++++++++++-----
 drivers/net/sfc/sfc_tx.h         |  95 ++++--
 21 files changed, 3604 insertions(+), 269 deletions(-)
 create mode 100644 drivers/net/sfc/sfc_dp.c
 create mode 100644 drivers/net/sfc/sfc_dp.h
 create mode 100644 drivers/net/sfc/sfc_dp_rx.h
 create mode 100644 drivers/net/sfc/sfc_dp_tx.h
 create mode 100644 drivers/net/sfc/sfc_ef10_ps_rx.c
 create mode 100644 drivers/net/sfc/sfc_ef10_rx.c
 create mode 100644 drivers/net/sfc/sfc_ef10_tx.c

-- 
1.8.2.3

             reply	other threads:[~2017-03-02  7:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-02  7:07 Andrew Rybchenko [this message]
2017-03-02  7:07 ` [dpdk-dev] [PATCH 01/13] net/sfc: callbacks should depend on EvQ usage Andrew Rybchenko
2017-03-04 21:04   ` Ferruh Yigit
2017-03-02  7:07 ` [dpdk-dev] [PATCH 02/13] net/sfc: emphasis that RSS hash flag is an Rx queue flag Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 03/13] net/sfc: do not use Rx queue control state on datapath Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 04/13] net/sfc: factor out libefx-based Rx datapath Andrew Rybchenko
2017-03-04 21:05   ` Ferruh Yigit
2017-03-13 13:12     ` Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 05/13] net/sfc: Rx scatter is a datapath-dependent feature Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 06/13] net/sfc: implement EF10 native Rx datapath Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 07/13] net/sfc: factory out libefx-based Tx datapath Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 08/13] net/sfc: VLAN insertion is a datapath dependent feature Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 09/13] net/sfc: TSO " Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 10/13] net/sfc: implement EF10 native Tx datapath Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 11/13] net/sfc: multi-segment support as is Tx datapath features Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 12/13] net/sfc: implement simple EF10 native Tx datapath Andrew Rybchenko
2017-03-02  7:07 ` [dpdk-dev] [PATCH 13/13] net/sfc: support Rx packed stream EF10-specific datapath Andrew Rybchenko
2017-03-04 21:07 ` [dpdk-dev] [PATCH 00/13] Improve Solarflare PMD performance Ferruh Yigit
2017-03-20 10:15 ` [dpdk-dev] [PATCH v2 " Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 01/13] net/sfc: use different callbacks for event queues Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 02/13] net/sfc: emphasis that RSS hash flag is an Rx queue flag Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 03/13] net/sfc: do not use Rx queue control state on datapath Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 04/13] net/sfc: factor out libefx-based Rx datapath Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 05/13] net/sfc: make Rx scatter a datapath-dependent feature Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 06/13] net/sfc: remove few conditions in Rx queue refill Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 07/13] net/sfc: implement EF10 native Rx datapath Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 08/13] net/sfc: factor out libefx-based Tx datapath Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 09/13] net/sfc: make VLAN insertion a datapath-dependent feature Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 10/13] net/sfc: make TSO " Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 11/13] net/sfc: implement EF10 native Tx datapath Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 12/13] net/sfc: make multi-segment support a Tx datapath feature Andrew Rybchenko
2017-03-20 10:15   ` [dpdk-dev] [PATCH v2 13/13] net/sfc: implement simple EF10 native Tx datapath Andrew Rybchenko
2017-03-20 15:37   ` [dpdk-dev] [PATCH v2 00/13] Improve Solarflare PMD performance Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1488438439-14776-1-git-send-email-arybchenko@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).