[dpdk-dev] [PATCH 1/2] mk: add LDLIBS variable when producing the .so file

2015-07-29 Thread Nelio Laranjeiro
Some .so libraries needs to be linked with external libraries. For that the LDLIBS variable should be present on the link line when those .so files are created. PMD Makefile is responsible for filling the LDLIBS variable with the link to the external library it needs. Signed-off-by: Nelio

[dpdk-dev] [PATCH 2/2] mlx4: add missing library dependency when compiling in shared library

2015-07-29 Thread Nelio Laranjeiro
only valid in static mode, in shared mode, applications do not depend on it anymore, librte_pmd_mlx4.so keeps this dependency and thus is linked with libverbs. Signed-off-by: Nelio Laranjeiro Acked-by: Olivier Matz --- drivers/net/mlx4/Makefile | 1 + mk/rte.app.mk | 2 +- 2 files

[dpdk-dev] [PACTH v2 1/2] mk: use LDLIBS variable when building the shared object file

2015-07-30 Thread Nelio Laranjeiro
Some .so libraries needs to be linked with external libraries. For that the LDLIBS variable should be present on the link line when those .so files are created. PMD Makefile is responsible for filling the LDLIBS variable with the link to the external library it needs. Signed-off-by: Nelio

[dpdk-dev] [PACTH v2 2/2] mlx4: fix shared library dependency

2015-07-30 Thread Nelio Laranjeiro
only valid in static mode, in shared mode, applications do not depend on it anymore, librte_pmd_mlx4.so keeps this dependency and thus is linked with libverbs. Signed-off-by: Nelio Laranjeiro Acked-by: Olivier Matz --- Changelog: don't compiled MLX4 PMD when the DPDK is build in combined shared libra

[dpdk-dev] [PACTH v3 1/2] mk: use LDLIBS and EXTRA_LDFLAGS variable when building the shared object file

2015-07-31 Thread Nelio Laranjeiro
-off-by: Nelio Laranjeiro Acked-by: Olivier Matz --- Changelog: Update commit log. mk/rte.lib.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index 9ff5cce..fcc8e20 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -81,7 +81,8 @@ O_TO_A_DO

[dpdk-dev] [PACTH v3 2/2] mlx4: fix shared library dependency

2015-07-31 Thread Nelio Laranjeiro
only valid in static mode, in shared mode, applications do not depend on it anymore, librte_pmd_mlx4.so keeps this dependency and thus is linked with libibverbs. MLX4 cannot be supported in combined shared library because there is no clean way of adding -libverbs to the combined library. Signed-off

[dpdk-dev] [PATCH] doc: fix ABI announce change for RETA configuration

2015-12-15 Thread Nelio Laranjeiro
Replace "entries" by "queues", it clarifies the case. Fixes: bd3cea78abd8 ("doc: announce ABI change for RETA configuration") Signed-off-by: Nelio Laranjeiro --- doc/guides/rel_notes/deprecation.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) dif

[dpdk-dev] [PATCH 0/7] Miscellaneous fixes for mlx4 and mlx5

2016-06-08 Thread Nelio Laranjeiro
Various minor fixes for mlx4 (ConnectX-3) and mlx5 (ConnectX-4). Adrien Mazarguil (4): mlx: ensure MTU update is effective mlx: retrieve mbuf size through proper API mlx5: fix RX VLAN stripping capability check mlx5: cosmetic changes (coding style) Nelio Laranjeiro (3): mlx: remove

[dpdk-dev] [PATCH 1/7] mlx: remove unused memory region property

2016-06-08 Thread Nelio Laranjeiro
Memory regions are always local with raw Ethernet queues, drop the remote property as it adds extra processing on the hardware side. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 4 ++-- drivers/net/mlx5/mlx5_rxtx.c | 2 +- drivers/net/mlx5

[dpdk-dev] [PATCH 2/7] mlx: ensure MTU update is effective

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil There is no guarantee that the new MTU is effective after writing its value to sysfs. Retrieve it to be sure. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c| 10 +- drivers/net/mlx5/mlx5_ethdev.c | 10 +-

[dpdk-dev] [PATCH 3/7] mlx: retrieve mbuf size through proper API

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil No need to allocate a mbuf for that. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c| 29 - drivers/net/mlx5/mlx5_ethdev.c | 5 - drivers/net/mlx5/mlx5_rxq.c| 20 ++--

[dpdk-dev] [PATCH 4/7] mlx5: fix RX VLAN stripping capability check

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil A hardware capability check is missing before enabling RX VLAN stripping during queue setup. Also, while dev_conf.rxmode.hw_vlan_strip is currently a single bit that can be stored in priv->hw_vlan_strip directly, it should be interpreted as a

[dpdk-dev] [PATCH 5/7] mlx5: cosmetic changes (coding style)

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil Add consistency to mlx5_rxtx.h. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_rxtx.h | 15 ++- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h

[dpdk-dev] [PATCH 6/7] mlx5: enhance SR-IOV detection

2016-06-08 Thread Nelio Laranjeiro
SR-IOV mode is currently set when dealing with VF devices. PF devices must be taken into account as well if they have active VFs. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c| 14 -- drivers/net/mlx5/mlx5.h| 3

[dpdk-dev] [PATCH 7/7] mlx5: update documentation part related to features and limitations

2016-06-08 Thread Nelio Laranjeiro
Signed-off-by: Nelio Laranjeiro --- doc/guides/nics/mlx5.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index b6f91e6..d9196d1 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -86,11 +86,11

[dpdk-dev] [PATCH 00/24] Refactor mlx5 to improve performance

2016-06-08 Thread Nelio Laranjeiro
TX gather support mlx5: work around spurious compilation errors mlx5: remove redundant RX queue initialization code mlx5: make RX queue reinitialization safer mlx5: resurrect RX scatter support Nelio Laranjeiro (15): mlx5: split memory registration function for better performance mlx5:

[dpdk-dev] [PATCH 01/24] mlx5: split memory registration function for better performance

2016-06-08 Thread Nelio Laranjeiro
function. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile| 1 + drivers/net/mlx5/mlx5_mr.c | 277 +++ drivers/net/mlx5/mlx5_rxtx.c | 209 ++-- drivers/net/mlx5/mlx5_rxtx.h

[dpdk-dev] [PATCH 02/24] mlx5: remove TX gather support

2016-06-08 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. TX gather cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c | 2

[dpdk-dev] [PATCH 03/24] mlx5: remove RX scatter support

2016-06-08 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. RX scatter cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c

[dpdk-dev] [PATCH 04/24] mlx5: remove configuration variable for maximum number of segments

2016-06-08 Thread Nelio Laranjeiro
There is no scatter/gather support anymore, CONFIG_RTE_LIBRTE_MLX5_SGE_WR_N has no purpose and can be removed. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 7 --- drivers/net/mlx5/Makefile| 4

[dpdk-dev] [PATCH 06/24] mlx5: split TX queue structure

2016-06-08 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure txq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c| 21 +++-- drivers/net/mlx5/mlx5_ethdev.c | 27 +++--- drivers/net/mlx5

[dpdk-dev] [PATCH 05/24] mlx5: remove inline TX support

2016-06-08 Thread Nelio Laranjeiro
Inline TX will be fully managed by the PMD after Verbs is bypassed in the data path. Remove the current code until then. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 10 -- drivers/net/mlx5/Makefile

[dpdk-dev] [PATCH 07/24] mlx5: split RX queue structure

2016-06-08 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure rxq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c | 6 +- drivers/net/mlx5/mlx5_fdir.c | 8 +- drivers/net/mlx5/mlx5_rxq.c

[dpdk-dev] [PATCH 08/24] mlx5: update prerequisites for upcoming enhancements

2016-06-08 Thread Nelio Laranjeiro
The latest version of Mellanox OFED exposes hardware definitions necessary to implement data path operation bypassing Verbs. Update the minimum version requirement to MLNX_OFED >= 3.3 and clean up compatibility checks for previous releases. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adr

[dpdk-dev] [PATCH 10/24] mlx5: add support for configuration through kvargs

2016-06-08 Thread Nelio Laranjeiro
The intent is to replace the remaining compile-time options and environment variables with a common mean of runtime configuration. This commit only adds the kvargs handling code, subsequent commits will update the rest. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil

[dpdk-dev] [PATCH 09/24] mlx5: add definitions for data path without Verbs

2016-06-08 Thread Nelio Laranjeiro
These structures and macros extend those exposed by libmlx5 (in mlx5_hw.h) to let the PMD manage work queue and completion queue elements directly. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_prm.h | 155

[dpdk-dev] [PATCH 11/24] mlx5: add TX/RX burst function selection wrapper

2016-06-08 Thread Nelio Laranjeiro
These wrappers are meant to prevent code duplication later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.h| 2 ++ drivers/net/mlx5/mlx5_ethdev.c | 34 -- drivers/net/mlx5/mlx5_txq.c| 2 +- 3 files

[dpdk-dev] [PATCH 12/24] mlx5: refactor RX data path

2016-06-08 Thread Nelio Laranjeiro
Bypass Verbs to improve RX performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c | 4 +- drivers/net/mlx5/mlx5_fdir.c | 2 +- drivers/net/mlx5/mlx5_rxq.c| 291

[dpdk-dev] [PATCH 13/24] mlx5: refactor TX data path

2016-06-08 Thread Nelio Laranjeiro
Bypass Verbs to improve TX performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile | 5 - drivers/net/mlx5/mlx5_ethdev.c | 10 +- drivers/net/mlx5/mlx5_mr.c | 4 +- drivers/net/mlx5/mlx5_rxtx.c

[dpdk-dev] [PATCH 14/24] mlx5: handle RX CQE compression

2016-06-08 Thread Nelio Laranjeiro
empty CQE64 entries are handed back to HW without further processing. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil Signed-off-by: Olga Shern --- doc/guides/nics/mlx5.rst | 6 + drivers/net/mlx5/mlx5.c | 25 - drivers/net/mlx5/mlx5.h | 1 + drivers/net

[dpdk-dev] [PATCH 15/24] mlx5: replace countdown with threshold for TX completions

2016-06-08 Thread Nelio Laranjeiro
etions during a burst. Completions are now requested at most once per burst after threshold is reached. Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_defs.h | 7 +-- drivers/net/mlx5/mlx5_rxtx.c | 42 -- drive

[dpdk-dev] [PATCH 16/24] mlx5: add support for inline send

2016-06-08 Thread Nelio Laranjeiro
causes a performance bottleneck. Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- doc/guides/nics/mlx5.rst | 17 +++ drivers/net/mlx5/mlx5.c| 13 ++ drivers/net/mlx5/mlx5.h| 2 + drivers/net/mlx5/mlx5_ethdev.c | 5 + drivers/ne

[dpdk-dev] [PATCH 17/24] mlx5: add support for multi-packet send

2016-06-08 Thread Nelio Laranjeiro
This feature enables the TX burst function to emit up to 5 packets using only two WQEs on devices that support it. Saves PCI bandwidth and improves performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil Signed-off-by: Olga Shern --- doc/guides/nics/mlx5.rst | 10

[dpdk-dev] [PATCH 18/24] mlx5: add debugging information about TX queues capabilities

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_txq.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index 15c8f73..d013230 100644 --- a/drivers/net/mlx5/mlx5_txq.c

[dpdk-dev] [PATCH 19/24] mlx5: check remaining space while processing TX burst

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil The space necessary to store segmented packets cannot be known in advance and must be verified for each of them. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_rxtx.c | 136 ++- 1 file

[dpdk-dev] [PATCH 20/24] mlx5: resurrect TX gather support

2016-06-08 Thread Nelio Laranjeiro
a non negligible amount of memory to handle oversized mbufs. The resulting code is both lighter and faster. Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxtx.c | 231 +-- drivers/net/mlx5/mlx5_txq.c | 6 +- 2

[dpdk-dev] [PATCH 21/24] mlx5: work around spurious compilation errors

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil Since commit "mlx5: resurrect TX gather support", older GCC versions (such as 4.8.5) may complain about the following: mlx5_rxtx.c: In function `mlx5_tx_burst': mlx5_rxtx.c:705:25: error: `wqe' may be used uninitialized in this function

[dpdk-dev] [PATCH 22/24] mlx5: remove redundant RX queue initialization code

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil Toggling RX checksum offloads is already done at initialization time. This code does not belong in rxq_rehash(). Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_rxq.c | 10 -- 1 file changed, 10 deletions(-) diff --git

[dpdk-dev] [PATCH 23/24] mlx5: make RX queue reinitialization safer

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil The primary purpose of rxq_rehash() function is to stop and restart reception on a queue after re-posting buffers. This may fail if the array that temporarily stores existing buffers for reuse cannot be allocated. Update rxq_rehash() to work on

[dpdk-dev] [PATCH 24/24] mlx5: resurrect RX scatter support

2016-06-08 Thread Nelio Laranjeiro
From: Adrien Mazarguil This commit brings back RX scatter and related support by the MTU update function. The maximum number of segments per packet is not a fixed value anymore (previously MLX5_PMD_SGE_WR_N, set to 4 by default) as it caused performance issues when

[dpdk-dev] [PATCH v2 00/25] Refactor mlx5 to improve performance

2016-06-20 Thread Nelio Laranjeiro
t Rx queue initialization code mlx5: make Rx queue reinitialization safer mlx5: resurrect Rx scatter support Nelio Laranjeiro (16): drivers: fix PCI class id support mlx5: split memory registration function mlx5: remove Tx gather support mlx5: remove Rx scatter support mlx5: remove configuratio

[dpdk-dev] [PATCH v2 01/25] drivers: fix PCI class id support

2016-06-20 Thread Nelio Laranjeiro
Fixes: 701c8d80c820 ("pci: support class id probing") Signed-off-by: Nelio Laranjeiro --- drivers/crypto/qat/rte_qat_cryptodev.c | 5 + drivers/net/mlx4/mlx4.c| 18 ++ drivers/net/mlx5/mlx5.c| 24 drive

[dpdk-dev] [PATCH v2 02/25] mlx5: split memory registration function

2016-06-20 Thread Nelio Laranjeiro
function. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile| 1 + drivers/net/mlx5/mlx5_mr.c | 277 +++ drivers/net/mlx5/mlx5_rxtx.c | 209 ++-- drivers/net/mlx5/mlx5_rxtx.h

[dpdk-dev] [PATCH v2 03/25] mlx5: remove Tx gather support

2016-06-20 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. TX gather cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c | 2

[dpdk-dev] [PATCH v2 04/25] mlx5: remove Rx scatter support

2016-06-20 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. RX scatter cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c

[dpdk-dev] [PATCH v2 05/25] mlx5: remove configuration variable

2016-06-20 Thread Nelio Laranjeiro
There is no scatter/gather support anymore, CONFIG_RTE_LIBRTE_MLX5_SGE_WR_N has no purpose and can be removed. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 7 --- drivers/net/mlx5/Makefile| 4

[dpdk-dev] [PATCH v2 06/25] mlx5: remove inline Tx support

2016-06-20 Thread Nelio Laranjeiro
Inline TX will be fully managed by the PMD after Verbs is bypassed in the data path. Remove the current code until then. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 10 -- drivers/net/mlx5/Makefile

[dpdk-dev] [PATCH v2 08/25] mlx5: split Rx queue structure

2016-06-20 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure rxq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c | 6 +- drivers/net/mlx5/mlx5_fdir.c | 8 +- drivers/net/mlx5/mlx5_rxq.c

[dpdk-dev] [PATCH v2 09/25] mlx5: update prerequisites for upcoming enhancements

2016-06-20 Thread Nelio Laranjeiro
The latest version of Mellanox OFED exposes hardware definitions necessary to implement data path operation bypassing Verbs. Update the minimum version requirement to MLNX_OFED >= 3.3 and clean up compatibility checks for previous releases. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adr

[dpdk-dev] [PATCH v2 10/25] mlx5: add definitions for data path without Verbs

2016-06-20 Thread Nelio Laranjeiro
These structures and macros extend those exposed by libmlx5 (in mlx5_hw.h) to let the PMD manage work queue and completion queue elements directly. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_prm.h | 163

[dpdk-dev] [PATCH v2 07/25] mlx5: split Tx queue structure

2016-06-20 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure txq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c| 21 +++-- drivers/net/mlx5/mlx5_ethdev.c | 27 +++--- drivers/net/mlx5

[dpdk-dev] [PATCH v2 12/25] mlx5: add Tx/Rx burst function selection wrapper

2016-06-20 Thread Nelio Laranjeiro
These wrappers are meant to prevent code duplication later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.h| 2 ++ drivers/net/mlx5/mlx5_ethdev.c | 34 -- drivers/net/mlx5/mlx5_txq.c| 2 +- 3 files

[dpdk-dev] [PATCH v2 11/25] mlx5: add support for configuration through kvargs

2016-06-20 Thread Nelio Laranjeiro
The intent is to replace the remaining compile-time options and environment variables with a common mean of runtime configuration. This commit only adds the kvargs handling code, subsequent commits will update the rest. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil

[dpdk-dev] [PATCH v2 14/25] mlx5: refactor Tx data path

2016-06-20 Thread Nelio Laranjeiro
Bypass Verbs to improve Tx performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile | 5 - drivers/net/mlx5/mlx5_ethdev.c | 10 +- drivers/net/mlx5/mlx5_mr.c | 4 +- drivers/net/mlx5/mlx5_rxtx.c

[dpdk-dev] [PATCH v2 16/25] mlx5: replace countdown with threshold for Tx completions

2016-06-20 Thread Nelio Laranjeiro
etions during a burst. Completions are now requested at most once per burst after threshold is reached. Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro Signed-off-by: Vasily Philipov --- drivers/net/mlx5/mlx5_defs.h | 7 +-- drivers/net/mlx5/mlx5_rxtx.

[dpdk-dev] [PATCH v2 13/25] mlx5: refactor Rx data path

2016-06-20 Thread Nelio Laranjeiro
Bypass Verbs to improve RX performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil Signed-off-by: Vasily Philipov --- drivers/net/mlx5/mlx5_ethdev.c | 4 +- drivers/net/mlx5/mlx5_fdir.c | 2 +- drivers/net/mlx5/mlx5_rxq.c| 303

[dpdk-dev] [PATCH v2 19/25] mlx5: add debugging information about Tx queues capabilities

2016-06-20 Thread Nelio Laranjeiro
From: Adrien Mazarguil Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_txq.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index 4f17fb0..bae9f3d 100644 --- a/drivers/net/mlx5/mlx5_txq.c

[dpdk-dev] [PATCH v2 18/25] mlx5: add support for multi-packet send

2016-06-20 Thread Nelio Laranjeiro
This feature enables the TX burst function to emit up to 5 packets using only two WQEs on devices that support it. Saves PCI bandwidth and improves performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil Signed-off-by: Olga Shern --- doc/guides/nics/mlx5.rst | 10

[dpdk-dev] [PATCH v2 17/25] mlx5: add support for inline send

2016-06-20 Thread Nelio Laranjeiro
causes a performance bottleneck. Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- doc/guides/nics/mlx5.rst | 17 +++ drivers/net/mlx5/mlx5.c| 13 ++ drivers/net/mlx5/mlx5.h| 2 + drivers/net/mlx5/mlx5_ethdev.c | 5 + drivers/ne

[dpdk-dev] [PATCH v2 20/25] mlx5: check remaining space while processing Tx burst

2016-06-20 Thread Nelio Laranjeiro
From: Adrien Mazarguil The space necessary to store segmented packets cannot be known in advance and must be verified for each of them. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_rxtx.c | 136 ++- 1 file

[dpdk-dev] [PATCH v2 21/25] mlx5: resurrect Tx gather support

2016-06-20 Thread Nelio Laranjeiro
a non negligible amount of memory to handle oversized mbufs. The resulting code is both lighter and faster. Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxtx.c | 231 +-- drivers/net/mlx5/mlx5_txq.c | 6 +- 2

[dpdk-dev] [PATCH v2 22/25] mlx5: work around spurious compilation errors

2016-06-20 Thread Nelio Laranjeiro
From: Adrien Mazarguil Since commit "mlx5: resurrect Tx gather support", older GCC versions (such as 4.8.5) may complain about the following: mlx5_rxtx.c: In function `mlx5_tx_burst': mlx5_rxtx.c:705:25: error: `wqe' may be used uninitialized in this function

[dpdk-dev] [PATCH v2 23/25] mlx5: remove redundant Rx queue initialization code

2016-06-20 Thread Nelio Laranjeiro
From: Adrien Mazarguil <adrien.mazarg...@6wind.com> Toggling RX checksum offloads is already done at initialization time. This code does not belong in rxq_rehash(). Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxq.c | 10 -- 1 file c

[dpdk-dev] [PATCH v2 24/25] mlx5: make Rx queue reinitialization safer

2016-06-20 Thread Nelio Laranjeiro
From: Adrien Mazarguil The primary purpose of rxq_rehash() function is to stop and restart reception on a queue after re-posting buffers. This may fail if the array that temporarily stores existing buffers for reuse cannot be allocated. Update rxq_rehash() to work on

[dpdk-dev] [PATCH v2 25/25] mlx5: resurrect Rx scatter support

2016-06-20 Thread Nelio Laranjeiro
zation and during MTU update. Signed-off-by: Adrien Mazarguil Signed-off-by: Vasily Philipov Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_ethdev.c | 84 + drivers/net/mlx5/mlx5_rxq.c| 73 +- drivers/net/mlx5/mlx5_rxtx.c

[dpdk-dev] [PATCH v3 00/25] Refactor mlx5 to improve performance

2016-06-21 Thread Nelio Laranjeiro
d spurious compilation errors mlx5: remove redundant Rx queue initialization code mlx5: make Rx queue reinitialization safer mlx5: resurrect Rx scatter support Nelio Laranjeiro (16): drivers: fix PCI class id support mlx5: split memory registration function mlx5: remove Tx gather supp

[dpdk-dev] [PATCH v3 02/25] mlx5: split memory registration function

2016-06-21 Thread Nelio Laranjeiro
function. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile| 1 + drivers/net/mlx5/mlx5_mr.c | 277 +++ drivers/net/mlx5/mlx5_rxtx.c | 209 ++-- drivers/net/mlx5/mlx5_rxtx.h

[dpdk-dev] [PATCH v3 01/25] drivers: fix PCI class id support

2016-06-21 Thread Nelio Laranjeiro
Fixes: 701c8d80c820 ("pci: support class id probing") Signed-off-by: Nelio Laranjeiro --- drivers/crypto/qat/rte_qat_cryptodev.c | 5 + drivers/net/mlx4/mlx4.c| 18 ++ drivers/net/mlx5/mlx5.c| 24 drive

[dpdk-dev] [PATCH v3 03/25] mlx5: remove Tx gather support

2016-06-21 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. TX gather cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c | 2

[dpdk-dev] [PATCH v3 04/25] mlx5: remove Rx scatter support

2016-06-21 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. RX scatter cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c

[dpdk-dev] [PATCH v3 05/25] mlx5: remove configuration variable

2016-06-21 Thread Nelio Laranjeiro
There is no scatter/gather support anymore, CONFIG_RTE_LIBRTE_MLX5_SGE_WR_N has no purpose and can be removed. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 7 --- drivers/net/mlx5/Makefile| 4

[dpdk-dev] [PATCH v3 06/25] mlx5: remove inline Tx support

2016-06-21 Thread Nelio Laranjeiro
Inline TX will be fully managed by the PMD after Verbs is bypassed in the data path. Remove the current code until then. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 10 -- drivers/net/mlx5/Makefile

[dpdk-dev] [PATCH v3 07/25] mlx5: split Tx queue structure

2016-06-21 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure txq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c| 21 +++-- drivers/net/mlx5/mlx5_ethdev.c | 27 +++--- drivers/net/mlx5

[dpdk-dev] [PATCH v3 08/25] mlx5: split Rx queue structure

2016-06-21 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure rxq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c | 6 +- drivers/net/mlx5/mlx5_fdir.c | 8 +- drivers/net/mlx5/mlx5_rxq.c

[dpdk-dev] [PATCH v3 09/25] mlx5: update prerequisites for upcoming enhancements

2016-06-21 Thread Nelio Laranjeiro
The latest version of Mellanox OFED exposes hardware definitions necessary to implement data path operation bypassing Verbs. Update the minimum version requirement to MLNX_OFED >= 3.3 and clean up compatibility checks for previous releases. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adr

[dpdk-dev] [PATCH v3 10/25] mlx5: add definitions for data path without Verbs

2016-06-21 Thread Nelio Laranjeiro
These structures and macros extend those exposed by libmlx5 (in mlx5_hw.h) to let the PMD manage work queue and completion queue elements directly. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_prm.h | 163

[dpdk-dev] [PATCH v3 11/25] mlx5: add support for configuration through kvargs

2016-06-21 Thread Nelio Laranjeiro
The intent is to replace the remaining compile-time options and environment variables with a common mean of runtime configuration. This commit only adds the kvargs handling code, subsequent commits will update the rest. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil

[dpdk-dev] [PATCH v3 12/25] mlx5: add Tx/Rx burst function selection wrapper

2016-06-21 Thread Nelio Laranjeiro
These wrappers are meant to prevent code duplication later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.h| 2 ++ drivers/net/mlx5/mlx5_ethdev.c | 34 -- drivers/net/mlx5/mlx5_txq.c| 2 +- 3 files

[dpdk-dev] [PATCH v3 13/25] mlx5: refactor Rx data path

2016-06-21 Thread Nelio Laranjeiro
Bypass Verbs to improve RX performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil Signed-off-by: Vasily Philipov --- drivers/net/mlx5/mlx5_ethdev.c | 4 +- drivers/net/mlx5/mlx5_fdir.c | 2 +- drivers/net/mlx5/mlx5_rxq.c| 303

[dpdk-dev] [PATCH v3 14/25] mlx5: refactor Tx data path

2016-06-21 Thread Nelio Laranjeiro
Bypass Verbs to improve Tx performance. Signed-off-by: Nelio Laranjeiro Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile | 5 - drivers/net/mlx5/mlx5_ethdev.c | 10 +- drivers/net/mlx5/mlx5_mr.c | 4 +- drivers/net/mlx5/mlx5_rxtx.c

[dpdk-dev] [PATCH v3 15/25] mlx5: handle Rx CQE compression

2016-06-21 Thread Nelio Laranjeiro
empty CQE64 entries are handed back to HW without further processing. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil Signed-off-by: Olga Shern Signed-off-by: Vasily Philipov --- doc/guides/nics/mlx5.rst | 6 + drivers/net/mlx5/mlx5.c | 25 - drivers/net/mlx5

[dpdk-dev] [PATCH v3 16/25] mlx5: replace countdown with threshold for Tx completions

2016-06-21 Thread Nelio Laranjeiro
etions during a burst. Completions are now requested at most once per burst after threshold is reached. Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro Signed-off-by: Vasily Philipov --- drivers/net/mlx5/mlx5_defs.h | 7 +-- drivers/net/mlx5/mlx5_rxtx.

[dpdk-dev] [PATCH v3 17/25] mlx5: add support for inline send

2016-06-21 Thread Nelio Laranjeiro
causes a performance bottleneck. Signed-off-by: Yaacov Hazan Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- doc/guides/nics/mlx5.rst | 17 +++ drivers/net/mlx5/mlx5.c| 13 ++ drivers/net/mlx5/mlx5.h| 2 + drivers/net/mlx5/mlx5_ethdev.c | 5 + drivers/ne

[dpdk-dev] [PATCH v3 19/25] mlx5: add debugging information about Tx queues capabilities

2016-06-21 Thread Nelio Laranjeiro
From: Adrien Mazarguil Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_txq.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index 4f17fb0..bae9f3d 100644 --- a/drivers/net/mlx5/mlx5_txq.c

[dpdk-dev] [PATCH v3 20/25] mlx5: check remaining space while processing Tx burst

2016-06-21 Thread Nelio Laranjeiro
From: Adrien Mazarguil The space necessary to store segmented packets cannot be known in advance and must be verified for each of them. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_rxtx.c | 136 ++- 1 file

[dpdk-dev] [PATCH v3 21/25] mlx5: resurrect Tx gather support

2016-06-21 Thread Nelio Laranjeiro
a non negligible amount of memory to handle oversized mbufs. The resulting code is both lighter and faster. Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxtx.c | 231 +-- drivers/net/mlx5/mlx5_txq.c | 6 +- 2

[dpdk-dev] [PATCH v3 22/25] mlx5: work around spurious compilation errors

2016-06-21 Thread Nelio Laranjeiro
From: Adrien Mazarguil Since commit "mlx5: resurrect Tx gather support", older GCC versions (such as 4.8.5) may complain about the following: mlx5_rxtx.c: In function `mlx5_tx_burst': mlx5_rxtx.c:705:25: error: `wqe' may be used uninitialized in this function

[dpdk-dev] [PATCH v3 23/25] mlx5: remove redundant Rx queue initialization code

2016-06-21 Thread Nelio Laranjeiro
From: Adrien Mazarguil <adrien.mazarg...@6wind.com> Toggling RX checksum offloads is already done at initialization time. This code does not belong in rxq_rehash(). Signed-off-by: Adrien Mazarguil Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxq.c | 10 -- 1 file c

[dpdk-dev] [PATCH v3 24/25] mlx5: make Rx queue reinitialization safer

2016-06-21 Thread Nelio Laranjeiro
From: Adrien Mazarguil The primary purpose of rxq_rehash() function is to stop and restart reception on a queue after re-posting buffers. This may fail if the array that temporarily stores existing buffers for reuse cannot be allocated. Update rxq_rehash() to work on

[dpdk-dev] [PATCH v3 25/25] mlx5: resurrect Rx scatter support

2016-06-21 Thread Nelio Laranjeiro
zation and during MTU update. Signed-off-by: Adrien Mazarguil Signed-off-by: Vasily Philipov Signed-off-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_ethdev.c | 84 + drivers/net/mlx5/mlx5_rxq.c| 73 +- drivers/net/mlx5/mlx5_rxtx.c

[dpdk-dev] [PATCH 00/25] Refactor mlx5 to improve performance

2016-06-22 Thread Nelio Laranjeiro
remaining space while processing Tx burst mlx5: resurrect Tx gather support mlx5: work around spurious compilation errors mlx5: remove redundant Rx queue initialization code mlx5: make Rx queue reinitialization safer mlx5: resurrect Rx scatter support Nelio Laranjeiro (16): drivers: fix

[dpdk-dev] [PATCH v4 01/25] drivers: fix PCI class id support

2016-06-22 Thread Nelio Laranjeiro
Fixes: 701c8d80c820 ("pci: support class id probing") Signed-off-by: Nelio Laranjeiro --- drivers/crypto/qat/rte_qat_cryptodev.c | 5 + drivers/net/mlx4/mlx4.c| 18 ++ drivers/net/mlx5/mlx5.c| 24 drive

[dpdk-dev] [PATCH v4 02/25] mlx5: split memory registration function

2016-06-22 Thread Nelio Laranjeiro
function. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/Makefile| 1 + drivers/net/mlx5/mlx5_mr.c | 277 +++ drivers/net/mlx5/mlx5_rxtx.c | 209 ++-- drivers/net/mlx5/mlx5_rxtx.h

[dpdk-dev] [PATCH v4 03/25] mlx5: remove Tx gather support

2016-06-22 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. TX gather cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c | 2

[dpdk-dev] [PATCH v4 04/25] mlx5: remove Rx scatter support

2016-06-22 Thread Nelio Laranjeiro
This is done in preparation of bypassing Verbs entirely for the data path as a performance improvement. RX scatter cannot be maintained during the transition and will be reimplemented later. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c

[dpdk-dev] [PATCH v4 05/25] mlx5: remove configuration variable

2016-06-22 Thread Nelio Laranjeiro
There is no scatter/gather support anymore, CONFIG_RTE_LIBRTE_MLX5_SGE_WR_N has no purpose and can be removed. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 7 --- drivers/net/mlx5/Makefile| 4

[dpdk-dev] [PATCH v4 06/25] mlx5: remove inline Tx support

2016-06-22 Thread Nelio Laranjeiro
Inline TX will be fully managed by the PMD after Verbs is bypassed in the data path. Remove the current code until then. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- config/common_base | 1 - doc/guides/nics/mlx5.rst | 10 -- drivers/net/mlx5/Makefile

[dpdk-dev] [PATCH v4 08/25] mlx5: split Rx queue structure

2016-06-22 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure rxq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c | 6 +- drivers/net/mlx5/mlx5_fdir.c | 8 +- drivers/net/mlx5/mlx5_rxq.c

[dpdk-dev] [PATCH v4 07/25] mlx5: split Tx queue structure

2016-06-22 Thread Nelio Laranjeiro
To keep the data path as efficient as possible, move fields only useful to the control path into new structure txq_ctrl. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5.c| 21 +++-- drivers/net/mlx5/mlx5_ethdev.c | 28 +++--- drivers/net/mlx5

[dpdk-dev] [PATCH v4 09/25] mlx5: update prerequisites for upcoming enhancements

2016-06-22 Thread Nelio Laranjeiro
The latest version of Mellanox OFED exposes hardware definitions necessary to implement data path operation bypassing Verbs. Update the minimum version requirement to MLNX_OFED >= 3.3 and clean up compatibility checks for previous releases. Signed-off-by: Nelio Laranjeiro Signed-off-by: Adr

  1   2   3   >