netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeed@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org, Tariq Toukan <tariqt@nvidia.com>,
	Saeed Mahameed <saeedm@nvidia.com>
Subject: [pull request][net-next 00/16] mlx5 updates 2021-07-24
Date: Mon, 26 Jul 2021 09:55:28 -0700	[thread overview]
Message-ID: <20210726165544.389143-1-saeed@kernel.org> (raw)

From: Saeed Mahameed <saeedm@nvidia.com>

Hi Dave and Jakub,

This series provides some refactoring to mlx5e RX resource management,
it is required for upcoming ADQ and TX lag hashing features.

The first two patches in this series :
  net/mlx5e: Prohibit inner indir TIRs in IPoIB
  net/mlx5e: Block LRO if firmware asks for tunneled LRO
Were supposed to go to net, but due to dependency and timing they were
included here.
I would appreciate it if you'd apply them to net and mark for -stable.

For more information please see tag log below.

Please pull and let me know if there is any problem.

Thanks,
Saeed.

---
The following changes since commit 4431531c482a2c05126caaa9fcc5053a4a5c495b:

  nfp: fix return statement in nfp_net_parse_meta() (2021-07-22 05:46:03 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2021-07-24

for you to fetch changes up to 09f83569189f0fabb28472378e99af289b402c0f:

  net/mlx5e: Use the new TIR API for kTLS (2021-07-26 09:50:41 -0700)

----------------------------------------------------------------
mlx5-updates-2021-07-24

This series aims to reduce coupling in mlx5e, particularly between RX
resources (TIRs, RQTs) and numerous code units that use them.

This refactoring is required for upcoming features, ADQ and TX lag
hashing.

The issue with the current code is that TIRs and RQTs are unmanaged,
different places all over the driver create, destroy, track and
configure them, often in an uncoordinated way. The responsibilities of
different units become vague, leading to a lot of hidden dependencies
between numerous units and tight coupling between them, which is prone
to bugs and hard to maintain.

The result of this refactoring is:

1. Creating a manager for RX resources, that controls their lifecycle
and provides a clear API, which restricts the set of actions that other
units can do.

2. Using object-oriented approach for TIRs, RQTs and RX resource
manager (struct mlx5e_rx_res).

3. Fixing a few bugs and misbehaviors found during the refactoring.

4. Reducing the amount of dependencies, removing hidden dependencies,
making them one-directional and organizing the code in clear abstraction
layers.

5. Explicitly exposing the remaining weird dependencies.

6. Simplifying and organizing code that creates and modifies TIRs and
RQTs.

----------------------------------------------------------------
Maxim Mikityanskiy (16):
      net/mlx5e: Prohibit inner indir TIRs in IPoIB
      net/mlx5e: Block LRO if firmware asks for tunneled LRO
      net/mlx5: Take TIR destruction out of the TIR list lock
      net/mlx5e: Check if inner FT is supported outside of create/destroy functions
      net/mlx5e: Convert RQT to a dedicated object
      net/mlx5e: Move mlx5e_build_rss_params() call to init_rx
      net/mlx5e: Move RX resources to a separate struct
      net/mlx5e: Take RQT out of TIR and group RX resources
      net/mlx5e: Use mlx5e_rqt_get_rqtn to access RQT hardware id
      net/mlx5e: Remove mlx5e_priv usage from mlx5e_build_*tir_ctx*()
      net/mlx5e: Remove lro_param from mlx5e_build_indir_tir_ctx_common()
      net/mlx5e: Remove mdev from mlx5e_build_indir_tir_ctx_common()
      net/mlx5e: Create struct mlx5e_rss_params_hash
      net/mlx5e: Convert TIR to a dedicated object
      net/mlx5e: Move management of indir traffic types to rx_res
      net/mlx5e: Use the new TIR API for kTLS

 drivers/net/ethernet/mellanox/mlx5/core/Makefile   |   3 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |  64 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/fs.h    |  14 +-
 .../net/ethernet/mellanox/mlx5/core/en/params.c    |  12 +
 .../net/ethernet/mellanox/mlx5/core/en/params.h    |   6 +
 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c   |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.c   | 161 +++++
 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.h   |  39 ++
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.c    |  73 ++
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.h    |  47 ++
 drivers/net/ethernet/mellanox/mlx5/core/en/tir.c   | 200 ++++++
 drivers/net/ethernet/mellanox/mlx5/core/en/tir.h   |  58 ++
 drivers/net/ethernet/mellanox/mlx5/core/en/trap.c  |  27 +-
 .../net/ethernet/mellanox/mlx5/core/en/xsk/setup.c |  18 +-
 .../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c |  53 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c  |   7 +-
 .../net/ethernet/mellanox/mlx5/core/en_common.c    |  27 -
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |  66 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c    |  45 +-
 .../ethernet/mellanox/mlx5/core/en_fs_ethtool.c    |  22 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 740 +++++++++------------
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  37 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    | 144 ++--
 .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c  |  49 +-
 include/linux/mlx5/mlx5_ifc.h                      |   3 +-
 25 files changed, 1106 insertions(+), 811 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tir.h

             reply	other threads:[~2021-07-26 16:58 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-26 16:55 Saeed Mahameed [this message]
2021-07-26 16:55 ` [net-next 01/16] net/mlx5e: Prohibit inner indir TIRs in IPoIB Saeed Mahameed
2021-07-26 21:40   ` patchwork-bot+netdevbpf
2021-07-26 16:55 ` [net-next 02/16] net/mlx5e: Block LRO if firmware asks for tunneled LRO Saeed Mahameed
2021-07-26 16:55 ` [net-next 03/16] net/mlx5: Take TIR destruction out of the TIR list lock Saeed Mahameed
2021-07-26 16:55 ` [net-next 04/16] net/mlx5e: Check if inner FT is supported outside of create/destroy functions Saeed Mahameed
2021-07-26 16:55 ` [net-next 05/16] net/mlx5e: Convert RQT to a dedicated object Saeed Mahameed
2021-07-26 16:55 ` [net-next 06/16] net/mlx5e: Move mlx5e_build_rss_params() call to init_rx Saeed Mahameed
2021-07-26 16:55 ` [net-next 07/16] net/mlx5e: Move RX resources to a separate struct Saeed Mahameed
2021-07-26 16:55 ` [net-next 08/16] net/mlx5e: Take RQT out of TIR and group RX resources Saeed Mahameed
2021-07-26 16:55 ` [net-next 09/16] net/mlx5e: Use mlx5e_rqt_get_rqtn to access RQT hardware id Saeed Mahameed
2021-07-26 16:55 ` [net-next 10/16] net/mlx5e: Remove mlx5e_priv usage from mlx5e_build_*tir_ctx*() Saeed Mahameed
2021-07-26 16:55 ` [net-next 11/16] net/mlx5e: Remove lro_param from mlx5e_build_indir_tir_ctx_common() Saeed Mahameed
2021-07-26 16:55 ` [net-next 12/16] net/mlx5e: Remove mdev " Saeed Mahameed
2021-07-26 16:55 ` [net-next 13/16] net/mlx5e: Create struct mlx5e_rss_params_hash Saeed Mahameed
2021-07-26 16:55 ` [net-next 14/16] net/mlx5e: Convert TIR to a dedicated object Saeed Mahameed
2021-07-26 16:55 ` [net-next 15/16] net/mlx5e: Move management of indir traffic types to rx_res Saeed Mahameed
2021-07-26 16:55 ` [net-next 16/16] net/mlx5e: Use the new TIR API for kTLS Saeed Mahameed

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=20210726165544.389143-1-saeed@kernel.org \
    --to=saeed@kernel.org \
    --cc=davem@davemloft.net \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@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).