#
3ea12cad |
| 19-Nov-2020 |
Raslan Darawsheh <rasland@nvidia.com> |
common/mlx5: fix name for ConnectX VF device ID
Starting ConnectX-6 Dx, the VF device ID is generic and not per chip.
https://pci-ids.ucw.cz/v2.2/pci.ids 101e ConnectX Family mlx5Gen Virtual Funct
common/mlx5: fix name for ConnectX VF device ID
Starting ConnectX-6 Dx, the VF device ID is generic and not per chip.
https://pci-ids.ucw.cz/v2.2/pci.ids 101e ConnectX Family mlx5Gen Virtual Function
This means that all will have the same VF device ID.
Fixes: 5fc66630bed5 ("net/mlx5: add ConnectX6-DX device ID") Cc: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
01c05ee0 |
| 19-Nov-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: fix sample and mirror flow action deletion
The sample and mirror action objects are maintained on the list shared between the ports belonging to the same multiport Infiniband device(betwee
net/mlx5: fix sample and mirror flow action deletion
The sample and mirror action objects are maintained on the list shared between the ports belonging to the same multiport Infiniband device(between representors).
The actions in the NIC steering domains might contain the references to the sub-flow action objects created over the given port. The action deletion might happen in the context of the different port and on the deletion of referenced objects the incorrect port might be specified. To avoid this we should save the port on what the sub-flow actions were created and then use this saved port for sub-flow action release.
This commit saves the create device in the sample and mirror actions struct to avoid using the incorrect port device in releasing.
Fixes: 19784141692e ("net/mlx5: make sample and mirror action thread safe")
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Reviewed-by: Jiawei Wang <jiaweiw@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
e6818853 |
| 17-Nov-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: set representor to first PF in bonding mode
When the representor device was set to PF1 in bonding mode, iterating device iterator that looking for representors by bonding device failed to
net/mlx5: set representor to first PF in bonding mode
When the representor device was set to PF1 in bonding mode, iterating device iterator that looking for representors by bonding device failed to match PF0 pci address with PF1 address. So detaching PF bonding device only detached all representors on PF0.
This patch registers all representors of PF1 with PF0 as PCI device.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
2a87415c |
| 11-Nov-2020 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5/linux: fix probing adjustment depending on DevX
Bonding adjustment is done only when DEVX_PORT is supported in the rdma-core.
Some bonding condition was done even when DEVX_PORT is not sup
net/mlx5/linux: fix probing adjustment depending on DevX
Bonding adjustment is done only when DEVX_PORT is supported in the rdma-core.
Some bonding condition was done even when DEVX_PORT is not supported.
Remove it.
Fixes: 2eb4d0107acc ("net/mlx5: refactor PCI probing on Linux") Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
e82ddd28 |
| 03-Nov-2020 |
Tal Shnaiderman <talshn@nvidia.com> |
common/mlx5: split PCI relaxed ordering for read and write
The current DevX implementation of the relaxed ordering feature is enabling relaxed ordering usage only if both relaxed ordering read AND w
common/mlx5: split PCI relaxed ordering for read and write
The current DevX implementation of the relaxed ordering feature is enabling relaxed ordering usage only if both relaxed ordering read AND write are supported. In that case both relaxed ordering read and write are activated.
This commit will optimize the usage of relaxed ordering by enabling it when the read OR write features are supported. Each relaxed ordering type will be activated according to its own capability bit.
This will align the DevX flow with the verbs implementation of ibv_reg_mr when using the flag IBV_ACCESS_RELAXED_ORDERING
Fixes: 53ac93f71ad1 ("net/mlx5: create relaxed ordering memory regions") Cc: stable@dpdk.org
Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
f935ed4b |
| 01-Nov-2020 |
Dekel Peled <dekelp@nvidia.com> |
net/mlx5: support flow hit action for aging
A new ASO (Advanced Steering Operation) feature was added in the last mlx5 adapters to support flow hit detection.
Using this new steering action, the dr
net/mlx5: support flow hit action for aging
A new ASO (Advanced Steering Operation) feature was added in the last mlx5 adapters to support flow hit detection.
Using this new steering action, the driver can detect flow traffic hit and to reset this indication any time.
The ASO age action cannot support flows in table 0.
Add support for flow aging action in rte_flow using this new feature.
The counter aging mode will be taken only when the ASO feature is not supported for the user flow groups.
Signed-off-by: Dekel Peled <dekelp@nvidia.com> Signed-off-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
9fbe97f0 |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: remove shared context lock
To support multi-thread flow insertion, this patch removes shared data lock since all resources should support concurrent protection.
Signed-off-by: Xueming Li
net/mlx5: remove shared context lock
To support multi-thread flow insertion, this patch removes shared data lock since all resources should support concurrent protection.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
cc608e4d |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: make shared action list thread safe
This commit uses spinlock to protect the shared action list in multiple thread.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azra
net/mlx5: make shared action list thread safe
This commit uses spinlock to protect the shared action list in multiple thread.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
19784141 |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: make sample and mirror action thread safe
This commit uses cache list to make sample and mirror action thread safe.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azra
net/mlx5: make sample and mirror action thread safe
This commit uses cache list to make sample and mirror action thread safe.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
3422af2a |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: make push VLAN action cache thread safe
To support multi-thread flow insertion, this patch converts push VLAN action cache list to thread safe cache list.
Signed-off-by: Xueming Li <xuemi
net/mlx5: make push VLAN action cache thread safe
To support multi-thread flow insertion, this patch converts push VLAN action cache list to thread safe cache list.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
0fd5f82a |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: make port ID action cache thread safe
To support multi-thread flow insertion, this patch convert port id action cache list to thread safe cache list.
Signed-off-by: Xueming Li <xuemingl@n
net/mlx5: make port ID action cache thread safe
To support multi-thread flow insertion, this patch convert port id action cache list to thread safe cache list.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
e1592b6c |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: make Rx queue thread safe
This commit applies the cache linked list to Rx queue to make it thread safe.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvi
net/mlx5: make Rx queue thread safe
This commit applies the cache linked list to Rx queue to make it thread safe.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
f961fd49 |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: make header reformat action thread safe
To support multi-thread flow insertion, this patch updates flow header reformat action list to use thread safe hash list with write-most mode.
Sign
net/mlx5: make header reformat action thread safe
To support multi-thread flow insertion, this patch updates flow header reformat action list to use thread safe hash list with write-most mode.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
f7f73ac1 |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: make metadata copy flow list thread safe
To support multi-thread flow insertion, this patch updates metadata copy flow list to use thread safe hash list.
Signed-off-by: Xueming Li <xuemin
net/mlx5: make metadata copy flow list thread safe
To support multi-thread flow insertion, this patch updates metadata copy flow list to use thread safe hash list.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
16a7dbc4 |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: make flow modify action list thread safe
To support multi-thread flow insertion, this patch updates flow modify action list to use thread safe hash list with write-most mode.
Signed-off-b
net/mlx5: make flow modify action list thread safe
To support multi-thread flow insertion, this patch updates flow modify action list to use thread safe hash list with write-most mode.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
fe3f8c52 |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: make flow tag list thread safe
To support multi-thread flow insertion, this patch updates flow tag list to use thread safe hash list with write-most mode.
Signed-off-by: Xueming Li <xuemi
net/mlx5: make flow tag list thread safe
To support multi-thread flow insertion, this patch updates flow tag list to use thread safe hash list with write-most mode.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
291140c6 |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: fix redundant Direct Verbs resources allocate
All table, tag, header modify, header reformat are supported only on DV mode. For the OFED version doesn't support these, create the related r
net/mlx5: fix redundant Direct Verbs resources allocate
All table, tag, header modify, header reformat are supported only on DV mode. For the OFED version doesn't support these, create the related redundant DV resources waste the memory.
Add the code section in the HAVE_IBV_FLOW_DV_SUPPORT macro to avoid the redundant resources allocation.
Fixes: 2eb4d0107acc ("net/mlx5: refactor PCI probing on Linux") Cc: stable@dpdk.org
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
e69a5922 |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: support concurrent access for hash list
In order to support hash list concurrent access, adding next: 1. List level read/write lock. 2. Entry reference counter. 3. Entry create/match/remov
net/mlx5: support concurrent access for hash list
In order to support hash list concurrent access, adding next: 1. List level read/write lock. 2. Entry reference counter. 3. Entry create/match/remove callback. 4. Remove insert/lookup/remove function which are not thread safe. 5. Add register/unregister function to support entry reuse.
For better performance, lookup function uses read lock to allow concurrent lookup from different thread, all other hash list modification functions uses write lock which blocks concurrent modification and lookups from other thread.
The exact objects change will be applied in the next patches.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
65b3cd0d |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: create global drop action
This commit creates the global drop action for flows instead of maintain it in flow insertion time. The uniqueu global drop action makes it thread safe.
Signed-o
net/mlx5: create global drop action
This commit creates the global drop action for flows instead of maintain it in flow insertion time. The uniqueu global drop action makes it thread safe.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
b80726dc |
| 28-Oct-2020 |
Suanming Mou <suanmingm@nvidia.com> |
net/mlx5: create global default miss action
This commit creates the global default miss action instead of maintain it in flow insertion time. This makes the action to be thread safe.
Signed-off-by:
net/mlx5: create global default miss action
This commit creates the global default miss action instead of maintain it in flow insertion time. This makes the action to be thread safe.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
d163fc2d |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: make flow list thread safe
To support multi-thread flow operations, this patch introduces list lock for the rte_flow list manages all the rte_flow handlers.
Signed-off-by: Xueming Li <xue
net/mlx5: make flow list thread safe
To support multi-thread flow operations, this patch introduces list lock for the rte_flow list manages all the rte_flow handlers.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
4ae8825c |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: use indexed pool as id generator
The ID generation API used an integer pool to save released ID, To support multiple flow, it has to be enhanced to be thread safe.
Indexed pool could be u
net/mlx5: use indexed pool as id generator
The ID generation API used an integer pool to save released ID, To support multiple flow, it has to be enhanced to be thread safe.
Indexed pool could be used to generate unique ID by setting size of pool entry to zero. Since bitmap is used, an extra benefits is saving memory to about one bit per entry. Further more indexed pool could be thread safe by enabling lock.
This patch leverages indexed pool to generate ID, removes unused ID generating API.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
8bb81f26 |
| 28-Oct-2020 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: use thread specific flow workspace
As part of multi-thread flow support, this patch moves flow intermediate data to thread specific, makes them a flow workspace. The workspace is allocated
net/mlx5: use thread specific flow workspace
As part of multi-thread flow support, this patch moves flow intermediate data to thread specific, makes them a flow workspace. The workspace is allocated per thread, destroyed along with thread life-cycle.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
02109eae |
| 26-Oct-2020 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: support getting hairpin peer ports
In real-life business, one device could be attached and detached dynamically. The hairpin configuration of this port to/from all the other ports should b
net/mlx5: support getting hairpin peer ports
In real-life business, one device could be attached and detached dynamically. The hairpin configuration of this port to/from all the other ports should be enabled and disabled accordingly.
The RTE ethdev lib and PMD should provide this ability to get the peer ports list in case that the application doesn't save it. It is recommended that the size of the array to save the port IDs is as large as the "RTE_MAX_ETHPORTS" to have the maximal capacity.
The order of the peer port IDs may be different from that during hairpin queues set in the initialization stage. The peer port ID could be the same as the current device port ID when the hairpin peer ports contain itself - the single port hairpin.
The application should check the ports' status and decide if the peer port should be bound / unbound when starting / stopping the current device.
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
37cd4501 |
| 26-Oct-2020 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: support two ports hairpin mode
In order to support hairpin between two ports, mlx5 PMD needs to implement the functions and provide them as the function pointers.
The bind and unbind func
net/mlx5: support two ports hairpin mode
In order to support hairpin between two ports, mlx5 PMD needs to implement the functions and provide them as the function pointers.
The bind and unbind functions are executed per port pairs. All the hairpin queues between the two ports should have the same attributes during queues setup. Different configurations among queue pairs from the same ports are not supported. It is allowed that two ports only have one direction hairpin.
In order to set up the connection between two queues, peer Rx queue HW information must be fetched via the internal RTE API and the queue information could be used to modify the SQ object. Then the RQ object will be modified with the Tx queue HW information. The reverse operation is not supported right now.
When disconnecting the queues pair, SQ and RQ object should be reset without any peer HW information. The unbinding operation will try to disconnect all Tx queues from the port from the Rx queues of the peer port.
Tx explicit mode attribute will be saved and used when creating a hairpin flow.
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|