[dpdk-dev] [PATCH v3 00/22] net/mlx5: insertion rate optimization
Suanming Mou
suanmingm at nvidia.com
Fri Jul 2 08:17:54 CEST 2021
This patch series optimize the flow insertion rate with adding
local cache to index pool and list.
For object which wants efficient index allocate and free, local
cache will be very helpful.
For index pool, two level cache is added, one as local and another
as global. The global cache is able to save all the allocated
index. That means all the allocated index will not be freed. Once
the local cache is full, the extra index will be flushed to the
global cache. Once local cache is empty, first try to fetch more
index from global, if global is still empty, allocate new trunk
and more index.
For list, sub local core list is introduced. The allocated objects
will be added and released only from local list without any locks.
Only the objects need to be shared will be synced from global list.
---
v3: fix Windows compilation issue
v2: add the list per-lcore cache optimization
---
Matan Azrad (9):
net/mlx5: optimize modify header action memory
net/mlx5: remove cache term from the list utility
net/mlx5: add per lcore cache to the list utility
net/mlx5: minimize list critical sections
net/mlx5: manage list cache entries release
net/mlx5: relax the list utility atomic operations
net/mlx5: allocate list memory by the create API
common/mlx5: add per-lcore cache to hash list utility
net/mlx5: move modify header allocator to ipool
Suanming Mou (13):
net/mlx5: allow limiting the index pool maximum index
net/mlx5: add indexed pool local cache
net/mlx5: add index pool foreach define
net/mlx5: replace flow list with index pool
net/mlx5: adjust the hash bucket size
common/mlx5: allocate cache list memory individually
net/mlx5: enable index pool per-core cache
net/mlx5: optimize hash list table allocate on demand
common/mlx5: optimize cache list object memory
net/mlx5: change memory release configuration
net/mlx5: support index pool none local core operations
net/mlx5: support list none local core operations
net/mlx5: optimize Rx queue match
doc/guides/nics/mlx5.rst | 5 +
doc/guides/rel_notes/release_21_08.rst | 6 +
drivers/common/mlx5/linux/mlx5_glue.h | 1 +
drivers/common/mlx5/mlx5_common.h | 2 +
drivers/common/mlx5/mlx5_common_utils.c | 569 ++++++++---
drivers/common/mlx5/mlx5_common_utils.h | 289 ++++--
drivers/common/mlx5/version.map | 7 +
drivers/net/mlx5/linux/mlx5_flow_os.h | 3 +-
drivers/net/mlx5/linux/mlx5_os.c | 209 ++--
drivers/net/mlx5/mlx5.c | 34 +-
drivers/net/mlx5/mlx5.h | 46 +-
drivers/net/mlx5/mlx5_defs.h | 12 +-
drivers/net/mlx5/mlx5_flow.c | 305 +++---
drivers/net/mlx5/mlx5_flow.h | 210 ++--
drivers/net/mlx5/mlx5_flow_dv.c | 1203 +++++++++++++++--------
drivers/net/mlx5/mlx5_rx.h | 14 +-
drivers/net/mlx5/mlx5_rxq.c | 136 ++-
drivers/net/mlx5/mlx5_trigger.c | 8 +-
drivers/net/mlx5/mlx5_utils.c | 617 ++++++++----
drivers/net/mlx5/mlx5_utils.h | 255 ++---
drivers/net/mlx5/windows/mlx5_os.c | 11 +-
21 files changed, 2531 insertions(+), 1411 deletions(-)
--
2.25.1
More information about the dev
mailing list