mbox series

[00/25] net/mlx5: support multiple-thread flow operations

Message ID 1601984948-313027-1-git-send-email-suanmingm@nvidia.com (mailing list archive)
Headers show
Series net/mlx5: support multiple-thread flow operations | expand

Message

Suanming Mou Oct. 6, 2020, 11:48 a.m. UTC
This patch set contains multiple-thread flow operations support
for the flow objects.

Suanming Mou (10):
  net/mlx5: use thread safe index pool for flow objects
  net/mlx5: fix redundant Direct Verbs resources allocate
  net/mlx5: make header reformat action thread safe
  net/mlx5: remove unused hash list operations
  net/mlx5: make Rx queue thread safe
  net/mlx5: create global jump action
  net/mlx5: create global default miss action
  net/mlx5: create global drop action
  net/mlx5: make meter action thread safe
  net/mlx5: make VLAN network interface thread safe

Xueming Li (15):
  net/mlx5: use thread specific flow context
  net/mlx5: reuse flow Id as hairpin Id
  net/mlx5: indexed pool supports zero size entry
  net/mlx5: use indexed pool for RSS flow ID
  net/mlx5: make rte flow list thread safe
  net/mlx5: support concurrent access for hash list
  net/mlx5: make flow table cache thread safe
  net/mlx5: make flow tag list thread safe
  net/mlx5: make flow modify action list thread safe
  net/mlx5: make metadata copy flow list thread safe
  net/mlx5: introduce thread safe linked list cache
  net/mlx5: make matcher list thread safe
  net/mlx5: make port ID action cache thread safe
  net/mlx5: make push VLAN action cache thread safe
  net/mlx5: remove shared context lock

 drivers/net/mlx5/linux/mlx5_os.c      |   95 ++-
 drivers/net/mlx5/linux/mlx5_vlan_os.c |   24 +-
 drivers/net/mlx5/mlx5.c               |  268 +-----
 drivers/net/mlx5/mlx5.h               |   54 +-
 drivers/net/mlx5/mlx5_flow.c          |  500 ++++++------
 drivers/net/mlx5/mlx5_flow.h          |  117 ++-
 drivers/net/mlx5/mlx5_flow_dv.c       | 1450 ++++++++++++++-------------------
 drivers/net/mlx5/mlx5_flow_meter.c    |   72 +-
 drivers/net/mlx5/mlx5_flow_verbs.c    |   78 +-
 drivers/net/mlx5/mlx5_rxq.c           |  234 +++---
 drivers/net/mlx5/mlx5_rxtx.h          |   20 +-
 drivers/net/mlx5/mlx5_utils.c         |  350 ++++++--
 drivers/net/mlx5/mlx5_utils.h         |  302 +++++--
 13 files changed, 1837 insertions(+), 1727 deletions(-)

Comments

Suanming Mou Oct. 28, 2020, 9:33 a.m. UTC | #1
This patch set contains multiple-thread flow operations support
for the flow objects.

Suanming Mou (19):
  net/mlx5: use thread safe index pool for flow objects
  net/mlx5: make meter action thread safe
  net/mlx5: make VLAN network interface thread safe
  net/mlx5: create global jump action
  net/mlx5: create global default miss action
  net/mlx5: create global drop action
  net/mlx5: add flow table tunnel offload attribute
  net/mlx5: fix redundant Direct Verbs resources allocate
  net/mlx5: remove unused mreg copy code
  net/mlx5: make header reformat action thread safe
  net/mlx5: optimize shared RSS list operation
  net/mlx5: make Rx queue thread safe
  net/mlx5: simplify sample attributes
  net/mlx5: fix sample register error flow
  net/mlx5: make sample and mirror action thread safe
  net/mlx5: make tunnel offloading table thread safe
  net/mlx5: remove unused hash list operations
  net/mlx5: make tunnel hub list thread safe
  net/mlx5: make shared action list thread safe

Xueming Li (15):
  net/mlx5: use thread specific flow workspace
  net/mlx5: reuse flow Id as hairpin Id
  net/mlx5: indexed pool supports zero size entry
  net/mlx5: use indexed pool as ID generator
  net/mlx5: make rte flow list thread safe
  net/mlx5: support concurrent access for hash list
  net/mlx5: make flow table cache thread safe
  net/mlx5: make flow tag list thread safe
  net/mlx5: make flow modify action list thread safe
  net/mlx5: make metadata copy flow list thread safe
  net/mlx5: introduce thread safe linked list cache
  net/mlx5: make matcher list thread safe
  net/mlx5: make port ID action cache thread safe
  net/mlx5: make push VLAN action cache thread safe
  net/mlx5: remove shared context lock
---

v5:
 - fix table refcnt leak issue.

v4:
 - rebase the code on top of the latest code to fix the conflict.

v3:
 - rebase the code on top of the new added features.
 - New feature code adaption for multiple-thread support.

v2:
 - fix review comments.
 - remove unused mreg copy code.
 - drop the sh lock removing patch as new feature still not fully updated.

---

 doc/guides/nics/mlx5.rst               |    1 +
 doc/guides/rel_notes/release_20_11.rst |    1 +
 drivers/common/mlx5/linux/mlx5_nl.h    |    1 +
 drivers/net/mlx5/linux/mlx5_os.c       |  119 +-
 drivers/net/mlx5/linux/mlx5_vlan_os.c  |    5 +
 drivers/net/mlx5/mlx5.c                |  278 +---
 drivers/net/mlx5/mlx5.h                |   69 +-
 drivers/net/mlx5/mlx5_flow.c           |  756 +++++------
 drivers/net/mlx5/mlx5_flow.h           |  164 ++-
 drivers/net/mlx5/mlx5_flow_dv.c        | 2259 ++++++++++++++------------------
 drivers/net/mlx5/mlx5_flow_meter.c     |   72 +-
 drivers/net/mlx5/mlx5_flow_verbs.c     |   86 +-
 drivers/net/mlx5/mlx5_rxq.c            |  302 +++--
 drivers/net/mlx5/mlx5_rxtx.h           |   23 +-
 drivers/net/mlx5/mlx5_utils.c          |  345 ++++-
 drivers/net/mlx5/mlx5_utils.h          |  320 ++++-
 16 files changed, 2464 insertions(+), 2337 deletions(-)