DPDK patches and discussions
 help / color / mirror / Atom feed
From: Michael Baum <michaelba@nvidia.com>
To: <dev@dpdk.org>
Cc: Matan Azrad <matan@nvidia.com>,
	Raslan Darawsheh <rasland@nvidia.com>,
	Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Subject: [PATCH v3 0/6] mlx5: external RxQ support
Date: Fri, 25 Feb 2022 01:25:05 +0200	[thread overview]
Message-ID: <20220224232511.3238707-1-michaelba@nvidia.com> (raw)
In-Reply-To: <20220223184835.3061161-1-michaelba@nvidia.com>

These patches add support to external Rx queues.
External queue is a queue that is managed by a process external to PMD,
but uses PMD process to generate its flow rules.

For the hardware to allow the DPDK process to set rules for it, the
process needs to use the same PD of the external process. In addition,
the indexes of the queues in hardware are represented by 32-bit compared
to the rte_flow indexes represented by 16-bit, so the processes need to
share some mapping between the indexes.

These patches allow the external process to provide devargs which enable
importing its context and PD, instead of prepare new ones. In addition,
an API is provided for mapping for the indexes of the queues.

v1:
- initial commits.

v2:
- Rebase.
- Add ABI exception for common/mlx5 library.
- Correct DevX flag updating.
- Improve explanations in doc and comments.
- Remove teatpmd part. 

v3:
- Rebase.
- Fix compilation error.
- Avoide TOCTOU issue in external RxQ map/unmap functions.
- Add check it the queue still referenced in unmapping function.
- Improve guide explanations for the new devargs.


Michael Baum (6):
  common/mlx5: consider local functions as internal
  common/mlx5: glue device and PD importation
  common/mlx5: add remote PD and CTX support
  net/mlx5: optimize RxQ/TxQ control structure
  net/mlx5: add external RxQ mapping API
  net/mlx5: support queue/RSS action for external RxQ

 devtools/libabigail.abignore                 |   4 +
 doc/guides/nics/mlx5.rst                     |   1 +
 doc/guides/platform/mlx5.rst                 |  37 ++-
 doc/guides/rel_notes/release_22_03.rst       |   1 +
 drivers/common/mlx5/linux/meson.build        |   2 +
 drivers/common/mlx5/linux/mlx5_common_os.c   | 196 ++++++++++++--
 drivers/common/mlx5/linux/mlx5_common_os.h   |   7 +-
 drivers/common/mlx5/linux/mlx5_glue.c        |  41 +++
 drivers/common/mlx5/linux/mlx5_glue.h        |   4 +
 drivers/common/mlx5/mlx5_common.c            |  84 ++++--
 drivers/common/mlx5/mlx5_common.h            |  23 +-
 drivers/common/mlx5/version.map              |   3 +
 drivers/common/mlx5/windows/mlx5_common_os.c |  37 ++-
 drivers/common/mlx5/windows/mlx5_common_os.h |   1 -
 drivers/net/mlx5/linux/mlx5_os.c             |  17 ++
 drivers/net/mlx5/mlx5.c                      |   5 +
 drivers/net/mlx5/mlx5.h                      |   1 +
 drivers/net/mlx5/mlx5_defs.h                 |   3 +
 drivers/net/mlx5/mlx5_devx.c                 |  52 ++--
 drivers/net/mlx5/mlx5_ethdev.c               |  18 +-
 drivers/net/mlx5/mlx5_flow.c                 |  43 +--
 drivers/net/mlx5/mlx5_flow_dv.c              |  14 +-
 drivers/net/mlx5/mlx5_rx.h                   |  49 +++-
 drivers/net/mlx5/mlx5_rxq.c                  | 266 +++++++++++++++++--
 drivers/net/mlx5/mlx5_trigger.c              |  36 +--
 drivers/net/mlx5/mlx5_tx.h                   |   7 +-
 drivers/net/mlx5/mlx5_txq.c                  |  14 +-
 drivers/net/mlx5/rte_pmd_mlx5.h              |  50 +++-
 drivers/net/mlx5/version.map                 |   3 +
 29 files changed, 838 insertions(+), 181 deletions(-)

-- 
2.25.1


  parent reply	other threads:[~2022-02-24 23:25 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-22 21:04 [PATCH " Michael Baum
2022-02-22 21:04 ` [PATCH 1/6] common/mlx5: glue device and PD importation Michael Baum
2022-02-22 21:04 ` [PATCH 2/6] common/mlx5: add remote PD and CTX support Michael Baum
2022-02-22 21:04 ` [PATCH 3/6] net/mlx5: optimize RxQ/TxQ control structure Michael Baum
2022-02-22 21:04 ` [PATCH 4/6] net/mlx5: add external RxQ mapping API Michael Baum
2022-02-22 21:04 ` [PATCH 5/6] net/mlx5: support queue/RSS action for external RxQ Michael Baum
2022-02-22 21:04 ` [PATCH 6/6] app/testpmd: add test " Michael Baum
2022-02-23 18:48 ` [PATCH v2 0/6] mlx5: external RxQ support Michael Baum
2022-02-23 18:48   ` [PATCH v2 1/6] common/mlx5: consider local functions as internal Michael Baum
2022-02-23 18:48   ` [PATCH v2 2/6] common/mlx5: glue device and PD importation Michael Baum
2022-02-23 18:48   ` [PATCH v2 3/6] common/mlx5: add remote PD and CTX support Michael Baum
2022-02-23 18:48   ` [PATCH v2 4/6] net/mlx5: optimize RxQ/TxQ control structure Michael Baum
2022-02-23 18:48   ` [PATCH v2 5/6] net/mlx5: add external RxQ mapping API Michael Baum
2022-02-23 18:48   ` [PATCH v2 6/6] net/mlx5: support queue/RSS action for external RxQ Michael Baum
2022-02-24  8:38   ` [PATCH v2 0/6] mlx5: external RxQ support Matan Azrad
2022-02-24 23:25   ` Michael Baum [this message]
2022-02-24 23:25     ` [PATCH v3 1/6] common/mlx5: consider local functions as internal Michael Baum
2022-02-25 18:01       ` Ferruh Yigit
2022-02-25 18:38         ` Thomas Monjalon
2022-02-25 19:13           ` Ferruh Yigit
2022-02-24 23:25     ` [PATCH v3 2/6] common/mlx5: glue device and PD importation Michael Baum
2022-02-24 23:25     ` [PATCH v3 3/6] common/mlx5: add remote PD and CTX support Michael Baum
2022-02-24 23:25     ` [PATCH v3 4/6] net/mlx5: optimize RxQ/TxQ control structure Michael Baum
2022-02-24 23:25     ` [PATCH v3 5/6] net/mlx5: add external RxQ mapping API Michael Baum
2022-02-24 23:25     ` [PATCH v3 6/6] net/mlx5: support queue/RSS action for external RxQ Michael Baum
2022-02-25 17:39     ` [PATCH v3 0/6] mlx5: external RxQ support Thomas Monjalon

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=20220224232511.3238707-1-michaelba@nvidia.com \
    --to=michaelba@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=matan@nvidia.com \
    --cc=rasland@nvidia.com \
    --cc=viacheslavo@nvidia.com \
    /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).