#
213e2727 |
| 26-Oct-2020 |
Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
net/mlx5: register multiple pool for Rx queue
The split feature for receiving packets was added to the mlx5 PMD, now Rx queue can receive the data to the buffers belonging to the different pools and
net/mlx5: register multiple pool for Rx queue
The split feature for receiving packets was added to the mlx5 PMD, now Rx queue can receive the data to the buffers belonging to the different pools and the memory of all the involved pool must be registered for DMA operations in order to allow hardware to store the data.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
042540e4 |
| 29-Oct-2020 |
Thomas Monjalon <thomas@monjalon.net> |
net/mlx5: fix dynamic mbuf offset lookup check
The functions rte_mbuf_dynfield_lookup() and rte_mbuf_dynflag_lookup() can return an offset starting with 0 or a negative error code.
In reality the f
net/mlx5: fix dynamic mbuf offset lookup check
The functions rte_mbuf_dynfield_lookup() and rte_mbuf_dynflag_lookup() can return an offset starting with 0 or a negative error code.
In reality the first offsets are probably reserved forever, but for the sake of strict API compliance, the checks which considered 0 as an error are fixed.
Fixes: efa79e68c8cd ("net/mlx5: support fine grain dynamic flag") Fixes: 3172c471b86f ("net/mlx5: prepare Tx queue structures to support timestamp") Fixes: 0febfcce3693 ("net/mlx5: prepare Tx to support scheduling") Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
62024eb8 |
| 15-Oct-2020 |
Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> |
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if ca
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if case of error conditions.
Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
f49f4483 |
| 01-Oct-2020 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5: share Tx control code
Move Tx object similar resources allocations and debug logs from DevX and Verbs modules to a shared location.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acke
net/mlx5: share Tx control code
Move Tx object similar resources allocations and debug logs from DevX and Verbs modules to a shared location.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
86d259ce |
| 01-Oct-2020 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5: separate Tx queue object creations
As an arrangement to Windows OS support, the Verbs operations should be separated to another file. By this way, the build can easily cut the unsupported
net/mlx5: separate Tx queue object creations
As an arrangement to Windows OS support, the Verbs operations should be separated to another file. By this way, the build can easily cut the unsupported Verbs APIs from the compilation process.
Define operation structure and DevX module in addition to the existing Linux Verbs module. Separate Tx object creation into the Verbs/DevX modules and update the operation structure according to the OS support and the user configuration.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
5eaf882e |
| 03-Sep-2020 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5: separate Rx queue drop
Separate Rx queue drop creation into both Verbs and DevX modules.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
|
#
1260a87b |
| 03-Sep-2020 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5: share Rx control code
Move Rx object similar resources allocations and debug logs from DevX and Verbs modules to a shared location.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acke
net/mlx5: share Rx control code
Move Rx object similar resources allocations and debug logs from DevX and Verbs modules to a shared location.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
6deb19e1 |
| 03-Sep-2020 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5: separate Rx queue object creations
As an arrangement to Windows OS support, the Verbs operations should be separated to another file. By this way, the build can easily cut the unsupported
net/mlx5: separate Rx queue object creations
As an arrangement to Windows OS support, the Verbs operations should be separated to another file. By this way, the build can easily cut the unsupported Verbs APIs from the compilation process.
Define operation structure and DevX module in addition to the existing linux Verbs module. Separate Rx object creation into the Verbs/DevX modules and update the operation structure according to the OS support and the user configuration.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
show more ...
|
#
fe7a54fd |
| 25-Aug-2020 |
Ophir Munk <ophirmu@mellanox.com> |
net/mlx5: remove Verbs dependency in Rx/Tx objects
Replace pointers to ibv structs with pointers to void (file mlx5_rxtx.h). Specifically the following pointers were replaced: 'struct ibv_cq *', 's
net/mlx5: remove Verbs dependency in Rx/Tx objects
Replace pointers to ibv structs with pointers to void (file mlx5_rxtx.h). Specifically the following pointers were replaced: 'struct ibv_cq *', 'struct ibv_wq *', 'struct ibv_comp_channel *', 'struct ibv_rwq_ind_table *a', 'struct ibv_qp *'.
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
2e86c4e5 |
| 19-Jul-2020 |
Ophir Munk <ophirmu@mellanox.com> |
net/mlx5: refactor multi-process communication
1. The shared data communication between the primary and the secondary processes is implemented using Linux API. Move the Linux API code under linux di
net/mlx5: refactor multi-process communication
1. The shared data communication between the primary and the secondary processes is implemented using Linux API. Move the Linux API code under linux directory (file linux/mlx5_os.c).
2. File net/mlx5/mlx5_mp.c handles requests to the primary and secondary processes (e.g. start_rxtx, stop_rxtx). It is Linux based so it is moved under linux (new file linux/mlx5_mp_os.c).
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
a2854c4d |
| 16-Jul-2020 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: convert Rx timestamps in real-time format
The ConnectX-6DX supports the timestamps in various formats, the new realtime format is introduced - the upper 32-bit word of timestamp contains t
net/mlx5: convert Rx timestamps in real-time format
The ConnectX-6DX supports the timestamps in various formats, the new realtime format is introduced - the upper 32-bit word of timestamp contains the UTC seconds and the lower 32-bit word contains the nanoseconds. This patch detects what format is configured in the NIC and performs the conversion accordingly.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
3172c471 |
| 16-Jul-2020 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: prepare Tx queue structures to support timestamp
The fields to support send scheduling on dynamic timestamp field are introduced and initialized on device start.
Signed-off-by: Viacheslav
net/mlx5: prepare Tx queue structures to support timestamp
The fields to support send scheduling on dynamic timestamp field are introduced and initialized on device start.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
3a87b964 |
| 16-Jul-2020 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: create Tx queues with DevX
To provide the packet send schedule on mbuf timestamp the Tx queue must be attached to the same UAR as Clock Queue is. UAR is special hardware related resource m
net/mlx5: create Tx queues with DevX
To provide the packet send schedule on mbuf timestamp the Tx queue must be attached to the same UAR as Clock Queue is. UAR is special hardware related resource mapped to the host memory and provides doorbell registers, the assigning UAR to the queue being created is provided via DevX API only.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
d133f4cd |
| 16-Jul-2020 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: create clock queue for packet pacing
This patch creates the special completion queue providing reference completions to schedule packet send from other transmitting queues.
Signed-off-by:
net/mlx5: create clock queue for packet pacing
This patch creates the special completion queue providing reference completions to schedule packet send from other transmitting queues.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
0f0ae73a |
| 23-Jun-2020 |
Shiri Kuzin <shirik@mellanox.com> |
net/mlx5: add parameter for LACP packets control
The new devarg will control the steering of the lacp traffic. When setting dv_lacp_by_user = 0 the lacp traffic will be steered to kernel and managed
net/mlx5: add parameter for LACP packets control
The new devarg will control the steering of the lacp traffic. When setting dv_lacp_by_user = 0 the lacp traffic will be steered to kernel and managed there.
When setting dv_lacp_by_user = 1 the lacp traffic will not be steered and the user will need to manage it.
Signed-off-by: Shiri Kuzin <shirik@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
73bf9235 |
| 10-Jun-2020 |
Ophir Munk <ophirmu@mellanox.com> |
net/mlx5: refactor statistics
mlx5 statistics are calculated by several methods: 1. In software when packets go through datapath. 2. Calling ioctl with ETHTOOL command (Linux specific). 3. Reading c
net/mlx5: refactor statistics
mlx5 statistics are calculated by several methods: 1. In software when packets go through datapath. 2. Calling ioctl with ETHTOOL command (Linux specific). 3. Reading counters from SYSFS device path (Linux specific).
The Linux related functions are moved to file linux/mlx5_os.c.
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
91389890 |
| 10-Jun-2020 |
Ophir Munk <ophirmu@mellanox.com> |
net/mlx5: rename ib in names
Renames in this commit: mlx5_ibv_list -> mlx5_dev_ctx_list mlx5_alloc_shared_ibctx -> mlx5_alloc_shared_dev_ctx mlx5_free_shared_ibctx -> mlx5_free_shared_dev_ctx mlx5_i
net/mlx5: rename ib in names
Renames in this commit: mlx5_ibv_list -> mlx5_dev_ctx_list mlx5_alloc_shared_ibctx -> mlx5_alloc_shared_dev_ctx mlx5_free_shared_ibctx -> mlx5_free_shared_dev_ctx mlx5_ibv_shared_port -> mlx5_dev_shared_port ibv_port -> dev_port
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
33860cfa |
| 28-May-2020 |
Suanming Mou <suanmingm@mellanox.com> |
net/mlx5: fix interrupt installation timing
Currently, the DevX counter query works asynchronously with Devx interrupt handler return the query result. When port closes, the interrupt handler will b
net/mlx5: fix interrupt installation timing
Currently, the DevX counter query works asynchronously with Devx interrupt handler return the query result. When port closes, the interrupt handler will be uninstalled and the Devx comp obj will also be destroyed. Meanwhile the query is still not cancelled.
In this case, counter query may use the invalid Devx comp which has been destroyed, and query failure with invalid FD will be reported.
Adjust the shared interrupt install and uninstall timing to make the counter asynchronous query stop before interrupt uninstall.
Fixes: f15db67df09c ("net/mlx5: accelerate DV flow counter query") Cc: stable@dpdk.org
Signed-off-by: Suanming Mou <suanmingm@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
b0447b54 |
| 20-May-2020 |
Dekel Peled <dekelp@mellanox.com> |
net/mlx5: revert DevX preference for Rx objects
Recent patch exposed a minor performance issue, so it is reverted.
Fixes: d237d22fbe62 ("net/mlx5: prefer DevX API to create Rx objects")
Signed-off
net/mlx5: revert DevX preference for Rx objects
Recent patch exposed a minor performance issue, so it is reverted.
Fixes: d237d22fbe62 ("net/mlx5: prefer DevX API to create Rx objects")
Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
d237d22f |
| 10-May-2020 |
Dekel Peled <dekelp@mellanox.com> |
net/mlx5: prefer DevX API to create Rx objects
Currently, DevX API is used to create Rx objects (RQ, RQT, TIR) only if LRO or hairpin features are enabled on this RQ.
This patch uses DevX API by de
net/mlx5: prefer DevX API to create Rx objects
Currently, DevX API is used to create Rx objects (RQ, RQT, TIR) only if LRO or hairpin features are enabled on this RQ.
This patch uses DevX API by default, if DevX is supported and can be used. Otherwise, Verbs API is used.
Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
6c55b622 |
| 17-Apr-2020 |
Alexander Kozyrev <akozyrev@mellanox.com> |
net/mlx5: set dynamic flow metadata in Rx queues
Using a global mbuf dynamic field for metadata incurs some performance penalty on a datapath. Store this information in the Rx queue descriptor for a
net/mlx5: set dynamic flow metadata in Rx queues
Using a global mbuf dynamic field for metadata incurs some performance penalty on a datapath. Store this information in the Rx queue descriptor for a better cache locality.
Fixes: a18ac6113331 ("net/mlx5: add metadata support to Rx datapath") Cc: stable@dpdk.org
Signed-off-by: Alexander Kozyrev <akozyrev@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
b8dc6b0e |
| 13-Apr-2020 |
Vu Pham <vuhuong@mellanox.com> |
common/mlx5: refactor memory management
Refactor common memory btree and cache management to common driver. Replace some input parameters of MR APIs to more common data structure like PD, port_id, s
common/mlx5: refactor memory management
Refactor common memory btree and cache management to common driver. Replace some input parameters of MR APIs to more common data structure like PD, port_id, share_cache,... so that multiple PMD drivers can use those MR APIs.
Modify mlx5 net pmd driver to use MR management APIs from common driver.
Signed-off-by: Vu Pham <vuhuong@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
e7bfa359 |
| 24-Mar-2020 |
Bing Zhao <bingz@mellanox.com> |
net/mlx5: separate the flow handle resource
Only the members of flow handle structure will be used when trying to destroy a flow. Other members of mlx5 device flow resource will only be used for flo
net/mlx5: separate the flow handle resource
Only the members of flow handle structure will be used when trying to destroy a flow. Other members of mlx5 device flow resource will only be used for flow creating, and they could be reused for different flows. So only the device flow handle structure needs to be saved for further usage. This could be separated from the whole mlx5 device flow and stored with a list for each rte flow. Other members will be pre-allocated with an array, and an index will be used to help to apply each device flow to the hardware. The flow handle sizes of Verbs and DV mode will be different, and some calculation could be done before allocating a verbs handle. Then the total memory consumption will less for Verbs when there is no inbox driver being used.
Signed-off-by: Bing Zhao <bingz@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
8db7e3b6 |
| 24-Mar-2020 |
Bing Zhao <bingz@mellanox.com> |
net/mlx5: change operations for non-cached flows
When stopping a mlx5 device, all the flows inserted will be flushed since they are with non-cached mode. And no more action will be done for these fl
net/mlx5: change operations for non-cached flows
When stopping a mlx5 device, all the flows inserted will be flushed since they are with non-cached mode. And no more action will be done for these flows in the device closing stage. If the device restarts after stopped, no flow with non-cached mode will be re-inserted. The flush operation through rte interface will remain the same, and all the flows will be flushed actively.
Signed-off-by: Bing Zhao <bingz@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
606d6905 |
| 20-Feb-2020 |
Shiri Kuzin <shirik@mellanox.com> |
net/mlx5: fix running without Rx queue
When running mlx5_dev_start in mlx5_ethdev the function calls mlx5_dev_configure_rss_reta in order to configure the rxq's.
Before mlx5_dev_configure_rss_reta
net/mlx5: fix running without Rx queue
When running mlx5_dev_start in mlx5_ethdev the function calls mlx5_dev_configure_rss_reta in order to configure the rxq's.
Before mlx5_dev_configure_rss_reta there isn't a check whether there are rxq's and if rxq's are 0 the function fails. For example, this command: /build/app/test-pmd/testpmd -n 4 -w 0000:08:00.0,rx_vec_en=0 -- --burst=64 --mbcache=512 -i --nb-cores=27 --txd=2048 --rxd=2048 --vxlan-gpe-port=6081 --mp-alloc=xbuf --rxq 0 --forward-mode=txonly would fail.
In order to fix this issue, we should call mlx5_dev_configure_rss_reta only if we have rxq's.
Fixes: 63bd16292c3a ("net/mlx5: support RSS on hairpin") Cc: stable@dpdk.org
Reported-by: Sylvain Rodon <srn@nexatech.fr> Signed-off-by: Shiri Kuzin <shirik@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|