On 4/15/2021 4:11 PM, Li Zhang wrote:
To support more meters and better performance,
MLX HW provide ASO flow meter.
It can expose millions of ASO flow meter context's in HW.
This ASO object can allocate the large bulk meter objects.
This patch set implement the ASO flow meter for mlx5 driver.
MLX5 PMD driver will be responsible for ASO flow meter manage to HW.
What is ASO?
Search yields "Advanced Steering Operation" but that seems Mellanox jargon,
would you mind adding some mlx documentation to describe it? If there are some
design considerations around it, it may be good to document that too.
Also please provide the long version of the abbreviation in the commit log, at
least at first usage of it.
And what do you think mentioning from this new support in the release notes?
Thanks,
ferruh
V2: Fix compile error issue (mlx5_glue->destroy_flow_action)
V3: Fix comments.
V4: Fix comments and add Acked.
V5: Fix unused log_obj_size issue.
Li Zhang (10):
net/mlx5: optimize meter statistics
common/mlx5: add definitions for ASO flow meter
common/mlx5: add read ASO flow meter HCA capability
common/mlx5: add DevX API to create ASO flow meter object
net/mlx5: flow meter pool to manage meter object
net/mlx5: initialize the flow meter ASO SQ
net/mlx5: aso flow meter send WQE and CQE handle
net/mlx5: add support of ASO meter action
net/mlx5: make ASO meter queue thread-safe
net/mlx5: allow multiple flow tables on the same level
Shun Hao (3):
common/mlx5: add color register idle bits definition
net/mlx5: fix meter statistics
net/mlx5: use mask for meter register setting
Suanming Mou (1):
net/mlx5: support three level table walk
doc/guides/nics/mlx5.rst | 6 +
drivers/common/mlx5/mlx5_devx_cmds.c | 68 ++
drivers/common/mlx5/mlx5_devx_cmds.h | 26 +-
drivers/common/mlx5/mlx5_prm.h | 81 +-
drivers/common/mlx5/version.map | 1 +
drivers/net/mlx5/linux/mlx5_os.c | 20 +-
drivers/net/mlx5/meson.build | 2 +-
drivers/net/mlx5/mlx5.c | 98 +-
drivers/net/mlx5/mlx5.h | 258 +++++-
drivers/net/mlx5/mlx5_flow.c | 334 +++++--
drivers/net/mlx5/mlx5_flow.h | 212 ++---
.../mlx5/{mlx5_flow_age.c => mlx5_flow_aso.c} | 289 +++++-
drivers/net/mlx5/mlx5_flow_dv.c | 792 +++++++++++-----
drivers/net/mlx5/mlx5_flow_meter.c | 873 ++++++++++++------
drivers/net/mlx5/mlx5_utils.h | 90 ++
15 files changed, 2320 insertions(+), 830 deletions(-)
rename drivers/net/mlx5/{mlx5_flow_age.c => mlx5_flow_aso.c} (65%)