|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3 |
|
| #
3ef18940 |
| 03-Mar-2022 |
Bing Zhao <[email protected]> |
net/mlx5: fix configuration without Rx queue
None Rx queue configured in a DPDK application should be supported. In this mode, the NIC can be used to generate packets without receiving any ingress t
net/mlx5: fix configuration without Rx queue
None Rx queue configured in a DPDK application should be supported. In this mode, the NIC can be used to generate packets without receiving any ingress traffic.
In the current implementation, once there is no Rx queue specified, the array to store the queues' pointers is NULL after allocation. Then the checking of the array allocation prevents the application from starting up.
By adding another condition checking of the Rx queue number, the application with none Rx queue can start up successfully.
Fixes: 4cda06c3c35e ("net/mlx5: split Rx queue into shareable and private") Cc: [email protected]
Signed-off-by: Bing Zhao <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc2 |
|
| #
80f872ee |
| 24-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: add external Rx queue mapping API
External queue is a queue that has been created and managed outside the PMD. The queues owner might use PMD to generate flow rules using these external qu
net/mlx5: add external Rx queue mapping API
External queue is a queue that has been created and managed outside the PMD. The queues owner might use PMD to generate flow rules using these external queues.
When the queue is created in hardware it is given an ID represented by 32 bits. In contrast, the index of the queues in PMD is represented by 16 bits. To enable the use of PMD to generate flow rules, the queue owner must provide a mapping between the HW index and a 16-bit index corresponding to the ethdev API.
This patch adds an API enabling to insert/cancel a mapping between HW queue id and ethdev queue id.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
c06f77ae |
| 24-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: optimize queue type checks
The RxQ/TxQ control structure has a field named type. This type is enum with values for standard and hairpin. The use of this field is to check whether the queue
net/mlx5: optimize queue type checks
The RxQ/TxQ control structure has a field named type. This type is enum with values for standard and hairpin. The use of this field is to check whether the queue is of the hairpin type or standard.
This patch replaces it with a boolean variable that saves whether it is a hairpin.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
45a6df80 |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: separate per port configuration
Add configuration structure for port (ethdev). This structure contains all configurations coming from devargs which oriented to port. It is a field of mlx5_
net/mlx5: separate per port configuration
Add configuration structure for port (ethdev). This structure contains all configurations coming from devargs which oriented to port. It is a field of mlx5_priv structure, and is updated in spawn function for each port.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
c4b86201 |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: refactor to detect operation by DevX
Add inline function indicating whether HW objects operations can be created by DevX. It makes the code more readable.
Signed-off-by: Michael Baum <mic
net/mlx5: refactor to detect operation by DevX
Add inline function indicating whether HW objects operations can be created by DevX. It makes the code more readable.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
a13ec19c |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: add shared device context config structure
Add configuration structure for shared device context. This structure contains all configurations coming from devargs which oriented to device. I
net/mlx5: add shared device context config structure
Add configuration structure for shared device context. This structure contains all configurations coming from devargs which oriented to device. It is a field of shared device context (SH) structure, and is updated once in mlx5_alloc_shared_dev_ctx() function. This structure cannot be changed when probing again, so add function to prevent it. The mlx5_probe_again_args_validate() function creates a temporary IB context configure structure according to new devargs attached in probing again, then checks the match between the temporary structure and the existing IB context configure structure.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
87af0d1e |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: concentrate all device configurations
Move all device configure to be performed by mlx5_os_cap_config() function instead of the spawn function. In addition move all relevant fields from ml
net/mlx5: concentrate all device configurations
Move all device configure to be performed by mlx5_os_cap_config() function instead of the spawn function. In addition move all relevant fields from mlx5_dev_config structure to mlx5_dev_cap.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
91d1cfaf |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: rearrange device attribute structure
Rearrange the mlx5_os_get_dev_attr() function in such a way that it first executes the queries and only then updates the fields. In addition, it change
net/mlx5: rearrange device attribute structure
Rearrange the mlx5_os_get_dev_attr() function in such a way that it first executes the queries and only then updates the fields. In addition, it changed its name in preparation for expanding its operations to configure the capabilities inside it.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
cf004fd3 |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: add E-Switch mode flag
This patch adds in SH structure a flag which indicates whether is E-Switch mode. When configure "dv_esw_en" from devargs, it is enabled only when is E-switch mode. S
net/mlx5: add E-Switch mode flag
This patch adds in SH structure a flag which indicates whether is E-Switch mode. When configure "dv_esw_en" from devargs, it is enabled only when is E-switch mode. So, since dv_esw_en has been configure, it is enough to check if "dv_esw_en" is valid. This patch also removes E-Switch mode check when "dv_esw_en" is checked too.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
6dc0cbc6 |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: remove DevX flag duplication
The sharing device context structure has a field named "devx" which indicates if DevX is supported. The common configure structure has also field named "devx"
net/mlx5: remove DevX flag duplication
The sharing device context structure has a field named "devx" which indicates if DevX is supported. The common configure structure has also field named "devx" with the same meaning.
There is no need for this duplication, because there is a reference to the common structure from within the sharing device context structure.
This patch removes it from sharing device context structure and uses the common config structure instead.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| #
53820561 |
| 14-Feb-2022 |
Michael Baum <[email protected]> |
net/mlx5: remove HCA attribute structure duplication
The HCA attribute structure is field of net configure structure. It is also field of common configure structure.
There is no need for this dupli
net/mlx5: remove HCA attribute structure duplication
The HCA attribute structure is field of net configure structure. It is also field of common configure structure.
There is no need for this duplication, because there is a reference to the common structure from within the net structures.
This patch removes it from net configure structure and uses the common config structure instead.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2 |
|
| #
09c25553 |
| 04-Nov-2021 |
Xueming Li <[email protected]> |
net/mlx5: support shared Rx queue
This patch introduces shared RxQ. All shared Rx queues with same group and queue ID share the same rxq_ctrl. Rxq_ctrl and rxq_data are shared, all queues from diffe
net/mlx5: support shared Rx queue
This patch introduces shared RxQ. All shared Rx queues with same group and queue ID share the same rxq_ctrl. Rxq_ctrl and rxq_data are shared, all queues from different member port share same WQ and CQ, essentially one Rx WQ, mbufs are filled into this singleton WQ.
Shared rxq_data is set into device Rx queues of all member ports as RxQ object, used for receiving packets. Polling queue of any member ports returns packets of any member, mbuf->port is used to identify source port.
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
5cf0707f |
| 04-Nov-2021 |
Xueming Li <[email protected]> |
net/mlx5: remove Rx queue data list from device
Rx queue data list(priv->rxqs) can be replaced by Rx queue list(priv->rxq_privs), removes it and replaces with universal wrapper API.
Signed-off-by:
net/mlx5: remove Rx queue data list from device
Rx queue data list(priv->rxqs) can be replaced by Rx queue list(priv->rxq_privs), removes it and replaces with universal wrapper API.
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
4cda06c3 |
| 04-Nov-2021 |
Xueming Li <[email protected]> |
net/mlx5: split Rx queue into shareable and private
To prepare shared Rx queue, splits RxQ data into shareable and private. Struct mlx5_rxq_priv is per queue data. Struct mlx5_rxq_ctrl is shared que
net/mlx5: split Rx queue into shareable and private
To prepare shared Rx queue, splits RxQ data into shareable and private. Struct mlx5_rxq_priv is per queue data. Struct mlx5_rxq_ctrl is shared queue resources and data.
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
ec4e11d4 |
| 02-Nov-2021 |
Dmitry Kozlyuk <[email protected]> |
net/mlx5: preserve indirect actions on restart
MLX5 PMD uses reference counting to manage RX queue resources. After port stop shared RSS actions kept references to RX queues, preventing resource rel
net/mlx5: preserve indirect actions on restart
MLX5 PMD uses reference counting to manage RX queue resources. After port stop shared RSS actions kept references to RX queues, preventing resource release. As a result, internal PMD mempool for such queues had been exhausted after a number of port restarts. Diagnostic message from rte_eth_dev_start():
Rx queue allocation failed: Cannot allocate memory
Dereference RX queues used by indirect actions on port stop (detach) and restore references on port start (attach) in order to allow RX queue resource release, but keep indirect RSS across the port restart. Replace queue IDs in HW by drop queue ID on detach and restore actual queue IDs on attach.
When the port is stopped, create indirect RSS in the detached state. As a result, MLX5 PMD is able to keep all its indirect actions across port restart. Advertise this capability.
Fixes: 4b61b8774be9 ("ethdev: introduce indirect flow action") Cc: [email protected]
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to have 'rte_eth' prefix.
All internal components switched to using new names.
Syntax fixed on lines that this patch touches.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Tyler Retzlaff <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Wisam Jaddo <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Chenbo Xia <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2 |
|
| #
56bb3c84 |
| 21-Jul-2021 |
Xueming Li <[email protected]> |
net/mlx5: reduce PCI dependency
To support more bus types, remove PCI dependency where possible.
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]
net/mlx5: reduce PCI dependency
To support more bus types, remove PCI dependency where possible.
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
|
Revision tags: v21.08-rc1 |
|
| #
10eaf41d |
| 05-Jul-2021 |
Viacheslav Galaktionov <[email protected]> |
ethdev: keep count of representor ranges in API
In its current state, the API can overflow the user-passed buffer if a new representor range appears between function calls.
In order to solve this p
ethdev: keep count of representor ranges in API
In its current state, the API can overflow the user-passed buffer if a new representor range appears between function calls.
In order to solve this problem, augment the representor info structure with the numbers of allocated and initialized ranges. This way the users of this structure can be sure they will not overrun the buffer.
Fixes: 85e1588ca72f ("ethdev: add API to get representor info") Cc: [email protected]
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Xueming Li <[email protected]>
show more ...
|
|
Revision tags: v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
377b69fb |
| 12-Apr-2021 |
Michael Baum <[email protected]> |
net/mlx5: separate Tx function declarations to another file
This patch separates Tx function declarations to different header file in preparation for removing their implementation from the source fi
net/mlx5: separate Tx function declarations to another file
This patch separates Tx function declarations to different header file in preparation for removing their implementation from the source file and as an optional preparation for Tx cleanup.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
151cbe3a |
| 12-Apr-2021 |
Michael Baum <[email protected]> |
net/mlx5: separate Rx function declarations to another file
The mlx5_rxtx.c file contains a lot of Tx burst functions, each of those is performance-optimized for the specific set of requested offloa
net/mlx5: separate Rx function declarations to another file
The mlx5_rxtx.c file contains a lot of Tx burst functions, each of those is performance-optimized for the specific set of requested offloads. These ones are generated on the basis of the template function and it takes significant time to compile, just due to a large number of giant functions generated in the same file and this compilation is not being done in parallel with using multithreading.
Therefore we can split the mlx5_rxtx.c file into several separate files to allow different functions to be compiled simultaneously. In this patch, we separate Rx function declarations to different header file in preparation for removing them from the source file and as an optional preparation step for further consolidation of Rx burst functions.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
91766fae |
| 28-Mar-2021 |
Xueming Li <[email protected]> |
net/mlx5: probe host PF representor with sub-function
To simplify BlueField HPF representor(vf[-1]) probe, this patch allows probe it with "sf" syntax: "sf[-1]".
Signed-off-by: Xueming Li <xuemingl
net/mlx5: probe host PF representor with sub-function
To simplify BlueField HPF representor(vf[-1]) probe, this patch allows probe it with "sf" syntax: "sf[-1]".
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
f5f4c482 |
| 28-Mar-2021 |
Xueming Li <[email protected]> |
net/mlx5: save bonding member ports information
Since kernel bonding netdev doesn't provide statistics counter that reflects all member ports, PMD has to manually summarize counters from each member
net/mlx5: save bonding member ports information
Since kernel bonding netdev doesn't provide statistics counter that reflects all member ports, PMD has to manually summarize counters from each member ports.
As a preparation, this patch collects bonding member port information and saves to shared context data.
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
f926cce3 |
| 28-Mar-2021 |
Xueming Li <[email protected]> |
net/mlx5: refactor bonding representor probing
To probe representor on 2nd PF of kernel bonding device, had to specify PF1 BDF in devarg: <PF1_BDF>,representor=0 When closing bonding device, all r
net/mlx5: refactor bonding representor probing
To probe representor on 2nd PF of kernel bonding device, had to specify PF1 BDF in devarg: <PF1_BDF>,representor=0 When closing bonding device, all representors had to be closed together and this implies all representors have to use primary PF of bonding device. So after probing representor port on 2nd PF, when locating new probed device using device argument, the filter used 2nd PF as PCI address and failed to locate new device.
Conflict happened by using current representor devargs: - Use PCI BDF to specify representor owner PF - Use PCI BDF to locate probed representor device. - PMD uses primary PCI BDF as PCI device.
To resolve such conflicts, new representor syntax is introduced here: <primary BDF>,representor=pfXvfY All representors must use primary PF as owner PCI device, PMD internally locate owner PCI address by checking representor "pfX" part. To EAL, all representors are registered to primary PCI device, the 2nd PF is hidden to EAL, thus all search should be consistent.
Same to VF representor, HPF (host PF on BlueField) uses same syntax to probe, example: representor=pf1vf[0-3,-1]
This patch also adds pf index into kernel bonding representor port name: <BDF>_<ib_name>_representor_pf<X>vf<Y>
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
cb95feef |
| 28-Mar-2021 |
Xueming Li <[email protected]> |
net/mlx5: support sub-function representor
This patch adds support for SF representor. Similar to VF representor, switch port name of SF representor in phys_port_name sysfs key is "pf<x>sf<y>".
Dev
net/mlx5: support sub-function representor
This patch adds support for SF representor. Similar to VF representor, switch port name of SF representor in phys_port_name sysfs key is "pf<x>sf<y>".
Device representor argument is "representors=sf[list]", list member could be mix of instance and range. Example: representors=sf[0,2,4,8-12,-1]
To probe VF representor and SF representor, need to separate into 2 devices: -a <BDF>,representor=vf[list] -a <BDF>,representor=sf[list]
Signed-off-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <[email protected]> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Thomas Monjalon <[email protected]> Acked-by: Steven Webster <[email protected]>
show more ...
|