mbox series

[v5,00/14] Add ASO meter support in MLX5 PMD

Message ID 20210415151135.2098674-1-lizh@nvidia.com (mailing list archive)
Headers show
Series Add ASO meter support in MLX5 PMD | expand

Message

Li Zhang April 15, 2021, 3:11 p.m. UTC
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.

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%)

Comments

Raslan Darawsheh April 18, 2021, 7:33 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: Li Zhang <lizh@nvidia.com>
> Sent: Thursday, April 15, 2021 6:11 PM
> To: dekelp@nvidia.com; Ori Kam <orika@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>; Shahaf
> Shuler <shahafs@nvidia.com>
> Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon
> <thomas@monjalon.net>; Raslan Darawsheh <rasland@nvidia.com>; Roni
> Bar Yanai <roniba@nvidia.com>
> Subject: [PATCH v5 00/14] Add ASO meter support in MLX5 PMD
> 
> 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.
> 
> 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%)
> 
> --
> 2.27.0

Series applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
Ferruh Yigit April 19, 2021, 9:42 p.m. UTC | #2
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%)
>
Thomas Monjalon April 19, 2021, 9:59 p.m. UTC | #3
19/04/2021 23:42, Ferruh Yigit:
> 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?

Yes, new PMD feature should be announced in the release notes,
it seems to be a miss.

> >   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(-)
Jiawei Wang April 20, 2021, 10:33 a.m. UTC | #4
Hi,

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Tuesday, April 20, 2021 5:59 AM
> To: Li Zhang <lizh@nvidia.com>; Ferruh Yigit <ferruh.yigit@intel.com>
> Cc: Ori Kam <orika@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>;
> Matan Azrad <matan@nvidia.com>; dev@dpdk.org; Raslan Darawsheh
> <rasland@nvidia.com>; Asaf Penso <asafp@nvidia.com>; Jiawei(Jonny)
> Wang <jiaweiw@nvidia.com>
> Subject: Re: [dpdk-dev] [PATCH v5 00/14] Add ASO meter support in MLX5
> PMD
> 
> 19/04/2021 23:42, Ferruh Yigit:
> > 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.

Yes, ASO means (Advanced Steering Operation) and it's MLX5 internal usage,
we adds the usage in the commit log.

> > Also please provide the long version of the abbreviation in the commit
> > log, at least at first usage of it.
> >

Ok, will add it.

> > And what do you think mentioning from this new support in the release
> notes?
> 
> Yes, new PMD feature should be announced in the release notes, it seems to
> be a miss.
> 

Yes, will add the description in release_notes_21.05.rst

> > >   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(-)
> 
> 

Thanks.