mbox series

[v6,00/15] Add ASO meter support in MLX5 PMD

Message ID 1618916122-181792-1-git-send-email-jiaweiw@nvidia.com (mailing list archive)
Headers
Series Add ASO meter support in MLX5 PMD |

Message

Jiawei Wang April 20, 2021, 10:55 a.m. UTC
  To support more meters and better performance,
MLX HW provides ASO (Advanced Steering Operation) 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.

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.
V6: Fix comments and update release notes.

Jiawei Wang (1):
  doc: update release notes for ASO meter

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: add meter ASO queue management
  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 +
 doc/guides/rel_notes/release_21_05.rst |   1 +
 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 +++-----
 drivers/net/mlx5/mlx5_flow_age.c       | 591 ----------------------
 drivers/net/mlx5/mlx5_flow_aso.c       | 850 ++++++++++++++++++++++++++++++++
 drivers/net/mlx5/mlx5_flow_dv.c        | 792 +++++++++++++++++++++---------
 drivers/net/mlx5/mlx5_flow_meter.c     | 873 +++++++++++++++++++++------------
 drivers/net/mlx5/mlx5_utils.h          |  90 ++++
 17 files changed, 2897 insertions(+), 1406 deletions(-)
 delete mode 100644 drivers/net/mlx5/mlx5_flow_age.c
 create mode 100644 drivers/net/mlx5/mlx5_flow_aso.c
  

Comments

Raslan Darawsheh April 21, 2021, 6:51 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: Jiawei Wang <jiaweiw@nvidia.com>
> Sent: Tuesday, April 20, 2021 1:55 PM
> To: Matan Azrad <matan@nvidia.com>; Ori Kam <orika@nvidia.com>; Slava
> Ovsiienko <viacheslavo@nvidia.com>; ferruh.yigit@intel.com; NBU-Contact-
> Thomas Monjalon <thomas@monjalon.net>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Asaf Penso
> <asafp@nvidia.com>
> Subject: [PATCH v6 00/15] Add ASO meter support in MLX5 PMD
> 
> To support more meters and better performance,
> MLX HW provides ASO (Advanced Steering Operation) 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.
> 
> 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.
> V6: Fix comments and update release notes.
> 
> Jiawei Wang (1):
>   doc: update release notes for ASO meter
> 
> 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: add meter ASO queue management
>   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 +
>  doc/guides/rel_notes/release_21_05.rst |   1 +
>  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 +++-----
>  drivers/net/mlx5/mlx5_flow_age.c       | 591 ----------------------
>  drivers/net/mlx5/mlx5_flow_aso.c       | 850
> ++++++++++++++++++++++++++++++++
>  drivers/net/mlx5/mlx5_flow_dv.c        | 792 +++++++++++++++++++++------
> ---
>  drivers/net/mlx5/mlx5_flow_meter.c     | 873 +++++++++++++++++++++----
> --------
>  drivers/net/mlx5/mlx5_utils.h          |  90 ++++
>  17 files changed, 2897 insertions(+), 1406 deletions(-)
>  delete mode 100644 drivers/net/mlx5/mlx5_flow_age.c
>  create mode 100644 drivers/net/mlx5/mlx5_flow_aso.c
> 
> --
> 1.8.3.1

Removed V5 and v6 applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  
Ferruh Yigit April 21, 2021, 8:31 a.m. UTC | #2
On 4/20/2021 11:55 AM, Jiawei Wang wrote:
> To support more meters and better performance,
> MLX HW provides ASO (Advanced Steering Operation) 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.
> 
> 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.
> V6: Fix comments and update release notes.
> 
> Jiawei Wang (1):
>    doc: update release notes for ASO meter
> 
> 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: add meter ASO queue management
>    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
> 

Hi Li,

The request in previous patch was to add some documentation on the new feature 
in driver documentation, plus some design documentation if needed, not just 
release notes update.

But this patch become on the critical path for -rc1, since an mlx ethdev patch 
depends on this patch, I want to block them for the release, instead does it 
make sense the have the documentation update for the -rc2, what do you think?

Thanks,
ferruh
  
Asaf Penso April 21, 2021, 8:33 a.m. UTC | #3
>-----Original Message-----
>From: Ferruh Yigit <ferruh.yigit@intel.com>
>Sent: Wednesday, April 21, 2021 11:32 AM
>To: Jiawei(Jonny) Wang <jiaweiw@nvidia.com>; Matan Azrad
><matan@nvidia.com>; Ori Kam <orika@nvidia.com>; Slava Ovsiienko
><viacheslavo@nvidia.com>; NBU-Contact-Thomas Monjalon
><thomas@monjalon.net>
>Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Asaf Penso
><asafp@nvidia.com>
>Subject: Re: [PATCH v6 00/15] Add ASO meter support in MLX5 PMD
>
>On 4/20/2021 11:55 AM, Jiawei Wang wrote:
>> To support more meters and better performance, MLX HW provides ASO
>> (Advanced Steering Operation) 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.
>>
>> 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.
>> V6: Fix comments and update release notes.
>>
>> Jiawei Wang (1):
>>    doc: update release notes for ASO meter
>>
>> 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: add meter ASO queue management
>>    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
>>
>
>Hi Li,
>
>The request in previous patch was to add some documentation on the new
>feature in driver documentation, plus some design documentation if needed,
>not just release notes update.
>
>But this patch become on the critical path for -rc1, since an mlx ethdev patch
>depends on this patch, I want to block them for the release, instead does it
>make sense the have the documentation update for the -rc2, what do you
>think?
>
>Thanks,
>ferruh

Hello Ferruh,
The ASO is not a new concept, and is already used by other features like shared RSS and sharing Aging.
Regardless, I agree we can improve documention of the driver, as always 😊
We'll take it as part of -rc2, and would appreciate the integration of this patchset in the meanwhile.
  
Ferruh Yigit April 21, 2021, 8:58 a.m. UTC | #4
On 4/21/2021 9:33 AM, Asaf Penso wrote:
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>> Sent: Wednesday, April 21, 2021 11:32 AM
>> To: Jiawei(Jonny) Wang <jiaweiw@nvidia.com>; Matan Azrad
>> <matan@nvidia.com>; Ori Kam <orika@nvidia.com>; Slava Ovsiienko
>> <viacheslavo@nvidia.com>; NBU-Contact-Thomas Monjalon
>> <thomas@monjalon.net>
>> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; Asaf Penso
>> <asafp@nvidia.com>
>> Subject: Re: [PATCH v6 00/15] Add ASO meter support in MLX5 PMD
>>
>> On 4/20/2021 11:55 AM, Jiawei Wang wrote:
>>> To support more meters and better performance, MLX HW provides ASO
>>> (Advanced Steering Operation) 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.
>>>
>>> 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.
>>> V6: Fix comments and update release notes.
>>>
>>> Jiawei Wang (1):
>>>     doc: update release notes for ASO meter
>>>
>>> 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: add meter ASO queue management
>>>     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
>>>
>>
>> Hi Li,
>>
>> The request in previous patch was to add some documentation on the new
>> feature in driver documentation, plus some design documentation if needed,
>> not just release notes update.
>>
>> But this patch become on the critical path for -rc1, since an mlx ethdev patch
>> depends on this patch, I want to block them for the release, instead does it
>> make sense the have the documentation update for the -rc2, what do you
>> think?
>>
>> Thanks,
>> ferruh
> 
> Hello Ferruh,
> The ASO is not a new concept, and is already used by other features like shared RSS and sharing Aging.
> Regardless, I agree we can improve documention of the driver, as always 😊

+1

> We'll take it as part of -rc2, and would appreciate the integration of this patchset in the meanwhile.
> 

A correction from above, "I _don't_ want to block them for the release" and 
already working on it, the documentation update can be merged on -rc2.

Thanks.