[dpdk-dev] [PATCH v3 00/22] net/mlx5: insertion rate optimization

2021-07-01 Thread Suanming Mou
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

[dpdk-dev] [PATCH v3 01/22] net/mlx5: allow limiting the index pool maximum index

2021-07-01 Thread Suanming Mou
configuration in ID allocator cases instead of the current logics. This patch add the maximum ID configurable for the index pool. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 14 -- drivers/net/mlx5/mlx5_utils.h | 1 + 2 files changed, 13 insertions

[dpdk-dev] [PATCH v3 02/22] net/mlx5: add indexed pool local cache

2021-07-01 Thread Suanming Mou
. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 323 -- drivers/net/mlx5/mlx5_utils.h | 64 ++- 2 files changed, 372 insertions(+), 15 deletions(-) diff --git a/drivers/net/mlx5/mlx5_utils.c b/drivers/net/mlx5

[dpdk-dev] [PATCH v3 03/22] net/mlx5: add index pool foreach define

2021-07-01 Thread Suanming Mou
In some cases, application may want to know all the allocated index in order to apply some operations to the allocated index. This commit adds the indexed pool functions to support foreach operation. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 86

[dpdk-dev] [PATCH v3 04/22] net/mlx5: replace flow list with index pool

2021-07-01 Thread Suanming Mou
The flow list is used to save the create flows and to be used only when port closes all the flows need to be flushed. This commit takes advantage of the index pool foreach operation to flush all the allocated flows. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux

[dpdk-dev] [PATCH v3 05/22] net/mlx5: optimize modify header action memory

2021-07-01 Thread Suanming Mou
From: Matan Azrad Define the types of the modify header action fields to be with the minimum size needed for the optional values range. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/common/mlx5/linux/mlx5_glue.h | 1 + drivers/net/mlx5/linux/mlx5_flow_os.h | 3 ++- drivers

[dpdk-dev] [PATCH v3 07/22] net/mlx5: add per lcore cache to the list utility

2021-07-01 Thread Suanming Mou
-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 58 drivers/net/mlx5/mlx5.h| 1 + drivers/net/mlx5/mlx5_flow.h | 21 ++- drivers/net/mlx5/mlx5_flow_dv.c| 181 +++- drivers/net/mlx5/mlx5_rx.h | 5

[dpdk-dev] [PATCH v3 06/22] net/mlx5: remove cache term from the list utility

2021-07-01 Thread Suanming Mou
agement. To prevent confusing, remove the current "cache" term from the API's names. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 32 +- drivers/net/mlx5/mlx5.c| 2 +- drivers/net/mlx5/mlx5.h| 15 +- drive

[dpdk-dev] [PATCH v3 09/22] net/mlx5: manage list cache entries release

2021-07-01 Thread Suanming Mou
reference counter of cache entry to 0. In list register operation, before the running lcore starts a lookup in its cache, it will check the counter in order to free invalid entries in its cache. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 79

[dpdk-dev] [PATCH v3 08/22] net/mlx5: minimize list critical sections

2021-07-01 Thread Suanming Mou
sections heavy because they are used for memory and other resources allocations\deallocations. Moved out the operations from the critical sections and use generation counter in order to detect parallel allocations. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5

[dpdk-dev] [PATCH v3 11/22] net/mlx5: allocate list memory by the create API

2021-07-01 Thread Suanming Mou
From: Matan Azrad Currently, the list memory was allocated by the list API caller. Move it to be allocated by the create API in order to save consistence with the hlist utility. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 105

[dpdk-dev] [PATCH v3 10/22] net/mlx5: relax the list utility atomic operations

2021-07-01 Thread Suanming Mou
From: Matan Azrad The atomic operation in the list utility no need a barriers because the critical part are managed by RW lock. Relax them. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions

[dpdk-dev] [PATCH v3 13/22] net/mlx5: move modify header allocator to ipool

2021-07-01 Thread Suanming Mou
size of modify header handler. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5.c | 4 ++ drivers/net/mlx5/mlx5.h | 14 ++ drivers/net/mlx5/mlx5_flow.h| 14 +- drivers/net/mlx5/mlx5_flow_dv.c | 79 - 4 files

[dpdk-dev] [PATCH v3 14/22] net/mlx5: adjust the hash bucket size

2021-07-01 Thread Suanming Mou
With the new per core optimization to the list, the hash bucket size can be tuned to a more accurate number. This commit adjusts the hash bucket size. Signed-off-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 2 +- drivers/net/mlx5/mlx5.c | 2 +- drivers/net/mlx5/mlx5_defs.h

[dpdk-dev] [PATCH v3 12/22] common/mlx5: add per-lcore cache to hash list utility

2021-07-01 Thread Suanming Mou
. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- doc/guides/nics/mlx5.rst| 5 + doc/guides/rel_notes/release_21_08.rst | 6 + drivers/common/mlx5/mlx5_common.h | 2 + drivers/common/mlx5/mlx5_common_utils.c | 466 +--- drivers/common/mlx5

[dpdk-dev] [PATCH v3 15/22] common/mlx5: allocate cache list memory individually

2021-07-01 Thread Suanming Mou
This commit changes the instance array to pointer array, allocate the local cache memory only when the core is to be used. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 62 ++--- drivers/common/mlx5/mlx5_common_utils.h | 2 +- 2

[dpdk-dev] [PATCH v3 16/22] net/mlx5: enable index pool per-core cache

2021-07-01 Thread Suanming Mou
This commit enables the tag and header modify action index pool per-core cache in non-reclaim memory mode. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.c | 4 +++- drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_flow_dv.c | 3 ++- 3 files

[dpdk-dev] [PATCH v3 17/22] net/mlx5: optimize hash list table allocate on demand

2021-07-01 Thread Suanming Mou
Currently, all the hash list tables are allocated during start up. Since different applications may only use dedicated limited actions, optimized the hash list table allocate on demand will save initial memory. This commit optimizes hash list table allocate on demand. Signed-off-by: Suanming Mou

[dpdk-dev] [PATCH v3 18/22] common/mlx5: optimize cache list object memory

2021-07-01 Thread Suanming Mou
functions to satisfy both hash list and cache list can set the list constant and inconstant struct individually. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 295 ++-- drivers/common/mlx5/mlx5_common_utils.h | 45 ++-- 2 files

[dpdk-dev] [PATCH v3 19/22] net/mlx5: change memory release configuration

2021-07-01 Thread Suanming Mou
This commit changes the index pool memory release configuration to 0 when memory reclaim mode is not required. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c

[dpdk-dev] [PATCH v3 20/22] net/mlx5: support index pool none local core operations

2021-07-01 Thread Suanming Mou
This commit supports the index pool none local core operations with an extra cache. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 75 +-- drivers/net/mlx5/mlx5_utils.h | 3 +- 2 files changed, 56 insertions(+), 22

[dpdk-dev] [PATCH v3 21/22] net/mlx5: support list none local core operations

2021-07-01 Thread Suanming Mou
This commit supports the list none local core operations with an extra sub-list. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 92 + drivers/common/mlx5/mlx5_common_utils.h | 9 ++- 2 files changed, 71 insertions(+), 30

[dpdk-dev] [PATCH v3 22/22] net/mlx5: optimize Rx queue match

2021-07-01 Thread Suanming Mou
As hrxq struct has the indirect table pointer, while matching the hrxq, better to use the hrxq indirect table instead of searching from the list. This commit optimizes the hrxq indirect table matching. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_rxq.c | 18

[dpdk-dev] [PATCH v4 00/26] net/mlx5: insertion rate optimization

2021-07-06 Thread Suanming Mou
the create API common/mlx5: add per-lcore cache to hash list utility net/mlx5: move modify header allocator to ipool Suanming Mou (17): 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: support

[dpdk-dev] [PATCH v4 01/26] net/mlx5: allow limiting the index pool maximum index

2021-07-06 Thread Suanming Mou
configuration in ID allocator cases instead of the current logics. This patch add the maximum ID configurable for the index pool. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 14 -- drivers/net/mlx5/mlx5_utils.h | 1 + 2 files changed, 13 insertions

[dpdk-dev] [PATCH v4 02/26] net/mlx5: add indexed pool local cache

2021-07-06 Thread Suanming Mou
. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 323 -- drivers/net/mlx5/mlx5_utils.h | 64 ++- 2 files changed, 372 insertions(+), 15 deletions(-) diff --git a/drivers/net/mlx5/mlx5_utils.c b/drivers/net/mlx5

[dpdk-dev] [PATCH v4 03/26] net/mlx5: add index pool foreach define

2021-07-06 Thread Suanming Mou
In some cases, application may want to know all the allocated index in order to apply some operations to the allocated index. This commit adds the indexed pool functions to support foreach operation. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 96

[dpdk-dev] [PATCH v4 04/26] net/mlx5: support index pool non-lcore operations

2021-07-06 Thread Suanming Mou
This commit supports the index pool non-lcore operations with an extra cache and lcore lock. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 75 +-- drivers/net/mlx5/mlx5_utils.h | 3 +- 2 files changed, 56 insertions

[dpdk-dev] [PATCH v4 05/26] net/mlx5: replace flow list with index pool

2021-07-06 Thread Suanming Mou
The flow list is used to save the create flows and to be used only when port closes all the flows need to be flushed. This commit takes advantage of the index pool foreach operation to flush all the allocated flows. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux

[dpdk-dev] [PATCH v4 06/26] net/mlx5: optimize modify header action memory

2021-07-06 Thread Suanming Mou
From: Matan Azrad Define the types of the modify header action fields to be with the minimum size needed for the optional values range. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/common/mlx5/linux/mlx5_glue.h | 1 + drivers/net/mlx5/linux/mlx5_flow_os.h | 3 ++- drivers

[dpdk-dev] [PATCH v4 08/26] net/mlx5: add per lcore cache to the list utility

2021-07-06 Thread Suanming Mou
-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 58 drivers/net/mlx5/mlx5.h| 1 + drivers/net/mlx5/mlx5_flow.h | 21 ++- drivers/net/mlx5/mlx5_flow_dv.c| 181 +++- drivers/net/mlx5/mlx5_rx.h | 5

[dpdk-dev] [PATCH v4 07/26] net/mlx5: remove cache term from the list utility

2021-07-06 Thread Suanming Mou
agement. To prevent confusing, remove the current "cache" term from the API's names. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 32 +- drivers/net/mlx5/mlx5.c| 2 +- drivers/net/mlx5/mlx5.h| 15 +- drive

[dpdk-dev] [PATCH v4 09/26] net/mlx5: minimize list critical sections

2021-07-06 Thread Suanming Mou
sections heavy because they are used for memory and other resources allocations\deallocations. Moved out the operations from the critical sections and use generation counter in order to detect parallel allocations. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5

[dpdk-dev] [PATCH v4 10/26] net/mlx5: manage list cache entries release

2021-07-06 Thread Suanming Mou
reference counter of cache entry to 0. In list register operation, before the running lcore starts a lookup in its cache, it will check the counter in order to free invalid entries in its cache. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 79

[dpdk-dev] [PATCH v4 11/26] net/mlx5: relax the list utility atomic operations

2021-07-06 Thread Suanming Mou
From: Matan Azrad The atomic operation in the list utility no need a barriers because the critical part are managed by RW lock. Relax them. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions

[dpdk-dev] [PATCH v4 12/26] net/mlx5: allocate list memory by the create API

2021-07-06 Thread Suanming Mou
From: Matan Azrad Currently, the list memory was allocated by the list API caller. Move it to be allocated by the create API in order to save consistence with the hlist utility. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 105

[dpdk-dev] [PATCH v4 13/26] common/mlx5: move list utility to common

2021-07-06 Thread Suanming Mou
Hash list is planned to be implemented with the cache list code. This commit moves the list utility to common directory. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common.h | 2 + drivers/common/mlx5/mlx5_common_utils.c | 250

[dpdk-dev] [PATCH v4 14/26] common/mlx5: add list lcore share

2021-07-06 Thread Suanming Mou
optimized the list register. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 46 +++-- drivers/common/mlx5/mlx5_common_utils.h | 16 ++--- drivers/net/mlx5/linux/mlx5_os.c| 11 +++--- drivers/net/mlx5/mlx5_flow_dv.c

[dpdk-dev] [PATCH v4 15/26] common/mlx5: call list callbacks with context

2021-07-06 Thread Suanming Mou
This commit optimizes to call the list callback functions with global context directly. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 24 ++--- drivers/common/mlx5/mlx5_common_utils.h | 36 drivers/net/mlx5/mlx5_flow.h

[dpdk-dev] [PATCH v4 17/26] common/mlx5: allocate cache list memory individually

2021-07-06 Thread Suanming Mou
This commit changes the instance array to pointer array, allocate the local cache memory only when the core is to be used. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 62 ++--- drivers/common/mlx5/mlx5_common_utils.h | 2 +- 2

[dpdk-dev] [PATCH v4 16/26] common/mlx5: add per-lcore cache to hash list utility

2021-07-06 Thread Suanming Mou
. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/common/mlx5/mlx5_common_utils.c | 238 +++ drivers/common/mlx5/mlx5_common_utils.h | 141 +++- drivers/net/mlx5/linux/mlx5_os.c| 35 +-- drivers/net/mlx5/mlx5.c | 10 +- drivers/net/mlx5

[dpdk-dev] [PATCH v4 18/26] common/mlx5: optimize cache list object memory

2021-07-06 Thread Suanming Mou
functions to satisfy both hash list and cache list can set the list constant and inconstant struct individually. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 295 ++-- drivers/common/mlx5/mlx5_common_utils.h | 45 ++-- 2 files

[dpdk-dev] [PATCH v4 19/26] common/mlx5: support list non-lcore operations

2021-07-06 Thread Suanming Mou
This commit supports the list non-lcore operations with an extra sub-list and lock. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 92 + drivers/common/mlx5/mlx5_common_utils.h | 9 ++- 2 files changed, 71 insertions

[dpdk-dev] [PATCH v4 20/26] net/mlx5: move modify header allocator to ipool

2021-07-06 Thread Suanming Mou
size of modify header handler. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5.c | 4 ++ drivers/net/mlx5/mlx5.h | 14 ++ drivers/net/mlx5/mlx5_flow.h| 14 +- drivers/net/mlx5/mlx5_flow_dv.c | 79 - 4 files

[dpdk-dev] [PATCH v4 21/26] net/mlx5: adjust the hash bucket size

2021-07-06 Thread Suanming Mou
With the new per core optimization to the list, the hash bucket size can be tuned to a more accurate number. This commit adjusts the hash bucket size. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 2 +- drivers/net/mlx5/mlx5.c | 2

[dpdk-dev] [PATCH v4 22/26] net/mlx5: enable index pool per-core cache

2021-07-06 Thread Suanming Mou
This commit enables the tag and header modify action index pool per-core cache in non-reclaim memory mode. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.c | 4 +++- drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_flow_dv.c | 3 ++- 3 files

[dpdk-dev] [PATCH v4 23/26] net/mlx5: optimize hash list table allocate on demand

2021-07-06 Thread Suanming Mou
Currently, all the hash list tables are allocated during start up. Since different applications may only use dedicated limited actions, optimized the hash list table allocate on demand will save initial memory. This commit optimizes hash list table allocate on demand. Signed-off-by: Suanming Mou

[dpdk-dev] [PATCH v4 24/26] net/mlx5: change memory release configuration

2021-07-06 Thread Suanming Mou
This commit changes the index pool memory release configuration to 0 when memory reclaim mode is not required. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c

[dpdk-dev] [PATCH v4 25/26] net/mlx5: optimize Rx queue match

2021-07-06 Thread Suanming Mou
As hrxq struct has the indirect table pointer, while matching the hrxq, better to use the hrxq indirect table instead of searching from the list. This commit optimizes the hrxq indirect table matching. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_rxq.c | 18

[dpdk-dev] [PATCH v4 26/26] doc: add mlx5 multiple-thread flow insertion optimization

2021-07-06 Thread Suanming Mou
This commit adds the multiple-thread flow insertion optimization description. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- doc/guides/nics/mlx5.rst | 5 + doc/guides/rel_notes/release_21_08.rst | 6 ++ 2 files changed, 11 insertions(+) diff --git a/doc/guides

Re: [dpdk-dev] [PATCH v3 2/4] regex/mlx5: add data path scattered mbuf process

2021-03-30 Thread Suanming Mou
Hi Slava, > -Original Message- > From: Slava Ovsiienko > Sent: Tuesday, March 30, 2021 4:05 PM > To: Suanming Mou ; Ori Kam > Cc: dev@dpdk.org; Matan Azrad ; Raslan Darawsheh > > Subject: RE: [PATCH v3 2/4] regex/mlx5: add data path scattered mbuf process > &

[dpdk-dev] [PATCH v4 0/4] regex/mlx5: support scattered mbuf

2021-03-31 Thread Suanming Mou
version. v2: 1. Check mbuf multiple seg by nb_segs. 2. Add ops prefetch. 3. Allocate ops and mbuf memory together in test application. 4. Fix ci and pi in correct issue. John Hurley (1): regex/mlx5: prevent wrong calculation of free sqs in umr mode Suanming Mou (3): common/mlx5: add user

[dpdk-dev] [PATCH v4 1/4] common/mlx5: add user memory registration bits

2021-03-31 Thread Suanming Mou
This commit adds the UMR capability bits. Signed-off-by: Suanming Mou Acked-by: Ori Kam --- drivers/common/mlx5/linux/meson.build | 2 ++ drivers/common/mlx5/mlx5_devx_cmds.c | 5 + drivers/common/mlx5/mlx5_devx_cmds.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/drivers

[dpdk-dev] [PATCH v4 3/4] app/test-regex: support scattered mbuf input

2021-03-31 Thread Suanming Mou
This commits adds the scattered mbuf input support. Signed-off-by: Suanming Mou Acked-by: Ori Kam --- app/test-regex/main.c | 134 +++-- doc/guides/tools/testregex.rst | 3 + 2 files changed, 112 insertions(+), 25 deletions(-) diff --git a/app/test-regex

[dpdk-dev] [PATCH v4 2/4] regex/mlx5: add data path scattered mbuf process

2021-03-31 Thread Suanming Mou
s complete the UMR WQE, the WQE set combination is UMR + RegEx. Signed-off-by: Suanming Mou Acked-by: Ori Kam --- doc/guides/regexdevs/mlx5.rst| 5 + doc/guides/rel_notes/release_21_05.rst | 4 + drivers/regex/mlx5/mlx5_regex.c | 9 + drivers/regex/mlx5/mlx

[dpdk-dev] [PATCH v4 4/4] regex/mlx5: prevent wrong calculation of free sqs in umr mode

2021-03-31 Thread Suanming Mou
From: John Hurley A recent change adds support for scattered mbuf and UMR support for regex. Part of this commit makes the pi and ci counters of the regex_sq a quarter of the length in non umr mode, effectively moving them from 16 bits to 14. The new get_free method casts the difference in pi and

Re: [dpdk-dev] [PATCH v3 4/4] regex/mlx5: prevent wrong calculation of free sqs in umr mode

2021-04-06 Thread Suanming Mou
> -Original Message- > From: Thomas Monjalon > Sent: Wednesday, April 7, 2021 12:23 AM > To: John Hurley ; Suanming Mou > > Cc: Ori Kam ; dev@dpdk.org; Slava Ovsiienko > ; Matan Azrad ; Raslan > Darawsheh > Subject: Re: [dpdk-dev] [PATCH v3 4/4] regex/mlx5

Re: [dpdk-dev] [PATCH v3 4/4] regex/mlx5: prevent wrong calculation of free sqs in umr mode

2021-04-07 Thread Suanming Mou
> -Original Message- > From: Thomas Monjalon > Sent: Wednesday, April 7, 2021 3:12 PM > To: John Hurley ; Suanming Mou > > Cc: dev@dpdk.org; Ori Kam ; dev@dpdk.org; Slava > Ovsiienko ; Matan Azrad ; > Raslan Darawsheh > Subject: Re: [dpdk-dev] [PATCH v3 4/4

[dpdk-dev] [PATCH v5 0/3] regex/mlx5: support scattered mbuf

2021-04-07 Thread Suanming Mou
t commit. 2. Code rebase to the latest version. v2: 1. Check mbuf multiple seg by nb_segs. 2. Add ops prefetch. 3. Allocate ops and mbuf memory together in test application. Suanming Mou (3): common/mlx5: add user memory registration bits regex/mlx5: add data path scattered mbuf pro

[dpdk-dev] [PATCH v5 1/3] common/mlx5: add user memory registration bits

2021-04-07 Thread Suanming Mou
This commit adds the UMR capability bits. Signed-off-by: Suanming Mou Acked-by: Ori Kam --- drivers/common/mlx5/linux/meson.build | 2 ++ drivers/common/mlx5/mlx5_devx_cmds.c | 5 + drivers/common/mlx5/mlx5_devx_cmds.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/drivers

[dpdk-dev] [PATCH v5 3/3] app/test-regex: support scattered mbuf input

2021-04-07 Thread Suanming Mou
This commits adds the scattered mbuf input support. Signed-off-by: Suanming Mou Acked-by: Ori Kam --- app/test-regex/main.c | 134 +++-- doc/guides/tools/testregex.rst | 3 + 2 files changed, 112 insertions(+), 25 deletions(-) diff --git a/app/test-regex

[dpdk-dev] [PATCH v5 2/3] regex/mlx5: add data path scattered mbuf process

2021-04-07 Thread Suanming Mou
s complete the UMR WQE, the WQE set combination is UMR + RegEx. Signed-off-by: John Hurley Signed-off-by: Suanming Mou Acked-by: Ori Kam --- doc/guides/regexdevs/mlx5.rst| 5 + doc/guides/rel_notes/release_21_05.rst | 4 + drivers/regex/mlx5/mlx5_regex.c |

RE: [PATCH v2 00/10] ethdev: datapath-focused flow rules management

2022-01-18 Thread Suanming Mou
ns and poll for the results later. > > testpmd examples are part of the patch series. PMD changes will follow. > > RFC: > https://patchwork.dpdk.org/project/dpdk/cover/20211006044835.3936226-1- > akozy...@nvidia.com/ > > Signed-off-by: Alexander Kozyrev Reviewed-by:

[PATCH 00/13] net/mlx5: add hardware steering

2022-02-10 Thread Suanming Mou
THE NEW RTE_FLOW API *** Suanming Mou (13): net/mlx5: introduce hardware steering operation net/mlx5: introduce hardware steering enable routine net/mlx5: add port flow configuration net/mlx5: add pattern template management net/mlx5: add action template management net/mlx5: add table

[PATCH 03/13] net/mlx5: add port flow configuration

2022-02-10 Thread Suanming Mou
s the flow port queue and the job descriptors. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.c | 3 + drivers/net/mlx5/mlx5.h | 26 ++- drivers/net/mlx5/mlx5_flow.c| 37 + drivers/net/mlx5/mlx5_flow.h| 9 +++ drivers/net/mlx5/mlx5_flow_hw.c

[PATCH 02/13] net/mlx5: introduce hardware steering enable routine

2022-02-10 Thread Suanming Mou
d-off-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 4 drivers/net/mlx5/mlx5.c | 2 +- drivers/net/mlx5/mlx5.h | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index aecdc

[PATCH 01/13] net/mlx5: introduce hardware steering operation

2022-02-10 Thread Suanming Mou
A new hardware based steering operation is going to be introduced for high insertion rate. This commit adds the basic driver operation. Signed-off-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_flow_os.h | 1 + drivers/net/mlx5/meson.build | 1 + drivers/net/mlx5/mlx5_flow.c

[PATCH 06/13] net/mlx5: add table management

2022-02-10 Thread Suanming Mou
time. This commit adds the table management functions. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.c | 45 ++- drivers/net/mlx5/mlx5.h | 21 +- drivers/net/mlx5/mlx5_flow.c| 81 + drivers/net/mlx5/mlx5_flow.h| 72 + drivers/net/mlx5/mlx5_flow_hw.c

[PATCH 04/13] net/mlx5: add pattern template management

2022-02-10 Thread Suanming Mou
in order to have better performance. This commit adds pattern template management. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.h | 2 + drivers/net/mlx5/mlx5_flow.c| 64 + drivers/net/mlx5/mlx5_flow.h| 20 drivers/net/mlx5

[PATCH 05/13] net/mlx5: add action template management

2022-02-10 Thread Suanming Mou
. The actions will not be shared with each other. This commit adds the action template management which caches the flow action template. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.h | 2 + drivers/net/mlx5/mlx5_flow.c| 66 ++ drivers/net/mlx5/mlx5_flow.h

[PATCH 07/13] net/mlx5: add basic flow queue operation

2022-02-10 Thread Suanming Mou
. This commit adds the basic flow queue operation for: rte_flow_q_flow_create(); rte_flow_q_flow_destroy(); rte_flow_q_push(); rte_flow_q_pull(); Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.h | 2 +- drivers/net/mlx5/mlx5_flow.c| 158 ++ drivers/net/mlx5

[PATCH 08/13] net/mlx5: add flow flush function

2022-02-10 Thread Suanming Mou
In case port restarting, all created flows should be flushed. This commit adds the flow flush helper function. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5_flow.c| 8 +++ drivers/net/mlx5/mlx5_flow_hw.c | 117 2 files changed, 125 insertions

[PATCH 09/13] net/mlx5: add flow jump action

2022-02-10 Thread Suanming Mou
Jump action connects different level of flow tables as a complete data flow. A new action construct data struct is also added in this commit to help handle the dynamic actions. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_flow.h| 25

[PATCH 10/13] net/mlx5: add queue and RSS action

2022-02-10 Thread Suanming Mou
performance without the global lock. Signed-off-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 18 ++-- drivers/net/mlx5/mlx5.h| 4 + drivers/net/mlx5/mlx5_devx.c | 10 ++ drivers/net/mlx5/mlx5_flow.c | 38 +++- drivers/net/mlx5/mlx5_flow.h | 7

[PATCH 12/13] net/mlx5: add indirect action

2022-02-10 Thread Suanming Mou
(); rte_flow_q_action_handle_destroy(); rte_flow_q_action_handle_update(); Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5_flow.c| 116 + drivers/net/mlx5/mlx5_flow.h| 56 + drivers/net/mlx5/mlx5_flow_dv.c | 21 +- drivers/net/mlx5/mlx5_flow_hw.c | 402

[PATCH 13/13] net/mlx5: add header reformat action

2022-02-10 Thread Suanming Mou
enough. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_flow.h| 21 +++ drivers/net/mlx5/mlx5_flow_dv.c | 4 +- drivers/net/mlx5/mlx5_flow_hw.c | 228 +++- 4 files changed, 251 insertions(+), 3 deletions(-) diff --git

[PATCH 11/13] net/mlx5: add mark action

2022-02-10 Thread Suanming Mou
The mark action is covered by tag action internally. While it is added the HW will add a tag to the packet. The mark value can be set as fixed or dynamic as the action mask indicates. Signed-off-by: Suanming Mou --- drivers/net/mlx5/mlx5.h | 3 ++ drivers/net/mlx5/mlx5_flow.h| 1

RE: [PATCH v4 00/10] ethdev: datapath-focused flow rules management

2022-02-10 Thread Suanming Mou
Hi, I wish the PMD part is not too late. You can find the series here: https://patches.dpdk.org/project/dpdk/cover/20220210162926.20436-1-suanmi...@nvidia.com/ Thanks, Suanming Mou > -Original Message- > From: Asaf Penso > Sent: Friday, February 11, 2022 12:12 AM > To:

[PATCH] common/mlx5: fix list unused lcore check

2022-05-30 Thread Suanming Mou
tions") Cc: sta...@dpdk.org Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common_utils.c b/drivers/common/mlx5/mlx5_common_utils.c index 775fabd478..

[dpdk-dev] [PATCH v5 01/26] net/mlx5: allow limiting the index pool maximum index

2021-07-11 Thread Suanming Mou
configuration in ID allocator cases instead of the current logics. This patch add the maximum ID configurable for the index pool. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 14 -- drivers/net/mlx5/mlx5_utils.h | 1 + 2 files changed, 13 insertions

[dpdk-dev] [PATCH v5 00/26] net/mlx5: insertion rate optimization

2021-07-11 Thread Suanming Mou
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 (17): net/mlx5: allow limiting the index pool maximum index net/mlx5: add indexed pool local cache net/mlx5: add index

[dpdk-dev] [PATCH v5 02/26] net/mlx5: add indexed pool local cache

2021-07-11 Thread Suanming Mou
. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 323 -- drivers/net/mlx5/mlx5_utils.h | 64 ++- 2 files changed, 372 insertions(+), 15 deletions(-) diff --git a/drivers/net/mlx5/mlx5_utils.c b/drivers/net/mlx5

[dpdk-dev] [PATCH v5 03/26] net/mlx5: add index pool foreach define

2021-07-11 Thread Suanming Mou
In some cases, application may want to know all the allocated index in order to apply some operations to the allocated index. This commit adds the indexed pool functions to support foreach operation. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 96

[dpdk-dev] [PATCH v5 04/26] net/mlx5: support index pool non-lcore operations

2021-07-11 Thread Suanming Mou
This commit supports the index pool non-lcore operations with an extra cache and lcore lock. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 75 +-- drivers/net/mlx5/mlx5_utils.h | 3 +- 2 files changed, 56 insertions

[dpdk-dev] [PATCH v5 05/26] net/mlx5: replace flow list with index pool

2021-07-11 Thread Suanming Mou
The flow list is used to save the create flows and to be used only when port closes all the flows need to be flushed. This commit takes advantage of the index pool foreach operation to flush all the allocated flows. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux

[dpdk-dev] [PATCH v5 06/26] net/mlx5: optimize modify header action memory

2021-07-11 Thread Suanming Mou
From: Matan Azrad Define the types of the modify header action fields to be with the minimum size needed for the optional values range. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/common/mlx5/linux/mlx5_glue.h | 1 + drivers/net/mlx5/linux/mlx5_flow_os.h | 3 ++- drivers

[dpdk-dev] [PATCH v5 09/26] net/mlx5: minimize list critical sections

2021-07-11 Thread Suanming Mou
sections heavy because they are used for memory and other resources allocations\deallocations. Moved out the operations from the critical sections and use generation counter in order to detect parallel allocations. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5

[dpdk-dev] [PATCH v5 07/26] net/mlx5: remove cache term from the list utility

2021-07-11 Thread Suanming Mou
agement. To prevent confusing, remove the current "cache" term from the API's names. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 32 +- drivers/net/mlx5/mlx5.c| 2 +- drivers/net/mlx5/mlx5.h| 15 +- drive

[dpdk-dev] [PATCH v5 08/26] net/mlx5: add per lcore cache to the list utility

2021-07-11 Thread Suanming Mou
-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 58 drivers/net/mlx5/mlx5.h| 1 + drivers/net/mlx5/mlx5_flow.h | 21 ++- drivers/net/mlx5/mlx5_flow_dv.c| 181 +++- drivers/net/mlx5/mlx5_rx.h | 5

[dpdk-dev] [PATCH v5 10/26] net/mlx5: manage list cache entries release

2021-07-11 Thread Suanming Mou
reference counter of cache entry to 0. In list register operation, before the running lcore starts a lookup in its cache, it will check the counter in order to free invalid entries in its cache. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 79

[dpdk-dev] [PATCH v5 11/26] net/mlx5: relax the list utility atomic operations

2021-07-11 Thread Suanming Mou
From: Matan Azrad The atomic operation in the list utility no need a barriers because the critical part are managed by RW lock. Relax them. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions

[dpdk-dev] [PATCH v5 13/26] common/mlx5: move list utility to common

2021-07-11 Thread Suanming Mou
Hash list is planned to be implemented with the cache list code. This commit moves the list utility to common directory. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common.h | 2 + drivers/common/mlx5/mlx5_common_utils.c | 250

[dpdk-dev] [PATCH v5 14/26] common/mlx5: add list lcore share

2021-07-11 Thread Suanming Mou
optimized the list register. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 46 +++-- drivers/common/mlx5/mlx5_common_utils.h | 16 ++--- drivers/net/mlx5/linux/mlx5_os.c| 11 +++--- drivers/net/mlx5/mlx5_flow_dv.c

[dpdk-dev] [PATCH v5 12/26] net/mlx5: allocate list memory by the create API

2021-07-11 Thread Suanming Mou
From: Matan Azrad Currently, the list memory was allocated by the list API caller. Move it to be allocated by the create API in order to save consistence with the hlist utility. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/linux/mlx5_os.c | 105

[dpdk-dev] [PATCH v5 15/26] common/mlx5: call list callbacks with context

2021-07-11 Thread Suanming Mou
This commit optimizes to call the list callback functions with global context directly. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 24 ++--- drivers/common/mlx5/mlx5_common_utils.h | 36 drivers/net/mlx5/mlx5_flow.h

[dpdk-dev] [PATCH v5 17/26] common/mlx5: allocate cache list memory individually

2021-07-11 Thread Suanming Mou
This commit changes the instance array to pointer array, allocate the local cache memory only when the core is to be used. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 62 ++--- drivers/common/mlx5/mlx5_common_utils.h | 2 +- 2

[dpdk-dev] [PATCH v5 16/26] common/mlx5: add per-lcore cache to hash list utility

2021-07-11 Thread Suanming Mou
. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/common/mlx5/mlx5_common_utils.c | 238 +++ drivers/common/mlx5/mlx5_common_utils.h | 141 +++- drivers/net/mlx5/linux/mlx5_os.c| 35 +-- drivers/net/mlx5/mlx5.c | 10 +- drivers/net/mlx5

[dpdk-dev] [PATCH v5 18/26] common/mlx5: optimize cache list object memory

2021-07-11 Thread Suanming Mou
functions to satisfy both hash list and cache list can set the list constant and inconstant struct individually. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 295 ++-- drivers/common/mlx5/mlx5_common_utils.h | 45 ++-- 2 files

[dpdk-dev] [PATCH v5 19/26] common/mlx5: support list non-lcore operations

2021-07-11 Thread Suanming Mou
This commit supports the list non-lcore operations with an extra sub-list and lock. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common_utils.c | 92 + drivers/common/mlx5/mlx5_common_utils.h | 9 ++- 2 files changed, 71 insertions

[dpdk-dev] [PATCH v5 21/26] net/mlx5: adjust the hash bucket size

2021-07-11 Thread Suanming Mou
With the new per core optimization to the list, the hash bucket size can be tuned to a more accurate number. This commit adjusts the hash bucket size. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 2 +- drivers/net/mlx5/mlx5.c | 2

<    1   2   3   4   5   6   7   8   9   10   >