[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250107060708.1610882-1-tariqt@nvidia.com>
Date: Tue, 7 Jan 2025 08:06:55 +0200
From: Tariq Toukan <tariqt@...dia.com>
To: "David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Eric Dumazet <edumazet@...gle.com>, "Andrew
Lunn" <andrew+netdev@...n.ch>
CC: <netdev@...r.kernel.org>, Saeed Mahameed <saeedm@...dia.com>, Gal Pressman
<gal@...dia.com>, Leon Romanovsky <leonro@...dia.com>, Mark Bloch
<mbloch@...dia.com>, Moshe Shemesh <moshe@...dia.com>, Yevgeny Kliteynik
<kliteyn@...dia.com>, Tariq Toukan <tariqt@...dia.com>
Subject: [PATCH net-next 00/13] mlx5 HW-Managed Flow Steering in FS core level
This patchset by Moshe follows Yevgeny's patchsets [1][2] on subject
"HW-Managed Flow Steering in mlx5 driver". As introduced there in HW
managed Flow Steering mode (HWS) the driver is configuring steering
rules directly to the HW using WQs with a special new type of WQE (Work
Queue Element). This way we can reach higher rule insertion/deletion
rate with much lower CPU utilization compared to SW Managed Flow
Steering (SWS).
This patchset adds API to manage namespace, flow tables, flow groups and
prepare FTE (Flow Table Entry) rules. It also adds caching and pool
mechanisms for HWS actions to allow sharing of steering actions among
different rules. The implementation of this API in FS layer, allows FS
core to use HW Managed Flow Steering in addition to the existing FW or
SW Managed Flow Steering.
The last patch of this series adds support for configuring HW Managed
Flow Steering mode through devlink param, similar to configuring SW
Managed Flow Steering mode:
# devlink dev param set pci/0000:08:00.0 name flow_steering_mode \
cmode runtime value hmfs
[1] https://lore.kernel.org/netdev/20240903031948.78006-1-saeed@kernel.org/
[2] https://lore.kernel.org/all/20250102181415.1477316-1-tariqt@nvidia.com/
Regards,
Tariq
Moshe Shemesh (13):
net/mlx5: fs, add HWS root namespace functions
net/mlx5: fs, add HWS flow table API functions
net/mlx5: fs, add HWS flow group API functions
net/mlx5: fs, add HWS actions pool
net/mlx5: fs, add HWS packet reformat API function
net/mlx5: fs, add HWS modify header API function
net/mlx5: fs, manage flow counters HWS action sharing by refcount
net/mlx5: fs, add dest table cache
net/mlx5: fs, add HWS fte API functions
net/mlx5: fs, add support for dest vport HWS action
net/mlx5: fs, set create match definer to not supported by HWS
net/mlx5: fs, add HWS get capabilities
net/mlx5: fs, add HWS to steering mode options
.../net/ethernet/mellanox/mlx5/core/Makefile | 5 +-
.../net/ethernet/mellanox/mlx5/core/fs_core.c | 50 +-
.../net/ethernet/mellanox/mlx5/core/fs_core.h | 62 +-
.../ethernet/mellanox/mlx5/core/fs_counters.c | 42 +-
.../net/ethernet/mellanox/mlx5/core/fs_pool.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/fs_pool.h | 5 +-
.../mellanox/mlx5/core/steering/hws/fs_hws.c | 1363 +++++++++++++++++
.../mellanox/mlx5/core/steering/hws/fs_hws.h | 80 +
.../mlx5/core/steering/hws/fs_hws_pools.c | 449 ++++++
.../mlx5/core/steering/hws/fs_hws_pools.h | 73 +
include/linux/mlx5/mlx5_ifc.h | 1 +
11 files changed, 2077 insertions(+), 58 deletions(-)
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.h
base-commit: 49afc040f4d707a4149a05180edc42bc590641a4
--
2.45.0
Powered by blists - more mailing lists