[dpdk-dev] [PATCH 00/16] mlx4: MOFED 3.0 support, bugfixes and enhancements

2015-06-06 Thread Adrien Mazarguil
This patchset adds compatibility with the upcoming Mellanox OFED 3.0 release (new kernel drivers and userland support libraries), which supports new features such as L3/L4 checksum validation offloads and addresses several bugs and limitations at the same time. Adrien Mazarguil (3): mlx4: add MO

[dpdk-dev] [PATCH 01/16] mlx4: add MOFED 3.0 compatibility to interfaces names retrieval

2015-06-06 Thread Adrien Mazarguil
Since Mellanox OFED 3.0 and Linux 3.15, interface port numbers are stored in dev_port instead of dev_id sysfs files. Signed-off-by: Or Ami Signed-off-by: Nitzan Weller Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 51 + 1 file cha

[dpdk-dev] [PATCH 02/16] mlx4: use experimental verbs for polling and completions

2015-06-06 Thread Adrien Mazarguil
This API implements additional flags in work completions that are required to support checksum offloads. Signed-off-by: Gilad Berman Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/n

[dpdk-dev] [PATCH 03/16] mlx4: make sure experimental device query function is implemented

2015-06-06 Thread Adrien Mazarguil
From: Olga Shern HAVE_EXP_QUERY_DEVICE is used to check whether ibv_exp_query_device() can be used. RSS and inline receive features depend on it. Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/Makefile | 4 drivers/net/mlx4/mlx4.c | 17 ++---

[dpdk-dev] [PATCH 04/16] mlx4: add L3 and L4 RX checksum offload support

2015-06-06 Thread Adrien Mazarguil
From: Gilad Berman Mellanox ConnectX-3 adapters can handle L3 (IPv4) and L4 (TCP, UDP, TCP6, UDP6) RX checksums validation, with and without 802.1Q (VLAN) headers. Signed-off-by: Gilad Berman Signed-off-by: Adrien Mazarguil Acked-by: Guillaume Gaudonville --- drivers/net/mlx4/mlx4.c | 63 +++

[dpdk-dev] [PATCH 05/16] mlx4: add L2 tunnel (VXLAN) RX checksum offload support

2015-06-06 Thread Adrien Mazarguil
Depending on adapters features and VXLAN support in the kernel, VXLAN frames can be automatically recognized, in which case checksum validation occurs on inner and outer L3 and L4. Signed-off-by: Adrien Mazarguil Acked-by: Guillaume Gaudonville --- drivers/net/mlx4/mlx4.c | 34 +

[dpdk-dev] [PATCH 06/16] mlx4: use faster CQ polling function

2015-06-06 Thread Adrien Mazarguil
From: Alex Rosenbaum Replace ibv_exp_poll_cq() with direct function call to improve performance. Signed-off-by: Alex Rosenbaum Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c

[dpdk-dev] [PATCH 07/16] mlx4: update optimized steering warning message

2015-06-06 Thread Adrien Mazarguil
From: Olga Shern This feature is now also supported in VMs. Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 1b86e58..061f5e

[dpdk-dev] [PATCH 08/16] mlx4: avoid looking up WR ID to improve RX performance

2015-06-06 Thread Adrien Mazarguil
From: Alex Rosenbaum This is done by storing the current index in the RX queue structure. Signed-off-by: Alex Rosenbaum Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 24 ++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx4/ml

[dpdk-dev] [PATCH 09/16] mlx4: merge RX queue setup functions

2015-06-06 Thread Adrien Mazarguil
From: Alex Rosenbaum Make rxq_setup_qp() handle inline support like rxq_setup_qp_rss() instead of having two separate functions. Signed-off-by: Alex Rosenbaum Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 62 - 1 file changed, 15

[dpdk-dev] [PATCH 10/16] mlx4: allow applications to use fork() safely

2015-06-06 Thread Adrien Mazarguil
From: Olga Shern Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index f7186fa..cc16e8c 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4

[dpdk-dev] [PATCH 11/16] mlx4: improve accuracy of link status information

2015-06-06 Thread Adrien Mazarguil
From: Olga Shern Query interface properties using the ethtool API instead of Verbs through ibv_query_port(). The returned information is more accurate for Ethernet links since several link speeds cannot be mapped to Verbs semantics. Signed-off-by: Olga Shern Signed-off-by: Alex Rosenbaum Signe

[dpdk-dev] [PATCH 12/16] mlx4: add support for upstream flow steering API

2015-06-06 Thread Adrien Mazarguil
From: Alex Rosenbaum This commit makes librte_pmd_mlx4 support both the extended Verbs API from upstream and the original experimental Verbs API. Signed-off-by: Olga Shern Signed-off-by: Alex Rosenbaum Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/Makefile | 4 +++ drivers/net/mlx4/m

[dpdk-dev] [PATCH 13/16] mlx4: fix error message for invalid number of descriptors

2015-06-06 Thread Adrien Mazarguil
From: Or Ami The number of descriptors must be a multiple of MLX4_PMD_SGE_WR_N. Signed-off-by: Or Ami Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c b/driver

[dpdk-dev] [PATCH 14/16] mlx4: remove provision for flow creation failure in DMFS A0 mode

2015-06-06 Thread Adrien Mazarguil
From: Or Ami Starting from MLNX_OFED 3.0 FW 2.34.5000 when working with optimized steering mode (-7) QPs can be attached to the port's MAC, therefore no need for the check. Signed-off-by: Or Ami Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 20 --

[dpdk-dev] [PATCH 15/16] mlx4: fix support for multiple VLAN filters

2015-06-06 Thread Adrien Mazarguil
From: Olga Shern This commit fixes the "Multiple RX VLAN filters can be configured, but only the first one works" bug. Since a single flow specification cannot contain several VLAN definitions, the flows table is extended with MLX4_MAX_VLAN_IDS possible specifications per configured MAC address.

[dpdk-dev] [PATCH 16/16] mlx4: query netdevice to get initial MAC address

2015-06-06 Thread Adrien Mazarguil
From: Or Ami Querying the netdevice instead of deriving the port's MAC address from its GID is less prone to errors. There is no guarantee that the GID will always contain it nor that the algorithm won't change. Signed-off-by: Or Ami Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil -

[dpdk-dev] [PATCH v2 0/7] dynamic memzone

2015-06-06 Thread Sergio Gonzalez Monroy
Current implemetation allows reserving/creating memzones but not the opposite (unreserve/free). This affects mempools and other memzone based objects. >From my point of view, implementing free functionality for memzones would look like malloc over memsegs. Thus, this approach moves malloc inside e

[dpdk-dev] [PATCH v2 3/7] app/test: update malloc/memzone unit tests

2015-06-06 Thread Sergio Gonzalez Monroy
Some unit test are not relevant anymore. It is the case of those malloc UTs that checked corner cases when allocating MALLOC_MEMZONE_SIZE chunks, and the case of those memzone UTs relaying of specific free memsegs of rhte reserved memzone. Other UTs just need to be update, for example, to calculat

[dpdk-dev] [PATCH v2 4/7] config: remove CONFIG_RTE_MALLOC_MEMZONE_SIZE

2015-06-06 Thread Sergio Gonzalez Monroy
This ocnfig option is not used anymore and thus remove. Signed-off-by: Sergio Gonzalez Monroy --- config/common_bsdapp | 1 - config/common_linuxapp | 1 - 2 files changed, 2 deletions(-) diff --git a/config/common_bsdapp b/config/common_bsdapp index 5d3cc39..cf495ad 100644 --- a/config/commo

[dpdk-dev] [PATCH v2 6/7] eal: new rte_memzone_free

2015-06-06 Thread Sergio Gonzalez Monroy
Implement rte_memzone_free which, as its name implies, would free a memzone. Currently memzone are tracked in an array and cannot be free. To be able to reuse the same array to track memzones, we have to change how we keep track of reserved memzones. With this patch, any memzone with addr NULL is

[dpdk-dev] [PATCH v2 1/7] eal: move librte_malloc to eal/common

2015-06-06 Thread Sergio Gonzalez Monroy
This patch moves the malloc library inside the eal. This is the first step towards using malloc to allocate memory directly from memsegs. Thus, memzones would allocate memory through malloc, allowing unreserve/free memzones. Signed-off-by: Sergio Gonzalez Monroy --- config/common_bsdapp

[dpdk-dev] [PATCH v2 7/7] app/test: update unit test with rte_memzone_free

2015-06-06 Thread Sergio Gonzalez Monroy
Update memzone unit test for the new rte_memzone_free API. Signed-off-by: Sergio Gonzalez Monroy --- app/test/test_memzone.c | 49 + 1 file changed, 49 insertions(+) diff --git a/app/test/test_memzone.c b/app/test/test_memzone.c index c5e4872..766

[dpdk-dev] [PATCH v2 5/7] eal: remove setup of free_memseg in ivshmem

2015-06-06 Thread Sergio Gonzalez Monroy
Remove code setting up free_memseg as it is not used/relevant anymore. Signed-off-by: Sergio Gonzalez Monroy --- lib/librte_eal/linuxapp/eal/eal_ivshmem.c | 9 - 1 file changed, 9 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_ivshmem.c b/lib/librte_eal/linuxapp/eal/eal_ivsh

[dpdk-dev] [PATCH v2 2/7] eal: memzone allocated by malloc

2015-06-06 Thread Sergio Gonzalez Monroy
In the current memory hierarchy, memsegs are groups of physically contiguous hugepages, memzones are slices of memsegs and malloc further slices memzones into smaller memory chunks. This patch modifies malloc so it partitions memsegs instead of memzones. Thus memzones would call malloc internally

[dpdk-dev] 4 Traffic classes per Pipe limitation

2015-06-06 Thread Michael Sardo
Hello Cristian, Are the slides shown in that video available? They're very helpful. -Mike On Fri, Jun 5, 2015 at 4:50 PM, Dumitrescu, Cristian < cristian.dumitrescu at intel.com> wrote: > Hi Avinash, > > > -Original Message- > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ye

[dpdk-dev] 4 Traffic classes per Pipe limitation

2015-06-06 Thread Michael Sardo
Oops, I should have searched a bit more before asking. I see that they've already been made available: http://dpdk.org/ml/archives/dev/attachments/20150423/17a4d8de/attachment-0001.pdf Thanks. -Mike On Sat, Jun 6, 2015 at 5:05 PM, Michael Sardo wrote: > Hello Cristian, > > Are the slides shown

[dpdk-dev] 4 Traffic classes per Pipe limitation

2015-06-06 Thread Dumitrescu, Cristian
No problem, Mike. Enjoy! From: Michael Sardo [mailto:m...@bandex.io] Sent: Sunday, June 7, 2015 12:24 AM To: Dumitrescu, Cristian Cc: Yeddula, Avinash; dev at dpdk.org Subject: Re: [dpdk-dev] 4 Traffic classes per Pipe limitation Oops, I should have searched a bit more before asking. I see that t

[dpdk-dev] [PATCH] eal:Fix log messages always being printed from rte_eal_cpu_init

2015-06-06 Thread Keith Wiles
The RTE_LOG(DEBUG, ...) messages in rte_eal_cpu_init() are printed even when the log level on the command line was set to INFO or lower. The problem is the rte_eal_cpu_init() routine was called before the command line args are scanned. Setting --log-level=7 now correctly does not print the message

[dpdk-dev] [PATCH] log:Change magic number on RTE_LOG_LEVEL to a define

2015-06-06 Thread Keith Wiles
Config files used RTE_LOG_LEVEL=8 to set log level to DEBUG. Using a the RTE_LOG_ is easier to maintain. Converted the RTE_LOG_ defines into a enum of values with the same names for to reduct maintaining the values and allow debuggers to print the name of the value. Signed-off-by: Keith W