Phil Yang [Tue, 6 Aug 2019 08:45:26 +0000 (16:45 +0800)]
net/memif: fix multi-process Tx
When working as a secondary process, it uses eth_memif_rx in PMD egress.
It should be eth_memif_tx.
Fixes:
c41a04958b ("net/memif: support multi-process")
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Jakub Grajciar [Mon, 5 Aug 2019 09:07:32 +0000 (11:07 +0200)]
net/memif: fix error paths
Coverity issue: 343440, 343459, 343464, 343394
Fixes:
09c7e63a71f9 ("net/memif: introduce memory interface PMD")
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Xiaoyun Li [Mon, 5 Aug 2019 05:57:28 +0000 (13:57 +0800)]
examples/ntb: fix error handling
This patch adds return value checking for fseek function to fix
error handling issue found by coverity scan.
Coverity issue: 344996
Fixes:
c5eebf85badc ("examples/ntb: add example for NTB")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Xiaoyun Li [Mon, 5 Aug 2019 05:02:47 +0000 (13:02 +0800)]
raw/ntb: fix null pointer dereference
This patch fixes null pointer dereference issues found by coverity scan.
Coverity issue: 344981, 344991, 345000, 345002, 345006, 345024
Fixes:
277310027965 ("raw/ntb: introduce NTB raw device driver")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
Raslan Darawsheh [Tue, 6 Aug 2019 07:01:52 +0000 (07:01 +0000)]
doc: add tested platforms with Mellanox NICs
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Kalesh AP [Thu, 1 Aug 2019 15:45:20 +0000 (08:45 -0700)]
net/bnxt: fix traffic stall on Rx queue stop/start
Fixed a check in bnxt_alloc_hwrm_rx_ring() while initializing
the rx ring.
Driver should not change "deferred_start" status of rx/tx queues.
It should get the status in queue_setup_op() and use that value.
Fixes:
9b63c6fd70e3 ("net/bnxt: support Rx/Tx queue start/stop")
Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Vamsi Attunuru [Fri, 2 Aug 2019 06:57:16 +0000 (12:27 +0530)]
common/octeontx2: fix mbox memory access
Octeontx2 PMD's mailbox client uses device memory to send messages
to mailbox server in the admin function Linux kernel driver.
The device memory used for the mailbox communication needs to
be qualified as volatile memory type to avoid unaligned device
memory accesses because of compiler's memory access coalescing.
This patch modifies the mailbox request and responses as volatile
type which were non-volatile earlier and accessed from unaligned
memory addresses which resulted in bus errors on Fedora 30 with
gcc 9.1.1.
Fixes:
2b71657c8660 ("common/octeontx2: add mbox request and response definition")
Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Liron Himi [Mon, 5 Aug 2019 10:16:56 +0000 (13:16 +0300)]
net/mvpp2: remove resources when port is closed
Since 18.11, it is suggested that driver should release all its private
resources at the dev_close routine. So all resources previously released
in remove routine are now released at the dev_close routine, and the
dev_close routine will be called in driver remove routine in order to
support removing a device without closing its ports.
Above behavior changes are supported by setting RTE_ETH_DEV_CLOSE_REMOVE
flag during probe stage.
Signed-off-by: Liron Himi <lironh@marvell.com>
Reviewed-by: Yuri Chipchev <yuric@marvell.com>
Amit Gupta [Mon, 5 Aug 2019 08:00:44 +0000 (13:30 +0530)]
net/thunderx: fix crash on detach
Fix the PCIe detach segfault by releasing eth_dev resources
by adding nicvf cleanup support on PCI detach.
Fixes:
fdf91e0f2fac ("drivers/net: do not use ethdev driver")
Cc: stable@dpdk.org
Signed-off-by: Amit Gupta <agupta3@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Harman Kalra [Sun, 4 Aug 2019 07:20:52 +0000 (07:20 +0000)]
drivers/octeontx2: fix Coverity warnings
Addressed issues reported by coverity: NULL pointer dereferencing
issues, unchecked return value, uinitialized scalar value,
probable deadcode cases, unintended sign extension, bad bit
shift operation, Wrong sizeof argument (SIZEOF_MISMATCH)
Coverity issue: 343396, 345028, 344977, 345015, 345025, 344969
Coverity issue: 345014, 344966, 343437, 344993, 345007, 344988
Coverity issue: 343405, 344999, 345003
Fixes:
58f6f93c34c1 ("net/octeontx2: add module EEPROM dump")
Fixes:
38f566280abb ("net/octeontx2: add link stats operations")
Fixes:
b5dc3140448e ("net/octeontx2: support base PTP")
Fixes:
ba1b3b081edf ("net/octeontx2: support VLAN offloads")
Fixes:
092b38341859 ("net/octeontx2: add flow init and fini")
Fixes:
3da1b85b6d06 ("common/octeontx2: add FLR IRQ handler")
Fixes:
2548ab774f92 ("mempool/octeontx2: add context dump support")
Fixes:
2b71657c8660 ("common/octeontx2: add mbox request and response definition")
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Nithin Dabilpuram [Mon, 5 Aug 2019 05:40:51 +0000 (11:10 +0530)]
net/octeontx2: support 96xx A1 silicon revision
Update workaround changes for erratas that are fixed on 96xx A1.
This patch also enables cq drop for all the passes for
maintaining performance along with updating a default
Rx ring size in dev_info.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Vamsi Attunuru [Mon, 5 Aug 2019 15:37:39 +0000 (21:07 +0530)]
net/octeontx2: fix optimal default SQE buffer count
Patch extends minimum supported max_sqb_count devarg value
such that it can limit the max sqb count to 8 buffers and
also defines NIX_DEF_SQB and uses it to compute the number
of sqe buffers required for the egress traffic.
NIX_DEF_SQB is defined as 16 which is optimal across multiple
octeontx2 platforms to scale up the performance proportional
to the corresponding port/queue to lcore mappings.
Fixes:
fb0198b7dc07 ("net/octeontx2: add devargs parsing functions")
Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Jerin Jacob [Sat, 3 Aug 2019 18:42:19 +0000 (00:12 +0530)]
common/octeontx2: update ready message response
The kernel mbox server driver(AF) updated the ready
message response. Sync with AF driver.
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Jerin Jacob [Tue, 30 Jul 2019 14:27:19 +0000 (19:57 +0530)]
net/octeontx2: drop Rx and L2 error packets
From B0 HW revision onwards, HW can drop the Rx and L2 error packets.
Enable this by default if the feature is available.
Since this bit field is used as reserved in old HW revisions,
No need to have additional HW version check.
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Jerin Jacob [Wed, 31 Jul 2019 15:45:49 +0000 (21:15 +0530)]
doc: add tested Marvell integrated NIC platforms
Add tested Marvell integrated NIC platforms to v19.08 release note.
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Rasesh Mody [Mon, 5 Aug 2019 09:19:54 +0000 (02:19 -0700)]
doc: add co-existence consideration for qede
Add and update co-existence considerations for qede PMD
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com>
Rasesh Mody [Mon, 5 Aug 2019 09:24:26 +0000 (02:24 -0700)]
doc: add co-existence consideration for bnx2x
Add and update co-existence considerations for bnx2x PMD
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com>
Rasesh Mody [Mon, 5 Aug 2019 09:24:25 +0000 (02:24 -0700)]
doc: use SPDX tag for bnx2x guide
Use SPDX tag for bnx2x PMD guide
Signed-off-by: Rasesh Mody <rmody@marvell.com>
Maciej Bielski [Thu, 1 Aug 2019 11:45:36 +0000 (13:45 +0200)]
net/ena: fix L4 checksum Tx offload
During an if-condition evaluation, a 2-bit flag evaluates to 'true' for
'0x1', '0x2' and '0x3'. Thus, from this perspective these flags are
indistinguishable. To make them distinct, respective bits must be
extracted with a mask and then checked for strict equality.
Specifically here, even if `PKT_TX_UDP_CKSUM` (value '0x3') was set, the
expression `mbuf->ol_flags & PKT_TX_TCP` (the second flag of value
'0x1') is evaluated first and the result is 'true'. In consequence, for
UDP packets the execution flow enters an incorrect branch.
Fixes:
56b8b9b7e5d2 ("net/ena: convert to new Tx offloads API")
Cc: stable@dpdk.org
Reported-by: Eduard Serra <eserra@vmware.com>
Signed-off-by: Maciej Bielski <mba@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
Hemant Agrawal [Thu, 25 Jul 2019 11:06:45 +0000 (16:36 +0530)]
net/virtio: fix build with 0 headroom
When using RTE_PKTMBUF_HEADROOM as 0, virito ethdev driver throws
compilation error
virtio_ethdev.c:1851:2: note: in expansion of macro ‘RTE_BUILD_BUG_ON’
RTE_BUILD_BUG_ON(RTE_PKTMBUF_HEADROOM
< sizeof(struct virtio_net_hdr_mrg_rxbuf));
This patch change it into run-time check.
Bugzilla ID: 335
Fixes:
dec08c28c0b3 ("virtio: check packet headroom at compile time")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Hemant Agrawal [Thu, 25 Jul 2019 11:06:44 +0000 (16:36 +0530)]
bus/fslmc: fix build with 0 headroom
When using RTE_PKTMBUF_HEADROOM as 0, dpaa driver throws compilation error
error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM"
This patch change it into run-time check.
Bugzilla ID: 335
Fixes:
beb2a7865dda ("bus/fslmc: define hardware annotation area size")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Thu, 25 Jul 2019 11:06:43 +0000 (16:36 +0530)]
net/dpaa: fix build with 0 headroom
When using RTE_PKTMBUF_HEADROOM as 0, dpaa driver throws compilation error
error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM"
This patch change it into run-time check.
Bugzilla ID: 335
Fixes:
ff9e112d7870 ("net/dpaa: add NXP DPAA PMD driver skeleton")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Thomas Monjalon [Tue, 30 Jul 2019 17:34:14 +0000 (19:34 +0200)]
devtools: allow misc options in null test
In order to ease basic testing with customized options,
EAL and testpmd options can be added as third and fourth arguments
of the "null PMD" script.
Also, the first argument becomes more flexible by accepting
the testpmd path as an alternative to the build directory.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Thomas Monjalon [Tue, 30 Jul 2019 17:34:13 +0000 (19:34 +0200)]
devtools: restore null test
This small testpmd test was not working for a long time
because of several changes in EAL and mempool.
The 3 main issues solved are:
- Make --no-huge working by specifying an amount of memory
to allocate in legacy mode, and disabling mlockall.
- Load a mempool handler in shared library case.
- Support meson
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
David Christensen [Tue, 30 Jul 2019 20:01:58 +0000 (15:01 -0500)]
replace license text with SPDX tag on PPC files
Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Hemant Agrawal [Tue, 5 Jun 2018 07:50:22 +0000 (13:20 +0530)]
doc: replace tools guide license with SPDX tag
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Maxime Coquelin [Fri, 2 Aug 2019 06:59:09 +0000 (08:59 +0200)]
vhost: replace IOTLB license with SPDX tag
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Maxime Coquelin [Fri, 2 Aug 2019 07:00:02 +0000 (09:00 +0200)]
doc: replace PVP guide license with SPDX tag
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Zhaoyan Chen [Mon, 29 Jul 2019 03:36:21 +0000 (11:36 +0800)]
doc: update supported i40e driver and firmware version
Update supported Intel NIC driver version and firmware version
Signed-off-by: Zhaoyan Chen <zhaoyan.chen@intel.com>
Stephen Hemminger [Fri, 2 Aug 2019 02:51:54 +0000 (19:51 -0700)]
app/testpmd: use exit instead of panic
rte_panic causes a backtrace (which is uniformative since all
these calls are in main). Instead use rte_exit and try and make the
messages informative.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Stephen Hemminger [Fri, 2 Aug 2019 02:51:53 +0000 (19:51 -0700)]
app/testpmd: block secondary process
Since testpmd has several issues which keep it from working correctly
as a secondary process; abort if user tries to do it, rather than
running into later problems.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Fri, 2 Aug 2019 02:51:52 +0000 (19:51 -0700)]
app/testpmd: allow log level on command line
Since testpmd registers log type after processing command
line arguments, it is not possible to do:
# testpmd --log-level='testpmd:info' ...
Fix this by initializing logtype first.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Wed, 31 Jul 2019 14:57:38 +0000 (07:57 -0700)]
remove extra blank lines at end of files
There should not be blank lines at end of files.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
David Marchand [Wed, 31 Jul 2019 12:27:16 +0000 (14:27 +0200)]
ethdev: sort experimental symbols per release
Sort the experimental symbols per release to make it easier/quicker to
check for how long we have them.
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
David Marchand [Mon, 5 Aug 2019 06:23:26 +0000 (08:23 +0200)]
bus/pci: always check IOMMU capabilities
IOMMU capabilities won't change and must be checked even if no PCI device
seem to be supported yet when EAL initialised.
This is to accommodate with SPDK that registers its drivers after
rte_eal_init(), especially on PPC platform where the IOMMU does not
support VA.
Fixes:
703458e19c16 ("bus/pci: consider only usable devices for IOVA mode")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Takeshi Yoshimura <tyos@jp.ibm.com>
David Marchand [Fri, 2 Aug 2019 09:54:01 +0000 (11:54 +0200)]
bus/pci: remove unused x86 Linux constant
This macro is unused after a previous fix.
Fixes:
fe822eb8c565 ("bus/pci: use IOVA DMA mask check when setting IOVA mode")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
David Marchand [Wed, 31 Jul 2019 12:07:33 +0000 (14:07 +0200)]
eal: hide internal function
This function has never been used outside of this code unit.
Mark it static and remove it from the eal internal header.
Fixes:
9e29251b2afa ("eal: thread affinity API")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Thomas Monjalon [Tue, 30 Jul 2019 17:21:53 +0000 (19:21 +0200)]
eal: warn on legacy memory allocation requirement
When using --no-huge mode, dynamic allocation is not supported.
Because of this limitation, the option --legacy-mem is implied
and -m may be needed to specify the amount of memory to allocate.
Otherwise the default amount MEMSIZE_IF_NO_HUGE_PAGE will be allocated.
The option --socket-mem can also be used with --legacy-mem
when hugepages are supported.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Aaron Conole [Fri, 2 Aug 2019 21:25:52 +0000 (17:25 -0400)]
ci: enable unit tests with Travis
When building under Travis (or another linux CI service), enable
running the fast-tests when the RUN_TESTS environment variable is set.
For the Travis service, introduce two new shared builds, since the
shared builds are the ones passing. Builds that are statically
linked still show some issues in some of the eal_flags tests. We make
new builds for this, rather than piggybacking, because 'at a glance'
it is difficult to determine why a build fails, and if tests were
enabled for all builds, then looking at the logs for any build would
take a significant amount of time.
Finally, the command to invoke fast tests includes a timeout
multiplier, since some CI environments don't have enough resources to
complete the tests in the default 10s timeout period.
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Michael Santana <msantana@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Michael Santana [Fri, 2 Aug 2019 21:25:51 +0000 (17:25 -0400)]
test: allow running shared build without installing
Currently many unit tests fail when running tests under shared builds.
This happens because of missing driver dependencies. This is fixed by
explicitly linking in missing drivers for the test application.
before and after (clang):
https://travis-ci.com/Maickii/dpdk-2/jobs/
212329160#L623
https://travis-ci.com/Maickii/dpdk-2/jobs/
212335912#L620
Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Michael Santana <msantana@redhat.com>
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
David Marchand [Wed, 31 Jul 2019 18:56:30 +0000 (20:56 +0200)]
test/eal: fix command array sizes
Following removal of -c and -n options, the array should have been
shrunk to avoid launch_proc to access unitialised strings.
Fixes:
b4dbacdb1ad7 ("test/eal: set core mask/list config only in dedicated test")
Fixes:
501fa9a40298 ("test/eal: set memory channel config only in dedicated test")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Michael Santana <msantana@redhat.com>
David Marchand [Wed, 31 Jul 2019 07:55:34 +0000 (09:55 +0200)]
test: remove link to ixgbe/i40e with meson
The tests do not depend on ixgbe or i40e drivers, just remove this
explicit link that likely comes from a copy/paste from testpmd.
Fixes:
b5dc795a8a55 ("test: build app with meson as dpdk-test")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Aaron Conole [Wed, 31 Jul 2019 15:43:11 +0000 (11:43 -0400)]
acl: fix undefined behavior of bit shifts
Left-shift of an integer constant is represented as 'int' type, but a left
shift of 1 by 31 bits in 'int' is undefined. Use the U suffix to force
a representation as unsigned.
Caught while running with ubsan under gcc.
Fixes:
dc276b5780c2 ("acl: new library")
Cc: stable@dpdk.org
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jerin Jacob [Fri, 2 Aug 2019 05:52:45 +0000 (11:22 +0530)]
doc: fix link in release notes
Fix the following doc build warning by correcting path.
doc/guides/rel_notes/release_18_05.rst:285:
WARNING: unknown document: ../rawdevs/ifpga_rawdev
Fixes:
473c88f9b391 ("drivers/raw: remove rawdev from directory names")
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Thomas Monjalon [Tue, 30 Jul 2019 22:18:46 +0000 (00:18 +0200)]
version: 19.08-rc3
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Aaron Conole [Tue, 30 Jul 2019 21:31:23 +0000 (17:31 -0400)]
test/flow_classify: fix undefined behavior
The unit test for the flow classify introduced undefined behavior by using
a corrupted list. Remove these tests as the invalid data is impossible to
detect with the current API.
Fixes:
9c9befea4f57 ("test: add flow classify unit tests")
Cc: stable@dpdk.org
Signed-off-by: Aaron Conole <aconole@redhat.com>
Olivier Matz [Thu, 11 Jul 2019 14:25:30 +0000 (16:25 +0200)]
devtools: support FreeBSD
- As "readlink -e" and "readlink -m" do not exist on freebsd,
use "readlink -f", it should not have any impact in these cases.
- "sed -ri" is invalid on freebsd and should be replaced by
"sed -ri=''"
- Use gmake instead of make.
This fixes the following command:
SYSDIR=/usr/src/sys ./devtools/test-build.sh \
-j4 x86_64-native-freebsd-gcc
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Jerin Jacob [Wed, 17 Jul 2019 15:54:42 +0000 (21:24 +0530)]
devtools: fix building kernel component tags
Update devtools/build-tags.sh to account the kernel
components under in kernel directory.
Fixes:
acaa9ee991b5 ("move kernel modules directories")
Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Andrius Sirvys [Mon, 8 Apr 2019 13:54:41 +0000 (14:54 +0100)]
usertools: replace unsafe input function
LGTM static code analysis tool reports that the function 'input' is
unsafe. Changed to use raw_input which then converts it using
ast.literal_eval() which is safe.
Fixes:
d1b94da4a4e0 ("usertools: add client script for telemetry")
Cc: stable@dpdk.org
Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com>
Acked-by: Kevin Laatz <kevin.laatz@intel.com>
Anatoly Burakov [Thu, 25 Jul 2019 14:21:10 +0000 (15:21 +0100)]
usertools: print binding errors to stderr
Bring consistency to error messages and output them to stderr.
Also, whenever the script tells the user to "check usage", don't
tell the user to do it and just display usage instead.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Anatoly Burakov [Thu, 25 Jul 2019 14:21:09 +0000 (15:21 +0100)]
usertools: check if module is loaded before binding
Currently, if an attempt is made to bind a device to a driver that
is not loaded, a confusing and misleading error message appears.
Fix it so that, before binding to the driver, we actually check if
it is loaded in the kernel first.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Anatoly Burakov [Thu, 25 Jul 2019 14:21:08 +0000 (15:21 +0100)]
usertools: add error on missing driver to bind
A common user error is to forget driver to which the PCI devices should
be bound to. Currently, the error message in this case looks unhelpful
misleading and indecipherable to anyone but people who know how devbind
works.
Fix this by checking if the driver string is actually a valid device
string. If it is, we assume that the user has just forgot to specify the
driver, and display appropriate error. We also assume that no one will
name their driver in a format that looks like a PCI address, but that
seems like a reasonable assumption to make.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
John McNamara [Tue, 30 Jul 2019 13:24:27 +0000 (14:24 +0100)]
doc: update release notes for 19.08
Fix grammar, spelling and formatting of DPDK 19.08 release notes.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Wenjie Li [Mon, 29 Jul 2019 05:29:22 +0000 (13:29 +0800)]
doc: add tested Intel platforms with Intel NICs
Add tested Intel platforms with Intel NICs to v19.08 release note.
Signed-off-by: Wenjie Li <wenjiex.a.li@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Thomas Monjalon [Tue, 30 Jul 2019 15:06:21 +0000 (17:06 +0200)]
doc: update features supported by mlx
Flow control was not documented as a supported feature
since the first fill of features matrix for mlx drivers.
Flow API and CRC offload flag support in mlx4 were missing in the
feature matrix when they were implemented (see below commits).
Fixes:
46d5736a7049 ("net/mlx4: support basic flow items and actions")
Fixes:
ce07b1514d59 ("net/mlx4: fix CRC stripping capability report")
Fixes:
e86b85ca757b ("doc: fill nics features matrix for mlx")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Matan Azrad <matan@mellanox.com>
Thomas Monjalon [Wed, 17 Jul 2019 18:10:07 +0000 (20:10 +0200)]
doc: remove unused maintainer role from guide
The backup maintainer role is not explicitly used in the file MAINTAINERS.
Listing names in a priority order is preferred and more flexible
than explicit named roles.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Jasvinder Singh [Fri, 26 Jul 2019 16:42:15 +0000 (17:42 +0100)]
maintainers: add co-maintainer to sched library
Add myself as a co-maintainer to dpdk sched library.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
David Marchand [Tue, 30 Jul 2019 15:05:22 +0000 (17:05 +0200)]
eal: fix control thread affinity with --lcores
The ctrl thread cpu affinity setting has been broken when using --lcores.
Using -l/-c options makes each lcore associated to a physical cpu in a 1:1
fashion.
On the contrary, when using --lcores, each lcore cpu affinity can be set
to a list of any online cpu on the system.
To handle both cases, each lcore cpu affinity is considered and removed
from the process startup cpu affinity.
Introduced macros to manipulate dpdk cpu sets in both Linux and FreeBSD.
Examples on a 8 cores Linux system:
$ cd /sys/fs/cgroup/cpuset/
$ mkdir dpdk
$ cd dpdk
$ echo 4-7 > cpuset.cpus
$ echo 0 > cpuset.mems
$ echo $$ > tasks
Before the fix:
$ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
--no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
8427 cpu_list=4-5,7 testpmd
8428 cpu_list=4-6 eal-intr-thread
8429 cpu_list=4-6 rte_mp_handle
8430 cpu_list=4-5,7 lcore-slave-7
$ taskset -c 7 \
./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
--no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
EAL: Detected 8 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Failed to create thread for interrupt handling
EAL: FATAL: Cannot init interrupt-handling thread
EAL: Cannot init interrupt-handling thread
PANIC in main():
Cannot init EAL
After the fix:
$ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
--no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
15214 cpu_list=4-5,7 testpmd
15215 cpu_list=6 eal-intr-thread
15216 cpu_list=6 rte_mp_handle
15217 cpu_list=4-5,7 lcore-slave-7
$ taskset -c 7 \
./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
--no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
15297 cpu_list=4-5,7 testpmd
15298 cpu_list=4-5,7 eal-intr-thread
15299 cpu_list=4-5,7 rte_mp_handle
15300 cpu_list=4-5,7 lcore-slave-7
Bugzilla ID: 322
Fixes:
c3568ea37670 ("eal: restrict control threads to startup CPU affinity")
Cc: stable@dpdk.org
Reported-by: Johan Källström <johan.kallstrom@ericsson.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Hariprasad Govindharajan [Tue, 30 Jul 2019 13:26:38 +0000 (14:26 +0100)]
examples/l3fwd: fix unaligned memory access on x86
Fix unaligned memory access when reading IPv6 header which
leads to segmentation fault by changing aligned memory read
to unaligned memory read.
Bugzilla ID: 279
Fixes:
64d3955de1de ("examples/l3fwd: fix ARM build")
Cc: stable@dpdk.org
Signed-off-by: Hariprasad Govindharajan <hariprasad.govindharajan@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Tested-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Kalesh AP [Mon, 29 Jul 2019 21:28:25 +0000 (17:28 -0400)]
net/bnxt: set checksum flags in vector Rx
Fixed to return the checksum status of rx packets by setting
"ol_flags" correctly in vector mode receive.
These changes have been there for non vector mode receive.
In vector mode receive also indicate inner and outer checksum
errors individually in "ol_flag" to indicate L3 and L4 error.
Fixes:
bc4a000f2f53 ("net/bnxt: implement SSE vector mode")
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
Kalesh AP [Mon, 29 Jul 2019 21:28:05 +0000 (17:28 -0400)]
net/bnxt: fix context memory allocation
There is a bug in context memory allocation because of which
it results in reusing the context memory allocated for the first
port while allocating memory for next ports.
Fix it by passing the port id in the name field while
allocating context memory.
Fixes:
f8168ca0e690 ("net/bnxt: support thor controller")
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Jerin Jacob [Tue, 30 Jul 2019 11:04:06 +0000 (16:34 +0530)]
net/virtio: fix build
Add extern to variable declaration to avoid some compiler treating it
as variable definition.
build error log:
lib/librte_pmd_virtio.a(vhost_kernel.o):(.rodata+0x110):
multiple definition of `vhost_msg_strings'
lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
first defined here
lib/librte_pmd_virtio.a(virtio_user_dev.o):(.rodata+0xe8):
multiple definition of `vhost_msg_strings'
lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0):
first defined here
Fixes:
33d24d65fe2b ("net/virtio-user: abstract backend operations")
Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Bruce Richardson [Fri, 5 Jul 2019 09:34:01 +0000 (10:34 +0100)]
drivers/raw: standardize naming
The driver names for rawdevs were both different in make and meson builds
and were non-standard in the make version in that some included "rawdev" in
the name while others didn't.
Therefore, for global consistency of naming, we can use "rte_rawdev" rather
than "rte_pmd" for the prefix for the libraries. While most other driver
categories use "rte_pmd" as a prefix, there is precedent for this in the
mempool drivers use "rte_mempool" as a prefix.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Bruce Richardson [Fri, 5 Jul 2019 09:34:00 +0000 (10:34 +0100)]
drivers/raw: remove rawdev from directory names
The ifpga and skeleton rawdev drivers included "rawdev" in their directory
names, which was superfluous given that they were in the drivers/raw
directory. Shorten the names via this patch.
For meson builds, this will rename the final library .so/.a files
produced, but those will be renamed again later via a patch to
standardize rawdev names.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Ruifeng Wang [Wed, 24 Jul 2019 03:25:38 +0000 (11:25 +0800)]
test/rcu: remove redundant header file
RCU library now includes stdbool.h header itself.
There is no need to include this header file in RCU user files.
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Michael Santana [Mon, 29 Jul 2019 15:18:34 +0000 (11:18 -0400)]
test/table: decrease memory requirement
This patch reduces the memory footprint of tables for the unit test.
Lower memory footprint means the test now passes when trying to allocate
the tables. This patch is mainly to make table_autotest pass in CI.
Signed-off-by: Michael Santana <msantana@redhat.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Vamsi Attunuru [Mon, 29 Jul 2019 08:08:50 +0000 (10:08 +0200)]
test/eal: fix --socket-mem option
eal flag autotest fails when multiple mem size flags are passed to
--socket-mem option irrespective of RTE_MAX_NUMA_NODES and the number of
available sockets on the test system.
Fixes:
45f1b6e8680a ("app: add new tests on eal flags")
Cc: stable@dpdk.org
Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Vamsi Attunuru <vattunuru@marvell.com>
Tested-by: Vamsi Attunuru <vattunuru@marvell.com>
Anatoly Burakov [Wed, 24 Jul 2019 15:47:31 +0000 (16:47 +0100)]
test: enable installing app with meson
Currently, the test app is not being installed by default when
built and installed with meson build system. Fix that to enable
installation of the test app alongside other DPDK apps.
Fixes:
b5dc795a8a55 ("test: build app with meson as dpdk-test")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Harman Kalra [Tue, 30 Jul 2019 07:46:45 +0000 (07:46 +0000)]
examples/rxtx_callbacks: fix HW timestamp config
Since all PMDs doesn't implement per queue offload capabilities but
supports RX timestamping and also since rx_offload_capa includes all
rx_queue_offload_capa's. Hence moving the logic to enable HW timestamp
via DEV_RX_OFFLOAD_TIMESTAMP flag before device configuration so that
this application can work with all PMDs.
Fixes:
cd1dadeb9b2a ("examples/rxtx_callbacks: support HW timestamp")
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Jasvinder Singh [Wed, 24 Jul 2019 12:27:19 +0000 (13:27 +0100)]
examples/qos_sched: add more TC to red configuration
Add RED configuration to more traffic classes in app configuration
files.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Anatoly Burakov [Mon, 29 Jul 2019 13:52:34 +0000 (14:52 +0100)]
eal: pick IOVA as PA if IOMMU is not available
When IOMMU is not available, /sys/kernel/iommu_groups will not be
populated. This is happening since at least 3.6 when VFIO support
was added. If the directory is empty, EAL should not pick IOVA as
VA as the default IOVA mode.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: Jerin Jacob <jerinj@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Harman Kalra [Thu, 25 Jul 2019 14:24:43 +0000 (14:24 +0000)]
examples/ptpclient: fix delay request message
Observed an issue with the length and domain number of the
delay request message sent out by the client. Due to which delay
response from master was not received.
Fixes:
ab129e9065a5 ("examples/ptpclient: add minimal PTP client")
Cc: stable@dpdk.org
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Sunil Kumar Kori [Thu, 25 Jul 2019 08:24:10 +0000 (13:54 +0530)]
examples/ip_frag: remove Tx fast free offload flag
Application uses different pool to allocate direct and indirect
mbufs which are further spliced together to consturct a fragmented
packet and same is transmitted over the port which is configured
with DEV_TX_OFFLOAD_MBUF_FAST_FREE enabled i.e. all segments
must belong to the same pool. But constructed packet violates
the conditions.
So fixing DEV_TX_OFFLOAD_MBUF_FAST_FREE flag during device
configuration.
Fixes:
fdb9eff67f0c ("examples/ip_fragmentation: convert to new offloads API")
Cc: stable@dpdk.org
Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
David Marchand [Fri, 26 Jul 2019 07:59:49 +0000 (09:59 +0200)]
app/testpmd: rename ambiguous VF config variable
Caught while looking at the rx offloads code.
rx_mode is a global variable for the default rx configuration.
Rename the local rx_mode variable in cmd_set_vf_rxmode_parsed.
Fixes:
7741e4cf16c0 ("app/testpmd: VMDq and DCB updates")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
David Marchand [Wed, 24 Jul 2019 10:58:56 +0000 (12:58 +0200)]
app/testpmd: fix eth packet dump for small buffers
In the rather unlikely case where the first segment is too small to
contain an ethernet header, we can't go and directly dereference the
mbuf data buffer.
Using rte_pktmbuf_read is a little more expensive but this is still
acceptable for a debugging feature.
Fixes:
af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Liang Ma [Thu, 25 Jul 2019 09:03:01 +0000 (10:03 +0100)]
distributor: fix livelock on flush
The Distributor autotest can lock if ran enough times. Worker and
distributor threads get into a livelock situation waiting on each
other.
To repeat:
`while sudo sh -c "echo 'distributor_autotest' |
./build/app/test/dpdk-test"; do :; done`
The root cause is where we are flushing on exit, and do not wait for
all worker packets to be returned before exiting.
Add a delay on flush so that all worker packets are returned before
completing the flush.
Bugzilla ID: 316
Fixes:
775003ad2f96 ("distributor: add new burst-capable library")
Cc: stable@dpdk.org
Reported-by: Michael Santana <msantana@redhat.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
Signed-off-by: Liang Ma <liang.j.ma@intel.com>
Tested-by: Michael Santana <msantana@redhat.com>
Xiaolong Ye [Mon, 29 Jul 2019 07:32:18 +0000 (15:32 +0800)]
doc: add SPDX tag for OPDL guide
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Jerin Jacob [Mon, 29 Jul 2019 13:17:18 +0000 (18:47 +0530)]
doc: replace license text with SPDX tag
Replace mvasm and mvpp2 Marvell PMD driver
documentation license text with SPDX tag.
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Liron Himi <lironh@marvell.com>
Hemant Agrawal [Mon, 29 Jul 2019 07:33:14 +0000 (13:03 +0530)]
eal: replace license text with SPDX tag
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
David Marchand [Tue, 23 Jul 2019 11:00:09 +0000 (13:00 +0200)]
service: remove experimental banner in API description
This was missed when promoting this API to stable.
Fixes:
7a0ac7cdb454 ("service: promote experimental functions to stable")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Gage Eads <gage.eads@intel.com>
David Marchand [Sat, 27 Jul 2019 07:21:33 +0000 (09:21 +0200)]
eal: sort experimental symbols per release
Sort the experimental symbols per release to make it easier/quicker to
check for how long we have them.
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Michael Santana <msantana@redhat.com>
Sean Morrissey [Wed, 24 Jul 2019 15:20:59 +0000 (16:20 +0100)]
eal: revert parsing option --telemetry
This reverts commit
debacba0297fbe214b4185a9791e6a9fdf6642ba.
Reverting this patch as it currently breaks the initialization of
telemetry, more investigation is ongoing to fix the issue for the
printed error message for unrecognized argument.
Fixes:
debacba0297f ("eal: fix parsing option --telemetry")
Cc: stable@dpdk.org
Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
Ferruh Yigit [Mon, 29 Jul 2019 12:32:16 +0000 (13:32 +0100)]
igb_uio: fix build on Linux 5.3 for fall through
build error:
kernel/linux/igb_uio/igb_uio.c:
In function ‘igbuio_pci_enable_interrupts’:
kernel/linux/igb_uio/igb_uio.c:230:6:
error: this statement may fall through
[-Werror=implicit-fallthrough=]
230 | if (pci_alloc_irq_vectors(udev->pdev, 1, 1, ....
kernel/linux/igb_uio/igb_uio.c:240:2: note: here
240 | case RTE_INTR_MODE_MSI:
| ^~~~
The build error is caused by Linux kernel commit in 5.3 that enables the
"-Wimplicit-fallthrough=3" gcc flag.
Commit
a035d552a93b ("Makefile: Globally enable fall-through warning")
To fix the error, either a gcc attribute can be provided [1] or a code
comment with some defined syntax need to be provided [2], since there is
already comments, updated them slightly to match the required syntax to
fix the build error.
[1]
"__attribute__ ((fallthrough));"
[2]
[ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )?
fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Jerin Jacob [Fri, 26 Jul 2019 05:24:43 +0000 (10:54 +0530)]
common/octeontx2: prevent STP instruction fissure
OTX2 AP core can sometimes fissure STP instructions when it is more
optimal to send such writes into the pipeline as 2 separate
instructions. However registers should be excluded from such
optimization. This commit ensures that no CSR write is ever fissured
by introducing zero cost workaround by setting STP pre-index by zero to
make sure OTX2 AP core prevent fissure.
Fixes:
8a4f835971f5 ("common/octeontx2: add IO handling APIs")
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Harman Kalra [Thu, 25 Jul 2019 10:26:54 +0000 (10:26 +0000)]
drivers/octeontx2: fix recursive interrupts
In case of QINT interrupt occurrence, SW fails to clear the QINT
line resulting in recursive interrupts because currently interrupt
handler gets the cause of the interrupt by reading
NIX_LF_RQ[SQ/CQ/AURA/POOL]_OP_INT but does not write 1 to clear
RQ[SQ/CQ/ERR]_INT field in respective NIX_LF_RQ[SQ/CQ/AURA/POOL]_OP_INT
registers.
Fixes:
dc47ba15f645 ("net/octeontx2: handle queue specific error interrupts")
Fixes:
50b95c3ea7af ("mempool/octeontx2: add NPA IRQ handler")
Signed-off-by: Harman Kalra <hkalra@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Pavan Nikhilesh [Wed, 24 Jul 2019 12:06:34 +0000 (17:36 +0530)]
event/octeontx2: fix null dereference
Fix NULL dereference after rte_realloc and add extra NULL checks.
Fix few memory leak with kvargs.
Coverity issue: 345023, 345022, 345009, 345011, 345026, 344997, 344990
Fixes:
ffa4ec0b6063 ("event/octeontx2: allow adapters to resize inflight buffers")
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Viacheslav Ovsiienko [Mon, 29 Jul 2019 12:41:05 +0000 (12:41 +0000)]
net/mlx5: fix Tx completion request generation
The packets transmitting in mlx5 is performed by building
Tx descriptors (WQEs) and sending last ones to the NIC.
The descriptor can contain the special flags, telling the NIC
to generate Tx completion notification (CQEs). At the beginning
of tx_burst() routine PMD checks whether there are some Tx
completions and frees the transmitted packet buffers.
The flags to request completion generation must be set once
per specified amount of packets to provide uniform stream
of completions and freeing the Tx queue in uniform fashion.
The previous implementation sets the completion request
generation once per burst, if burst size if big enough it may
latency in CQE generation and freeing large amount of buffers
in tx_burst routine on multiple completions which also
affects the latency and even causes the Tx queue overflow
and Tx drops.
This patches enforces the completion request will be set
in the exact Tx descriptor if specified amount of packets
is already sent.
Fixes:
18a1c20044c0 ("net/mlx5: implement Tx burst template")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Viacheslav Ovsiienko [Mon, 29 Jul 2019 12:41:04 +0000 (12:41 +0000)]
net/mlx5: fix ConnectX-4LX minimal inline data limit
Mellanox ConnectX-4LX NIC in configurations with disabled
E-Switch can operate without minimal required inline data
into Tx descriptor. There was the hardcoded limit set to
18B in PMD, fixed to be no limit (0B).
Fixes:
38b4b397a57d ("net/mlx5: add Tx configuration and setup")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Viacheslav Ovsiienko [Mon, 29 Jul 2019 12:41:03 +0000 (12:41 +0000)]
net/mlx5: fix Tx completion descriptors fetching loop
This patch limits the amount of fetched and processed
completion descriptors in one tx_burst routine call.
The completion processing involves the buffer freeing
which may be time consuming and introduce the significant
latency, so limiting the amount of processed completions
mitigates the latency issue.
Fixes:
18a1c20044c0 ("net/mlx5: implement Tx burst template")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:29 +0000 (11:53 +0000)]
net/mlx5: allow LRO per Rx queue
Enabling LRO offload per queue makes sense because the user will
probably want to allocate different mempool for LRO queues - the LRO
mempool mbuf size may be bigger than non LRO mempool.
Change the LRO offload to be per queue instead of per port.
If one of the queues is with LRO enabled, all the queues will be
configured via DevX.
If RSS flows direct TCP packets to queues with different LRO enabling,
these flows will not be offloaded with LRO.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:28 +0000 (11:53 +0000)]
net/mlx5: allow implicit LRO flow
When a user configures LRO in the port offloads, he probably wants each
TCP packet will have a chance to open an LRO session.
The PMD wasn't configure LRO in the flow TIR if the flow is not
explicitly configured TCP item despite the flow included TCP traffic.
For example, the next flows were not LRO offloaded:
pattern eth / end, pattern eth / ip / end, pattern eth / ipv6 / end.
Enable LRO configuration for all the TIRs if LRO is configured in the
port.
No performance impact for non-LRO traffic in these TIRs.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:27 +0000 (11:53 +0000)]
net/mlx5: handle LRO packets in regular Rx queue
When LRO offload is configured in Rx queue, the HW may coalesce TCP
packets from same TCP connection into single packet.
In this case the SW should fix the relevant packet headers because
the HW doesn't update them according to the new created packet
characteristics but provides the update values in the CQE.
Add update header code to the regular Rx burst function to support LRO
feature.
Make sure the first mbuf has enough space to include each TCP header,
otherwise the header update may cross mbufs what complicates the
operation too match.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:26 +0000 (11:53 +0000)]
net/mlx5: fix DevX Rx queue memory alignment
The alignment requested by the FW for WQ buffer allocation is 512.
Change it from cache line alignment to 512.
Fixes:
dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:25 +0000 (11:53 +0000)]
net/mlx5: allow LRO in regular Rx queue
LRO support was only for MPRQ, hence mprq Rx burst was selected when
LRO was configured in the port.
The current support for MPRQ is suffering from bad memory utilization
since an external mempool is allocated by the PMD for the packets data
in addition to the user mempool, besides that, the user may get packet
data addresses which were not configured by him.
Even though MPRQ has the best performance for packet receiving in the
most cases and because of the above facts it is better to remove the
automatic MPRQ select when LRO is configured.
Move MPRQ to be selected only when the user force it by the PMD
arguments including LRO case.
Allow LRO offload using the regular RQ with the regular Rx burst
function.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:24 +0000 (11:53 +0000)]
net/mlx5: fix DevX Rx queue type
When the Rx queue is not in striding RQ mode it should be configured as
cyclic RQ.
In this case the type remains 0 which means linked-list type.
Set the RQ type to be cyclic when the queue is not in striding RQ mode.
Fixes:
dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:23 +0000 (11:53 +0000)]
net/mlx5: fix DevX scattered Rx queue size
The WQ size configuration via DevX didn't take into account the maximum
number of segments per packet what wrongly caused to configure bigger
WQE size than the size expected by the PMD in other places.
The scatter mode stride size should be the size of segment multiplied
by the number of maximum segments per packet.
The number of WQEs per WQ should be the number of descriptors divided by
the number of the maximum segments per packet.
Fix the size calculations to the above rule.
Fixes:
dc9ceff73c99 ("net/mlx5: create advanced RxQ via DevX")
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:22 +0000 (11:53 +0000)]
net/mlx5: support mbuf headroom for LRO packet
Patch [1] zeroes the mbuf headroom when the port is configured with LRO
because when working with more than one stride per packet the HW cannot
guaranty an headroom in the start stride of each packet.
Change the solution to support mbuf headroom by adding an empty buffer
as the first packet segment, scatter mode must be enabled to support it.
[1] http://patches.dpdk.org/patch/56912/
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:21 +0000 (11:53 +0000)]
net/mlx5: remove redundant offload flag reset
When mbuf is allocated by rte_pktmbuf_alloc the offload flag is reset by
it, so data-path function should not do it again.
Remove the above offload flag reset from MPRQ data-path.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:20 +0000 (11:53 +0000)]
net/mlx5: limit LRO size to maximum Rx packet
The field max_rx_pkt_len in Rx configuration indicates the maximum size
for Rx packet to be received.
There was no any field to indicate the maximum size of LRO packet to be
received by the application.
Assuming the user configures max_rx_pkt_len as the maximum LRO packet
length when LRO is configured on the port, the PMD limits the maximum
LRO packet size received from HW to be max_rx_pkt_len.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Matan Azrad [Mon, 29 Jul 2019 11:53:19 +0000 (11:53 +0000)]
net/mlx5: fix Rx scatter mode validation
If the mbuf size of the Rx mempool supplied by the user in the Rx setup
is unable to contain the maximum Rx packet length in addition to the
mbuf head-room, the Rx scatter offload must be configured. Otherwise,
there is not enough space in single mbuf to contain a packet with size
of the maximum Rx packet length.
The PMD did not return an error in the above mentioned case.
Return an error in the above case.
Fixes:
7d6bf6b866b8 ("net/mlx5: add Multi-Packet Rx support")
Fixes:
edad38fcd00e ("net/mlx: enhance Rx scatter mode detection")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>