Anatoly Burakov [Thu, 19 Nov 2020 11:32:30 +0000 (11:32 +0000)]
doc: reword VFIO and UIO sections in Linux guide
Make sure that we always prioritize VFIO over UIO. Also, minor wording
corrections and improvements.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Anatoly Burakov [Thu, 19 Nov 2020 11:32:29 +0000 (11:32 +0000)]
doc: move VFIO driver to be first in Linux guide
Currently, the Linux GSG mentions UIO drivers first. This is not ideal
as for the longest time, the recommended way to use DPDK with hardware
devices has been to use VFIO driver.
This commit simply moves UIO section after VFIO, with minor edits.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
David Marchand [Fri, 27 Nov 2020 15:07:10 +0000 (16:07 +0100)]
usertools: remove dpdk-setup.sh
This old script relied on deprecated stuff, and especially make.
It also applied some scary 666 permissions on files under /dev/vfio.
Its deprecation had been notified in a previous release, remove it.
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Ruifeng Wang [Fri, 27 Nov 2020 08:09:03 +0000 (16:09 +0800)]
net/igc: fix build with gcc optimization level 0
GCC build with '-O0' failed for:
../drivers/net/igc/base/igc_api.c
Assembler messages:
29: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]'
82: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]'
135: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]'
188: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]'
This is due to c_args not been passed to meson.
Fixes:
8cb7c57d9b3c ("net/igc: support device initialization")
Cc: stable@dpdk.org
Reported-by: Feifei Wang <feifei.wang2@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Tested-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Ruifeng Wang [Fri, 27 Nov 2020 08:09:02 +0000 (16:09 +0800)]
eal/arm: fix build with gcc optimization level 0
GCC build with '-O0' on platforms with RTE_ARM_FEATURE_ATOMICS set
failed for:
../lib/librte_efd/rte_efd.c
Assembler messages:
3866: Error: selected processor does not support `crc32cb w0,w0,w1'
3890: Error: selected processor does not support `crc32ch w0,w0,w1'
3914: Error: selected processor does not support `crc32cw w0,w0,w1'
3938: Error: selected processor does not support `crc32cx w0,w0,x1'
This was caused by an architecture specifier added for Clang.
Unlike Clang, GCC considers each inline assembly block to be dependent
and therefore, the architecture specifier impacts assemble of some
blocks require certain extension support.
Removed the architecture for GCC to fix the issue.
Fixes:
8fce34cd0a6a ("eal/arm: fix clang build of native target")
Cc: stable@dpdk.org
Reported-by: Feifei Wang <feifei.wang2@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Anatoly Burakov [Thu, 19 Nov 2020 10:52:45 +0000 (10:52 +0000)]
doc: update information on using hugepages
Current information regarding hugepage usage is a little out of date.
Update it to include information on in-memory mode, as well as on
default mountpoints provided by systemd.
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Anatoly Burakov [Thu, 19 Nov 2020 10:52:44 +0000 (10:52 +0000)]
doc: clarify instructions on running as non-root
The current instructions are slightly out of date when it comes to
providing information about setting up the system for using DPDK as
non-root, so update them.
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Ray Kinsella [Mon, 10 Aug 2020 09:24:07 +0000 (10:24 +0100)]
doc: clarify reference version for ABI checks
Clarify the ABI reference version (DPDK_ABI_REF_VERSION) tag, to use
when testing builds with devtools/test-meson-builds.sh before
submitting patches.
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Ferruh Yigit [Fri, 3 Jul 2020 17:15:38 +0000 (18:15 +0100)]
doc: add sample for ABI checks
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Stephen Hemminger [Tue, 15 Sep 2020 02:03:40 +0000 (19:03 -0700)]
maintainers: update for netvsc
The removed maintainers deal with the Linux side of netvsc and
are not relevant for DPDK.
With Long's help the driver is now stable enough for real usage,
so the experimental mark is removed.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Nikhil Rao [Wed, 26 Aug 2020 02:02:06 +0000 (07:32 +0530)]
maintainers: update for eventdev Rx/Tx adapters
Jay is the new maintainer since Nikhil no longer works on DPDK.
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Ajit Khaparde [Tue, 24 Nov 2020 14:13:30 +0000 (06:13 -0800)]
doc: add tested platforms for Broadcom NICs
Add tested platforms for Broadcom NICs to the 20.11 release notes.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Raslan Darawsheh [Tue, 24 Nov 2020 09:54:37 +0000 (11:54 +0200)]
doc: add tested platforms with Mellanox NICs
Add tested platforms with Mellanox NICs to the 20.11 release notes.
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
Bo Chen [Fri, 20 Nov 2020 20:46:12 +0000 (15:46 -0500)]
doc: add tested Intel platforms with Intel NICs
Add tested Intel platforms with Intel NICs to v20.11 release note.
Signed-off-by: Bo Chen <box.c.chen@intel.com>
John McNamara [Tue, 24 Nov 2020 20:40:47 +0000 (20:40 +0000)]
doc: update release notes for 20.11
Fix grammar, spelling and formatting of DPDK 20.11 release notes.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Bruce Richardson [Fri, 13 Nov 2020 16:16:47 +0000 (16:16 +0000)]
doc: remove meson version deprecation notice
DPDK has been using meson 0.47 for some time now, so we can safely
remove the note calling out this fact.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
Gregory Etelson [Thu, 26 Nov 2020 16:43:28 +0000 (17:43 +0100)]
doc: add pkg-config requirement for applications
DPDK relies on pkg-config(1) to provide correct parameters for
compiler and linker used in application build. Inaccurate build
parameters, produced by pkg-config from DPDK .pc files could fail
application build or cause unpredicted results during application
runtime.
Update system requirements doc about a bug in pkg-config v0.27
used in RHEL-7.
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Thomas Monjalon [Thu, 26 Nov 2020 16:08:37 +0000 (17:08 +0100)]
doc: remove Linux headers from requirements
The compilation of the kernel module KNI is optional.
The kernel headers should not be required for DPDK compilation.
Fixes:
91a861e54164 ("config: disable Linux kernel modules by default")
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Olivier Matz [Thu, 26 Nov 2020 14:26:39 +0000 (15:26 +0100)]
doc: add missing network layers in API index
Add missing files in doxy-api-index.md and add a short description
for files that hadn't one.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Thu, 26 Nov 2020 14:23:45 +0000 (15:23 +0100)]
kni: fix build on RHEL 8.3
Like what was done for mainline kernel in commit
38ad54f3bc76 ("kni: fix
build with Linux 5.6"), a new parameter 'txqueue' has to be added to
'ndo_tx_timeout' ndo on RHEL 8.3 kernel.
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Christophe Grosse <christophe.grosse@6wind.com>
Tested-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Asaf Penso [Tue, 24 Nov 2020 07:32:32 +0000 (07:32 +0000)]
doc: update BlueField platform guide
The documentation file contains some broken links to Mellanox's site.
Also now BlueField-2 platform is supported.
This patch provides new links and adds documentation for
BlueField-2 platform.
Signed-off-by: Asaf Penso <asafp@nvidia.com>
Raslan Darawsheh [Tue, 24 Nov 2020 10:30:35 +0000 (12:30 +0200)]
doc: add ConnectX-6 Lx and BlueField-2 in mlx5 guide
This adds ConnectX-6 Lx and BlueField-2 to the list of NICs
supported by mlx5 PMD.
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
Asaf Penso [Sun, 22 Nov 2020 12:05:55 +0000 (12:05 +0000)]
doc: update hardware offloads support in mlx5 guide
In DPDK 20.11 the following offload features are added:
* Buffer Split
* Sampling
* Tunnel offload
* 2-port hairpin
* RSS shared action
* Age shared action
Update the relevant tables with OFED/rdma-core/NIC versions.
Signed-off-by: Asaf Penso <asafp@nvidia.com>
Asaf Penso [Tue, 24 Nov 2020 07:44:16 +0000 (07:44 +0000)]
doc: add Rx functions limitations in mlx5 guide
The mlx5 PMD supports various Rx burst functions.
Each function is enabled differently and supports different features.
Signed-off-by: Asaf Penso <asafp@nvidia.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Qi Zhang [Wed, 18 Nov 2020 23:56:07 +0000 (07:56 +0800)]
doc: update ice user guide
Add link for firmware/OOT kernel driver/DDP download
Add matching List.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Lijun Ou [Tue, 24 Nov 2020 13:56:17 +0000 (21:56 +0800)]
doc: update hns3 features
Since the hns3 NIC hardware features are not counted
and it is supported in fact. Besides, the flow director
is not supported and need to delete it.
Fixes:
fa29fe45a7b4 ("net/hns3: support queue start and stop")
Fixes:
521ab3e93361 ("net/hns3: add simple Rx path")
Fixes:
bba636698316 ("net/hns3: support Rx/Tx and related operations")
Fixes:
936eda25e8da ("net/hns3: support dump register")
Fixes:
53b9f2b9a560 ("doc: update feature list in hns3 guide")
Cc: stable@dpdk.org
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ajit Khaparde [Wed, 25 Nov 2020 04:46:41 +0000 (20:46 -0800)]
doc: update TRUFLOW support in bnxt guide
Currently TRUFLOW is supported only on Whitney+ and Stingray devices.
Update the PMD doc with this info.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Ajit Khaparde [Mon, 26 Oct 2020 21:46:04 +0000 (14:46 -0700)]
doc: announce end of support for some Broadcom devices
Devices belonging to BCM573xx and BCM5740x family will not be supported
from the 21.02 release.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Ajit Khaparde [Tue, 24 Nov 2020 14:25:03 +0000 (06:25 -0800)]
doc: remove list of supported OS from bnxt guide
Remove list of supported OS in PMD specific doc.
Documenting an unsupported version of OS makes more sense in
PMD specific docs.
Platforms tested with this device is documented in release notes anyway.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Stephen Hemminger [Thu, 24 Sep 2020 17:53:47 +0000 (10:53 -0700)]
doc: prefer VFIO for device binding
We should be encouraging the use of vfio-pci for developers, not telling
them to use igb_uio.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Reshma Pattan [Thu, 26 Nov 2020 13:51:14 +0000 (13:51 +0000)]
doc: clarify multi-process roles for pdump
Update the pdump library programmers guide and Howto doc
with the use of multi process channel replacing socket
based communication.
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Mon, 16 Nov 2020 02:22:02 +0000 (18:22 -0800)]
doc: add SPDX license tag header to Intel performance guide
This document never had any license or copyright on this file, add one.
Fixes:
b932ebcb2664 ("doc: add NIC performance guide on Linux IA")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Sarosh Arif [Wed, 16 Sep 2020 11:14:38 +0000 (16:14 +0500)]
doc: fix grammar
This patch corrects a grammatical error by changing 'an DPDK' to 'a DPDK',
so that the sentences can become grammatically accurate.
Fixes:
2e486e26328c ("doc: remove Intel references from linux guide")
Fixes:
48624fd96e7c ("doc: remove Intel references from prog guide")
Fixes:
e0c7c4731957 ("doc: remove Intel references from sample apps guide")
Cc: stable@dpdk.org
Signed-off-by: Sarosh Arif <sarosh.arif@emumba.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Viacheslav Ovsiienko [Mon, 23 Nov 2020 12:29:41 +0000 (12:29 +0000)]
net: fix eCPRI header generic data field
There was a typo in eCPRI header definition.
Fixes:
d164c609e70b ("ethdev: add eCPRI key fields to flow API")
Cc: stable@dpdk.org
Reported-by: Rani Sharoni <ranish@nvidia.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Reviewed-by: Bing Zhao <bingz@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Viacheslav Ovsiienko [Tue, 24 Nov 2020 11:49:56 +0000 (11:49 +0000)]
app/testpmd: fix build without i40e
If there was no RTE_NET_I40E configured the static routine
str2flowtype() was not used causing compilation warning.
The str2flowtype() is moved under #ifdef RTE_NET_I40E block.
Fixes:
1be514fbcea9 ("ethdev: remove legacy FDIR filter type support")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Gregory Etelson [Wed, 18 Nov 2020 16:15:20 +0000 (18:15 +0200)]
doc: update flow API guide for rule removal on stop
There is a discrepancy between ethdev API and flow rules guide
regarding flow rules maintenance after port stop.
librte_ethdev.h declares that flow rules will not be stored in PMD
after port stop:
>>>>> Quote start
Please note that some configuration is not stored between calls to
rte_eth_dev_stop()/rte_eth_dev_start(). The following configuration
will be retained:
- MTU
- flow control settings
- receive mode configuration (promiscuous mode, all-multicast mode,
hardware checksum mode, RSS/VMDQ settings etc.)
- VLAN filtering configuration
- default MAC address
- MAC addresses supplied to MAC address array
- flow director filtering mode (but not filtering rules)
- NIC queue statistics mappings
<<<< Quote end
PMD cannot always correctly restore flow rules after port stop / port
start because application may alter port configuration after port stop
without PMD knowledge about undergoing changes. Consider the
following scenario:
application configures 2 queues 0 and 1 and creates a flow rule with
'queue index 1' action. After that application stops the port and
removes queue 1.
Although PMD can implement flow rule shadow copy to be used for
restore after port start, attempt to restore flow rule from shadow
will fail in example above and PMD could not notify application about
that failure. As the result, flow rules map in HW will differ from
what application expects. In addition, flow rules shadow copy used
for port start restore consumes considerable amount of system memory,
especially in systems with millions of flow rules.
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Timothy Redaelli [Tue, 24 Nov 2020 15:14:15 +0000 (16:14 +0100)]
eal: fix plugin loading
Commit
49b536fc3060 ("eal: load only shared libs from driver plugin directories")
introduced a check that any shared library must ends with .so, but it can't
work, at least, on Fedora/CentOS/RHEL since .so symlinks are not installed
when you install dpdk package, but only when you install dpdk-devel package.
This commit adds also a check for .so.ABI_VERSION to check for shared lib.
See Fedora Packaging Guidelines for more information:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
Fixes:
49b536fc3060 ("eal: load only shared libs from driver plugin directories")
Cc: stable@dpdk.org
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Timothy Redaelli [Tue, 24 Nov 2020 15:14:14 +0000 (16:14 +0100)]
eal: fix shared lib mode detection
Commit
06c7871dde01 ("eal: restrict default plugin path to shared lib mode")
introduced a check that enabled shared lib mode when librte_eal.so can
be loaded, but it can't work, at least, on Fedora/CentOS/RHEL since .so
symlinks are not installed when you install dpdk package, but only when
you install dpdk-devel package.
This commit uses librte_eal.so.ABI_VERSION to check for shared lib,
since it exists on any linux distributions.
See Fedora Packaging Guidelines for more information:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
Fixes:
06c7871dde01 ("eal: restrict default plugin path to shared lib mode")
Cc: stable@dpdk.org
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Guoyang Zhou [Tue, 24 Nov 2020 06:45:34 +0000 (14:45 +0800)]
net/hinic: remove optical module operation
Remove the operation of optical modules in the link function, because
when device binds from dpdk to kernel, it will be linked failed. This
function does not take effect in cable mode, therefore, optimization
is required.
Fixes:
54ac33869932 ("net/hinic: set link down and up")
Cc: stable@dpdk.org
Signed-off-by: Guoyang Zhou <zhouguoyang@huawei.com>
Guoyang Zhou [Tue, 24 Nov 2020 06:45:33 +0000 (14:45 +0800)]
net/hinic/base: remove queue number limitation
The maximum number of queues on the chip can be any value greater
than 0, it does not have to be the power of two, if it does not be
fixed, dpdk initialization may be failed with OVS mode firmware.
Fixes:
828d3e15a9dc ("net/hinic/base: support context and work queue")
Cc: stable@dpdk.org
Signed-off-by: Guoyang Zhou <zhouguoyang@huawei.com>
Cristian Dumitrescu [Mon, 23 Nov 2020 17:49:24 +0000 (17:49 +0000)]
doc: add pipeline example user guide
Document the pipeline example in the Sample Application User Guide.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Diogo Behrens [Wed, 26 Aug 2020 09:20:02 +0000 (11:20 +0200)]
mcslock: fix hang in weak memory model
The initialization me->locked=1 in lock() must happen before
next->locked=0 in unlock(), otherwise a thread may hang forever,
waiting me->locked become 0. On weak memory systems (such as ARMv8),
the current implementation allows me->locked=1 to be reordered with
announcing the node (pred->next=me) and, consequently, to be
reordered with next->locked=0 in unlock().
This fix adds a release barrier to pred->next=me, forcing
me->locked=1 to happen before this operation.
Fixes:
2173f3333b61 ("mcslock: add MCS queued lock implementation")
Cc: stable@dpdk.org
Signed-off-by: Diogo Behrens <diogo.behrens@huawei.com>
Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Bruce Richardson [Tue, 24 Nov 2020 09:46:56 +0000 (09:46 +0000)]
usertools: fix binding regex or misc device
The "misc" and "regex" device classes were missing from the list used to
check arguments, preventing them from being used with "--status-dev"
flag to list only devices of those types.
When adding them to the list, the list is also sorted alphabetically for
consistency.
Bugzilla ID: 582
Fixes:
81255f27c65c ("usertools: replace optparse with argparse")
Reported-by: Wei Ling <weix.ling@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Tested-by: Yu Jiang <yux.jiang@intel.com>
Thomas Monjalon [Tue, 24 Nov 2020 22:33:15 +0000 (23:33 +0100)]
net/mlx5: fix flow shared action destroy error code
In the function rte_flow_shared_action_destroy(),
the errno ETOOMANYREFS has been replaced with EBUSY in the
commit
dc328d1c555a ("ethdev: rename a flow shared action error code").
Another occurrence of ETOOMANYREFS, added later by mistake,
is replaced with EBUSY errno.
Fixes:
fa7ad49e96b5 ("net/mlx5: fix shared RSS action update")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Tal Shnaiderman <talshn@nvidia.com>
Tested-by: Tal Shnaiderman <talshn@nvidia.com>
Gregory Etelson [Wed, 25 Nov 2020 09:44:27 +0000 (11:44 +0200)]
net/mlx5: fix tunnel offload freeing
PMD did not remove tunnel offload object from tunnels database before
it released the object memory. As the result, the tunnels database
become corrupted and subsequent search operations triggered PMD crash.
The patch removes tunnel offload object from the tunnels database when
the object is not in-use by PMD any more.
Fixes:
bc1d90a3cf6f ("net/mlx5: fix build with Direct Verbs disabled")
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Matan Azrad [Mon, 23 Nov 2020 15:56:42 +0000 (15:56 +0000)]
net/mlx5: reduce log level in hash list registration
In mlx5 internal hash list tool, there is a log print when an entry
allocation is failed: Can't allocate hash list entry.
Some initialization checks triggers hash list registration in order to
check some capabilities. Here, the failure in registration doesn't
lead to failure in the initialization flow, that is why the log level
can be lower.
Move the entry allocation failure log to debug level.
Signed-off-by: Matan Azrad <matan@nvidia.com>
Reviewed-by: Asaf Penso <asafp@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Gregory Etelson [Tue, 24 Nov 2020 08:10:13 +0000 (10:10 +0200)]
net/mlx5: fix DevX resources freeing
Invalid memory release order of DevX resources caused PMD crash.
1. SQ and CQ memory must be unregistered with DevX before it is freed.
2. SQ objects reference to a CQ ones. Hence, SQ should be destroyed in
advance of CQ it references to.
Fixes:
6deb19e1b2d2 ("net/mlx5: separate Rx queue object creations")
Fixes:
88f2e3f18cc7 ("net/mlx5: rearrange SQ and CQ creation in DevX module")
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Xiaoyu Min [Mon, 16 Nov 2020 07:55:17 +0000 (15:55 +0800)]
net/iavf: fix ethernet header size in flow rule
The rte_flow_item_vlan items are refined.
The structs do not exactly represent the packet bits captured on the
wire anymore so should only copy real header instead of the whole struct.
Replace the rte_flow_item_* with the existing corresponding rte_*_hdr.
Fixes:
09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Thomas Monjalon [Sun, 22 Nov 2020 21:53:47 +0000 (22:53 +0100)]
version: 20.11-rc5
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Ferruh Yigit [Sat, 21 Nov 2020 01:15:21 +0000 (01:15 +0000)]
devtools: add acronyms in dictionary for commit checks
ICMP -> Internet Control Message Protocol
IPv4 -> Internet Protocol version 4
IPv6 -> Internet Protocol version 6
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Stephen Hemminger [Wed, 9 Sep 2020 18:51:01 +0000 (11:51 -0700)]
usertools: add huge page setup script
This is an improved version of the setup of huge pages
bases on earlier DPDK setup.
Differences are:
* autodetects NUMA vs non NUMA
* allows setting different page sizes
recent kernels support multiple sizes.
* accepts a parameter in bytes (not pages).
* can display current hugepage settings.
Most users will just use --setup argument but if necessary
the steps of clearing old settings and mounting/umounting
can be done individually.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Julien Massonneau [Thu, 19 Nov 2020 09:44:01 +0000 (10:44 +0100)]
usertools: fix pmdinfo parsing
In the display_pmd_info_strings function, the script parses the section
until to find a byte between 32 and 127, and get all data
until a byte equals to 0.
After, it searches "PMD_INFO_STRING" in the data and passes the whole
string in the parse_pmd_info_string function, which split the string
with "=" and convert it in python dict with json.loads().
But the string may contain a "=" before "PMD_INFO_STRING",
so it is not correctly split and will lead to an error
(json.decoder.JSONDecodeError).
Example of a string encountered that leads to an error:
"Ag%=C£°ÐÊ+Ë®{0´wË-£0òjB·;¾¬úPMD_INFO_STRING= {"name" :
"net_octeontx", "params" : "nr_port=<int> ", "pci_ids" : []}"
Fixes:
c67c9a5c646a ("tools: query binaries for HW and other support information")
Cc: stable@dpdk.org
Signed-off-by: Julien Massonneau <julien.massonneau@6wind.com>
Stephen Hemminger [Wed, 4 Nov 2020 07:03:50 +0000 (23:03 -0800)]
usertools: test multiple strings with operator in
Python lint suggests using in instead of multiple comparisons.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Wed, 4 Nov 2020 07:03:47 +0000 (23:03 -0800)]
usertools: remove unused imports in devbind
Address python lint complaints about unused imports.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:42 +0000 (22:48 -0800)]
usertools: do not test empty with function len
Python lint warns about using len(SEQUENCE) to determine if sequence is empty.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:41 +0000 (22:48 -0800)]
usertools: replace optparse with argparse
The optparse module is deprecated and replaced with new argparse.
Using the python standard argument parser instead of C library
style getopt gives a number of advantages such as checking
for conflicting arguments, restricting choices, and automatically
generating help messages.
Some of the help messages are now less wordy.
The code now enforces the rule that only one of the pmdinfo formats
can be specified: raw or json.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:40 +0000 (22:48 -0800)]
usertools: fix indentation
Python lint complains about indentation and missing spaces around commas.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:39 +0000 (22:48 -0800)]
usertools: replace explicit boolean checks
Code reads better if unnecessary comparison with False and True
is not used.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:38 +0000 (22:48 -0800)]
usertools: remove unnecessary parens and else
Python lint complains:
Unnecessary parens after 'if' keyword
Unnecessary parens after 'not' keyword
Unnecessary "else" after "return"
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:37 +0000 (22:48 -0800)]
usertools: replace io.open
The builtin open() is the recommended approach in python3.
io.open was for compatibility with older versions.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Wed, 4 Nov 2020 06:48:36 +0000 (22:48 -0800)]
usertools: replace string.split
In python3 the standard way to split strings is to use the
split() on the string object itself. The old way is broken
and would cause a traceback.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Conor Walsh [Thu, 19 Nov 2020 10:17:00 +0000 (10:17 +0000)]
net/bnxt: fix format specifier for unsigned numbers
&device requires the %u format specifer not the %d specifier, as
&device is unsigned.
Fixes:
a46bbb57605b ("net/bnxt: update multi device design")
Cc: stable@dpdk.org
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Conor Walsh [Thu, 19 Nov 2020 10:16:59 +0000 (10:16 +0000)]
build: fix gcc warning requiring Wformat
On some CentOS/RHEL systems using gcc 8.3.1 to compile dpdk, gcc shows a
warning on every build step saying that -Wformat-nonliteral and
-Wformat-security warnings will be ignored unless -Wformat is
also specified as a compiler flag. When the build is run with -werror
the build will fail due to these warnings.
Exact warning returned:
cc1: error: -Wformat-nonliteral ignored without -Wformat
[-Werror=format-nonliteral]
cc1: error: -Wformat-security ignored without -Wformat
[-Werror=format-security]
cc1: all warnings being treated as errors
This patch adds the -Wformat flag to config/meson.build. The warning id
181 has also been suppressed in icc as icc was showing false positives
with -Wformat enabled.
Fixes:
524a0d5d66b9 ("build: enable extra warnings with meson")
Cc: stable@dpdk.org
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Tested-by: Lingli Chen <linglix.chen@intel.com>
Nick Connolly [Sun, 22 Nov 2020 08:45:15 +0000 (08:45 +0000)]
eal/windows: fix linkage with MinGW
Linking with the 'pci' driver when building with MinGW on
Windows fails with undefined symbol 'GUID_DEVCLASS_NET'.
This occurs because devguid.h is included in rte_windows.h
before INITGUID is defined.
Move the include of devguid.h after the definition of INITGUID.
Fixes:
b762221ac24f ("bus/pci: support Windows with bifurcated drivers")
Cc: stable@dpdk.org
Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
Reviewed-by: Tal Shnaiderman <talshn@nvidia.com>
Yunjian Wang [Thu, 12 Nov 2020 09:31:15 +0000 (17:31 +0800)]
malloc: fix style in free list index computation
Cleanup code style issue reported by kernel checkpatch. As follows:
* ERROR:CODE_INDENT: code indent should use tabs where possible
* ERROR:SPACING: spaces required around that '?' (ctx:VxE)
* WARNING:INDENTED_LABEL: labels should not be indented
Fixes:
b0489e7bca2f ("malloc: fix linear complexity")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Gregory Etelson [Tue, 17 Nov 2020 18:49:40 +0000 (20:49 +0200)]
net/mlx5: fix representor interrupts handler
Representor is a port in DPDK that is connected to a VF in such a way
that assuming there are no offload flows, each packet that is sent
from the VF will be received by the corresponding representor. While
each packet that is sent to a representor will be received by the VF.
This is very useful in case of SRIOV mode, where the first packet that
is sent by the VF will be received by the DPDK application which will
decide if this flow should be offloaded to the E-Switch.
Representor shares interrupts handler with host PF over the PCI
address. Therefore, after PF completes its interrupts handler
initialization, no additional actions required for representor.
Fixes:
26c08b979d26 ("net/mlx5: add port representor awareness")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Gregory Etelson [Tue, 17 Nov 2020 18:49:39 +0000 (20:49 +0200)]
examples/l3fwd-power: check packet types after start
l3fwd-power uses `--parse-ptype' parameter to query egress packets
type. Before that feature is enabled l3fwd-power verifies PMD ability
to advertise supported packet types with
rte_eth_dev_get_supported_ptypes().
The above ethdev function API contains this note:
"
Better to invoke this API after the device is already started or rx burst
function is decided, to obtain correct supported ptypes.
"
The patch updates code for PMDs that register supported types after
dev_start.
Fixes:
82bea4661626 ("examples/l3fwd-power: add --parse-ptype option")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Andrey Vesnovaty [Sun, 22 Nov 2020 14:49:51 +0000 (16:49 +0200)]
net/mlx5: fix shared RSS action update
The shared RSS action update was not operational due to lack
of kernel driver support of TIR object modification.
This commit introduces the workaround to support shared RSS
action modify using an indirect queue table update instead of
touching TIR object directly.
Limitations: the only supported RSS property to update is queues, the
rest of the properties ignored.
Fixes:
d2046c09aa64 ("net/mlx5: support shared action for RSS")
Signed-off-by: Andrey Vesnovaty <andreyv@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Tonghao Zhang [Fri, 20 Nov 2020 14:48:03 +0000 (14:48 +0000)]
net/mlx5: check register available for metadata action
If user don't set the dv_xmeta_en to 1 or 2,
in the flow_dv_convert_action_set_meta function:
- flow_dv_get_metadata_reg may return the REG_NONE,
when MLX5_METADATA_FDB enabled for metadata set action.
- reg_to_field(REG_NONE) returns MLX5_MODI_OUT_NONE,
that is invalid and rdma-core fails.
The rdma-core calltrace:
dr_action_create_modify_action
dr_actions_convert_modify_header
dr_action_modify_sw_to_hw
dr_action_modify_sw_to_hw_set
dr_ste_get_modify_hdr_hw_field
Fixes:
fcc8d2f716fd ("net/mlx5: extend flow metadata support")
Cc: stable@dpdk.org
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Alexander Kozyrev [Sat, 21 Nov 2020 03:42:39 +0000 (03:42 +0000)]
net/mlx5: fix mbuf overflow in vectorized MPRQ
Changing the allocation scheme to improve mbufs locality caused mbufs
overrun in some cases. Revert the previous replenish logic back.
Calculate a number of unused mbufs and replenish max this number of mbufs.
Mark the last 4 mbufs as fake mbufs to prevent overflowing into consumed
mbufs in the future. Keep the consumed index and the produced index 4 mbufs
apart for this purpose.
Replenish some mbufs only in case the consumed index is within the
replenish threshold of the produced index in order to retain the cache
locality for the vectorized MPRQ routine.
Fixes:
5c68764377 ("net/mlx5: improve vectorized MPRQ descriptors locality")
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Viacheslav Ovsiienko [Thu, 19 Nov 2020 19:18:24 +0000 (19:18 +0000)]
net/mlx5: make Tx scheduling xstats names compliant
xstats names for Tx packet scheduling should be compliant with [1]
[1] http://doc.dpdk.org/guides/prog_guide/poll_mode_drv.html?highlight=xstats#extended-statistics-api
Bugzilla ID: 558
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Viacheslav Ovsiienko [Thu, 19 Nov 2020 19:18:05 +0000 (19:18 +0000)]
net/mlx5: make ethernet xstats names compliant
xstats names for simple stats are mostly standardized in ethdev drivers
and should be compliant with [1]
[1] http://doc.dpdk.org/guides/prog_guide/poll_mode_drv.html?highlight=xstats#extended-statistics-api
Bugzilla ID: 558
Reported-by: Igor Ryzhov <iryzhov@nfware.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Benoît Ganne [Sun, 22 Nov 2020 10:04:04 +0000 (12:04 +0200)]
net/mlx5: allow unknown link speed
mlx5 PMD refuses to update link state if link speed is defined but
status is down or if link speed is undefined but status is up, even if
the ioctl() succeeded.
This prevents application to detect link up/down event, especially when
the link speed is not correctly detected.
Commit [1] allowed returning unknown link speed, so now PMD allows
the return of unknown link speed in the above case.
Due to some old kernel driver bug, link speed wasn't detected properly.
[1] http://git.dpdk.org/dpdk/commit/?id=
810b17d116f03
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Xiaoyu Min [Mon, 16 Nov 2020 07:55:15 +0000 (15:55 +0800)]
app/flow-perf: fix raw encapsulation size
The rte_flow_item_eth and rte_flow_item_vlan items are refined.
The structs do not exactly represent the packet bits captured on the
wire anymore so add_*_header functions should use real header instead of
the using rte_flow_item_* struct.
Replace the rte_flow_item_* with the existing corresponding rte_*_hdr.
Fixes:
09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Dekel Peled [Mon, 16 Nov 2020 07:55:18 +0000 (15:55 +0800)]
net/softnic: fix header size calculation
The rte_flow_item_eth and rte_flow_item_vlan items were updated in [1].
The rte_flow_item_ipv6 item was updated in [2].
The structs now contain additional metadata following the header data.
The size to use for match should be the header data size only, and
not the size of the whole struct.
This patch replaces the rte_flow_item_* with the corresponding rte_*_hdr.
Fixes:
09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
Fixes:
ad976bd40d28 ("ethdev: add extensions attributes to IPv6 item")
Signed-off-by: Dekel Peled <dekelp@nvidia.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
Xiaoyu Min [Mon, 16 Nov 2020 07:55:14 +0000 (15:55 +0800)]
net/mlx5: fix encap/decap limit for hairpin flow split
The rte_flow_item_eth and rte_flow_item_vlan items are refined.
The structs do not exactly represent the packet bits captured on the
wire anymore.
Should use real header instead of the whole struct.
Replace the rte_flow_item_* with the existing corresponding rte_*_hdr.
Fixes:
09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
Fixes:
f9210259cac7 ("net/mlx5: fix raw encap/decap limit")
Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Xiaoyu Min [Mon, 16 Nov 2020 07:55:16 +0000 (15:55 +0800)]
net/bnxt: fix VLAN/VXLAN encapsulation header size
The rte_flow_item_eth and rte_flow_item_vlan items are refined.
The structs do not exactly represent the packet bits captured on the
wire anymore so should only copy real header instead of the whole struct.
Replace the rte_flow_item_* with the existing corresponding rte_*_hdr.
Fixes:
09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN items")
Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Baum [Wed, 18 Nov 2020 17:00:11 +0000 (17:00 +0000)]
regex/mlx5: fix leak on queue setup failure
In regex QP setup, the PMD creates some SQ objects.
When SQ object creation is failed, the previous SQ objects memory were
not freed what caused a memory leak.
Free them.
Fixes:
54fa1f6a67d7 ("regex/mlx5: add teardown for fastpath buffers")
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Michael Baum [Wed, 18 Nov 2020 17:00:10 +0000 (17:00 +0000)]
regex/mlx5: fix type of setup constants
The constant representing the size of the metadata is defined as a
regular number (32-bit signed), even though all of its uses request an
unsigned int variable.
Similarly the constant representing the maximal output is also defined
as a regular number, even though all of its uses request an unsigned int
variable.
Change the type of the above constants to unsigned.
Fixes:
5f41b66d12cd ("regex/mlx5: setup fast path")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Michael Baum [Wed, 18 Nov 2020 17:00:09 +0000 (17:00 +0000)]
regex/mlx5: improve error messages in RXP rules flush
During the rules flush, the rxp_poll_csr_for_value function is called
twice. The rxp_poll_csr_for_value function can fail for two reasons:
1. It could not read the value from register, in which case the
function returns -1.
2. It read a value, but not the value it expected to receive. In this
case it returns -EBUSY.
When the function fails it prints an error message that is relevant only
for a second type of failure. Moreover, for failure of the first type it
prints a value of an uninitialized variable.
In case of success, the function prints a debug message about the number
of cycles it took. This line was probably copied by mistake, since the
variable it reads from, is always equal to 0 and is not an indicator of
the number of cycles.
Remove the incorrect line about the cycles, and reduce the error print
only for the relevant error.
Fixes:
b34d816363b5 ("regex/mlx5: support rules import")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Michael Baum [Wed, 18 Nov 2020 17:00:08 +0000 (17:00 +0000)]
regex/mlx5: check DevX register write
The rxp_flush_rules function tries to read and write to the register
several times using DevX API, and when it fails the function returns an
error.
Similarly the rxp_init_eng function also tries to write to the register
several times, and if writing is failed, it returns an error too.
Both functions have one write that the function does not check if it
succeeded, overriding the return value from the write function without
using it.
Add a check for this writing, and return an error in case of failure.
Fixes:
b34d816363b5 ("regex/mlx5: support rules import")
Fixes:
e3dbbf718ebc ("regex/mlx5: support configuration")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Michael Baum [Wed, 18 Nov 2020 17:00:07 +0000 (17:00 +0000)]
regex/mlx5: remove unnecessary initializations
The rxp_poll_csr_for_value function defines a variable named ret. It is
the return value of the function, and it is updated to 0 by default
later in the function.
Similarly the rxp_init_rtru function also defines a variable named ret.
The function assigns into it return values from functions during the
function.
In both functions they initialize the ret variable when defining it.
however, in both cases they do not use any ret variable before assigning
into them different values, so the initializations are unnecessary.
Clean the aforementioned unnecessary initializations.
Fixes:
e3dbbf718ebc ("regex/mlx5: support configuration")
Fixes:
b34d816363b5 ("regex/mlx5: support rules import")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Michael Baum [Wed, 18 Nov 2020 17:00:06 +0000 (17:00 +0000)]
regex/mlx5: fix RXP engines iterator size
The mlx5_regex_rules_db_import function goes over all engines in the
loop and program rxp rules.
The iterator of the loop is called id and the variable representing the
number of engines is called priv->nb_engines.
The id variable is of uint8_t type while the priv->nb_engines variable
is of uint32_t type. The size of the priv->nb_engines variable is much
larger than the number of iterations allowed by the id type.
Theoretically there may be a situation where the value of the
priv->nb_engines will be greater than can be represented by 8 bits and
the loop will never end.
Change the type of id to uint32_t.
Fixes:
b34d816363b5 ("regex/mlx5: support rules import")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Michael Baum [Wed, 18 Nov 2020 17:00:05 +0000 (17:00 +0000)]
regex/mlx5: fix crash on probe failure
The mlx5_regex_pci_probe function allocates a mlx5_regex_priv structure
using rte_zmalloc.
If the allocation fails, the function jumps to the dev_error label in
order to release previously allocated resources in the function.
However, in the dev_error label it attempts to refer to the internal
fields of the priv structure and if its allocation fails (as in this
case) it is actually dereferencing to NULL.
Replace the jump with an error label.
Fixes:
1db6ebd4ef58 ("regex/mlx5: fix crash on initialization failure")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Radha Mohan Chintakuntla [Tue, 10 Nov 2020 00:19:38 +0000 (16:19 -0800)]
maintainers: update for OCTEON TX2 DMA and EP
Replace the maintainers for OcteonTx2 DMA and EP drivers.
Signed-off-by: Radha Mohan Chintakuntla <radhac@marvell.com>
Acked-by: Satha Rao <skoteshwar@marvell.com>
Acked-by: Mahipal Challa <mchalla@marvell.com
Yunjian Wang [Mon, 2 Nov 2020 11:36:24 +0000 (19:36 +0800)]
compress/isal: check allocation in queue setup
The function rte_zmalloc() could return NULL, the return value
need to be checked.
Fixes:
dc49e6aa4879 ("compress/isal: add ISA-L compression functionality")
Fixes:
7bf4f0630af6 ("compress/isal: add ISA-L decomp functionality")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Lee Daly <lee.daly@intel.com>
Shijith Thotton [Thu, 19 Nov 2020 08:46:11 +0000 (14:16 +0530)]
event/octeontx2: unlink queues during port release
Unlinking queues from port should be done during port release. Doing it
during device re-configuration could result in segfault as ports array
is re-allocated based on new number of ports.
Fixes:
f7ac8b66b23c ("event/octeontx2: support linking queues to ports")
Cc: stable@dpdk.org
Signed-off-by: Shijith Thotton <sthotton@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Pavan Nikhilesh [Fri, 20 Nov 2020 10:41:46 +0000 (16:11 +0530)]
event/octeontx2: fix unconditional Tx flush
Fix unconditional Tx flush, in case of Tx only we need to check if
work slot is non-empty before issuing flush.
Also, in packet retransmit cases added check for the reference
count and flush the work slot only for the last packet.
Fixes:
cb7ee83b6365 ("event/octeontx2: improve single flow performance")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Pavan Nikhilesh [Thu, 19 Nov 2020 13:57:35 +0000 (19:27 +0530)]
event/octeontx: remove selftest option
Since selftest now depends on dynamic mbuf fields it is not
feasible to run selftest on device probe.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Pavan Nikhilesh [Thu, 19 Nov 2020 13:57:34 +0000 (19:27 +0530)]
event/octeontx2: remove selftest option
Since selftest now depends on dynamic mbuf fields it is not
feasible to run selftest on device probe.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Timothy McDaniel [Mon, 16 Nov 2020 17:40:38 +0000 (11:40 -0600)]
event/dlb: fix mempool query in self test
Add NULL check before using t->mbuf_pool.
Coverity issue: 363719
Fixes:
d1112958f4f5 ("event/dlb: add self-tests")
Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Chengchang Tang [Fri, 20 Nov 2020 11:27:34 +0000 (19:27 +0800)]
net/hns3: fix HW exception for unbalanced Rx/Tx queues
For kupeng 930, there are 3 registers to control the enable
status of a TQP(i.e. task queue pair, include a txq and a rxq).
One of them controls whether the TQP is enabled, and the other
two controls whether the rxq and txq are enabled. The registers
used to control the enabled status of the rxq and txq are enabled
by default. Therefore, after the TQP is enabled, the rxq and txq
are enabled by default.
Currently, when the number of rxq is not equal to the number of txq, the
unused rxqs or txqs are not disabled by driver, so these unused queues
will be enabled in this situation. And the related HW rings have not
been initialized which could lead to a hardware exception.
This patch fix it by disable these unused queues during enable the TQPs.
Fixes:
fa29fe45a7b4 ("net/hns3: support queue start and stop")
Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Huisong Li [Fri, 20 Nov 2020 11:27:33 +0000 (19:27 +0800)]
net/hns3: fix crash with multi-TC
The HW and SW DCB configurations need to be updated only
after the DCB configuration information changed. But the
change of tx/rx queue number is ignored. If user decreases
the number of tx queue after configuring multi-TC, the queue
mapping information in hns3_tc_queue_info can not be updated.
And then accessing the released queue resource in
"hns3_init_tx_ring_tc" will trigger a segment fault.
Fixes:
62e3ccc2b94c ("net/hns3: support flow control")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Thomas Monjalon [Fri, 20 Nov 2020 09:54:38 +0000 (10:54 +0100)]
ethdev: rename a flow shared action error code
In the experimental function rte_flow_shared_action_destroy()
introduced in DPDK 20.11, the errno ETOOMANYREFS was used.
This errno is not always available on Windows,
so it is preferred using EBUSY instead.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Tal Shnaiderman <talshn@nvidia.com>
Tested-by: Tal Shnaiderman <talshn@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Guoyang Zhou [Fri, 20 Nov 2020 09:11:29 +0000 (17:11 +0800)]
net/hinic: fix hugepage memory leaks
The 'nic_io' memory is set to NULL before it is freed, this is wrong,
and the freeing of some private port resources should be moved from the
".remove(device)" function to the ".dev_close(port)" function.
Fixes:
f30e69b41f94 ("ethdev: add device flag to bypass auto-filled queue xstats")
Cc: stable@dpdk.org
Signed-off-by: Guoyang Zhou <zhouguoyang@huawei.com>
Ferruh Yigit [Mon, 16 Nov 2020 19:03:54 +0000 (19:03 +0000)]
app/testpmd: revert setting MTU explicitly after configure
Setting MTU after each 'rte_eth_dev_configure()' prevents using
"--max-pkt-len=N" parameter and "port config all max-pkt-len #" command
This is breaking DTS scatter test case which is using
"--max-pkt-len=9000" testpmd parameter.
Reverting workaround to recover the DTS testcase.
Fixes:
1c21ee95cf52 ("app/testpmd: fix MTU after device configure")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Bo Chen <box.c.chen@intel.com>
Dekel Peled [Wed, 18 Nov 2020 08:59:57 +0000 (10:59 +0200)]
common/mlx5: move to formal ASO action API
Existing code uses the previous API offered by rdma-core in order
to create ASO Flow Hit action.
A general API is now formally released, to create ASO action of any
type. This patch moves the MLX5 PMD code to use the formal API.
Signed-off-by: Dekel Peled <dekelp@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Dekel Peled [Wed, 18 Nov 2020 08:59:56 +0000 (10:59 +0200)]
net/mlx5: fix input register for ASO object
Existing code uses the hard-coded value REG_C_5 as input for function
mlx5dv_dr_action_create_flow_hit().
This patch updates function mlx5_flow_get_reg_id() to return the
selected REG_C value for ASO Flow Hit operation.
The returned value is used, after reducing offset REG_C_0, as input
for function mlx5dv_dr_action_create_flow_hit().
Fixes:
f935ed4b645a ("net/mlx5: support flow hit action for aging")
Signed-off-by: Dekel Peled <dekelp@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Dekel Peled [Wed, 18 Nov 2020 08:59:55 +0000 (10:59 +0200)]
net/mlx5: fix memory leak on ASO age close
Recent patch introduced the use of ASO flow hit action for age action.
The relevant management struct uses dynamically allocated memory.
This memory was not freed on closing.
This patch adds memory freeing as needed.
Fixes:
f935ed4b645a ("net/mlx5: support flow hit action for aging")
Signed-off-by: Dekel Peled <dekelp@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Stephen Hemminger [Mon, 16 Nov 2020 02:14:39 +0000 (18:14 -0800)]
net/iavf: fix SPDX license text
Obvious spelling error in SPDX license header.
Fixes:
12b435bf8f2f ("net/iavf: support flex desc metadata extraction")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>