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
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
.
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
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
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
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
-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
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
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
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
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
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
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
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
.
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
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
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
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
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
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
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
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
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
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
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
.
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
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
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
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
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
-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
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
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
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
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
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
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
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
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
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
.
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
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
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
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
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
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
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
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
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
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
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
>
&
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
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
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
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
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
> -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
> -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
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
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
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
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 |
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:
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
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
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
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
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
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
. 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
.
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
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
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
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
();
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
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
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
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:
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..
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
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
.
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
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
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
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
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
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
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
-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
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
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
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
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
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
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
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
.
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
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
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
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
101 - 200 of 1139 matches
Mail list logo