Somnath Kotur [Fri, 19 Feb 2021 09:28:03 +0000 (14:58 +0530)]
net/bnxt: refactor HWRM ring allocation routine
bnxt_alloc_hwrm_rings() was duplicating a snippet of code that was
already present in bnxt_alloc_hwrm_rx_ring() with just one line/function
invocation missing. Add that line and replace the snippet of code
with a call to bnxt_hwrm_alloc_rx_ring
Lance Richardson [Thu, 18 Feb 2021 18:19:20 +0000 (13:19 -0500)]
net/bnxt: fix Rx queue count
bnxt_rx_queue_count_op() incorrectly returns the number of
filled but unprocessed completion queue entries instead of
the number of filled but unprocessed received packet
completions. Fix by properly accounting for the number of
completion ring entries used by the various received packet
completion types.
Depending on kernel capabilities and rdma-core version the mapping
of UAR (User Access Region) of desired memory caching type (non-cached
or write combining) might fail. The PMD implements the flexible
strategy of UAR mapping, alternating the type of caching to succeed.
During this process the failure diagnostics messages are emitted.
These messages are merely diagnostics ones and the logging level
should be adjusted to DEBUG.
net/mlx5: fix hashed list size for tunnel flow groups
The hashed list size must be the power of 2, otherwise the
adjustment is applied and the warning message is emitted.
This patch provides the correct list size to eliminate the
warning.
Lance Richardson [Thu, 25 Feb 2021 14:31:47 +0000 (09:31 -0500)]
mbuf: rename outer IP checksum macro
Rename PKT_RX_EIP_CKSUM_BAD to PKT_RX_OUTER_IP_CKSUM_BAD and
deprecate the original name. The new name is better aligned
with existing PKT_RX_OUTER_* flags, which should help reduce
confusion about its use.
Ciara Loftus [Mon, 1 Mar 2021 10:34:13 +0000 (10:34 +0000)]
net/af_xdp: fix error handling during Rx queue setup
Prior to this commit, if rte_pktmbuf_alloc_bullk failed during rx queue
setup the error was not returned to the user and they may incorrectly
assume that the rx queue had been successfully set up. This commit ensures
that the error is returned to the user.
Ivan Malov [Fri, 26 Feb 2021 14:10:23 +0000 (17:10 +0300)]
net/sfc: fix buffer size for flow parse
Pass the size of the buffer where the item's mask
is stored and not the indirection pointer size.
Coverity issue: 363735 Fixes: dadff137931c ("net/sfc: support encap flow items in transfer rules") Cc: stable@dpdk.org Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Jiawen Wu [Thu, 25 Feb 2021 08:09:00 +0000 (16:09 +0800)]
net/txgbe: reuse some PF Rx/Tx features for VF
Some Rx/Tx operations like queue setup and release, packet type get, and
Tx done cleanup have been supported on PF device. There are ops
functions directly added.
Jiawen Wu [Thu, 25 Feb 2021 08:08:51 +0000 (16:08 +0800)]
net/txgbe: support VF Rx/Tx
Configure VF device with RX port. Initialize receive and transmit unit,
set the receive and transmit functions. And support to check the
status of RX and TX descriptors.
Xiaoyun Li [Thu, 18 Feb 2021 03:06:10 +0000 (11:06 +0800)]
app/testpmd: remove unnecessary UDP tunnel check
cmd_tunnel_udp_config checked 'cmd' to set prot_type but this cmd is
only for rx_vxlan_port. The unnecessary cmd check will cause uninit
coverity issue. So remove it and rename 'cmd' to 'rx_vxlan_port'.
Andrew Boyer [Tue, 16 Feb 2021 20:35:28 +0000 (12:35 -0800)]
net/ionic: consolidate adminq code
The adminq is the only caller of ionic_q_service(), so absorb it
into ionic_adminq_service().
Move all of the adminq code together into ionic_main.c.
Staticize a few things.
Nipun Gupta [Wed, 24 Feb 2021 12:43:05 +0000 (18:13 +0530)]
net/dpaa: do not release CGR ranges
CGR are automatically freed up in the kernel. As we do not cleanup
the queues, if we release the CGR here, kernel reports them in use.
So have them freed up in the kernel.
Hemant Agrawal [Wed, 24 Feb 2021 12:43:04 +0000 (18:13 +0530)]
mempool/dpaa2: support stats for secondary process
DPAA2 DPBP object access need availability of MCP object
pointer. In case of secondary process, we need to use local
MCP pointer instead of primary process.
Nipun Gupta [Wed, 24 Feb 2021 12:43:02 +0000 (18:13 +0530)]
net/dpaa2: enable error queues optionally
In case error packets are received by the Ethernet interface,
this patch enables receiving packets on the error queue,
printing the error and the error packet.
To enable, use the dev_arg as : fslmc:dpni.1,drv_error_queue=1
Hemant Agrawal [Wed, 24 Feb 2021 12:43:01 +0000 (18:13 +0530)]
net/dpaa2: support optional Tx confirmation
Add support for dev arg ``fslmc:dpni.1,drv_tx_conf=1``
It is optional for dpaa2 to use TX confirmation. DPAA2
can free the transmitted packets. However some use-case
requires the TX confirmation to be explicit.
Apeksha Gupta [Wed, 24 Feb 2021 12:42:59 +0000 (18:12 +0530)]
net/dpaa2: skip resetting dpdmux
This is require as the interface is shared with Linux and we do not want
the dpdmux to be reset. Rather the default interface to kernel shall
continue.
command dpdmux_set_resetable is used to skip DPDMUX reset.
By default the DPDMUX_RESET command will reset the DPDMUX completely,
dpdmux_set_resetable command will be ignored in old MC firmware.
Akhil Goyal [Wed, 24 Feb 2021 12:42:58 +0000 (18:12 +0530)]
net/dpaa2: support raw pattern in dpdmux
Added support for flow raw pattern and check that the call
for dpdmux_set_custom_key() which should be called
only once for a particular DPDMUX as all previous rules
will be erased with this call.
Hence calling it for the first time only.
Hemant Agrawal [Wed, 24 Feb 2021 12:42:53 +0000 (18:12 +0530)]
net/dpaa2: allocate SGT from first segment
This patch enables support to use the first segment
headroom to build the HW required Scatter Gather
Table. (if space is available).
This will avoid 1 less buffer for SG buffer creation.
Rohit Raj [Wed, 24 Feb 2021 12:42:52 +0000 (18:12 +0530)]
net/dpaa: fix getting link status
According to DPDK Documentation, rte_eth_link_get API can wait up to 9
seconds for auto-negotiation to finish and then returns link status.
In current implementation of rte_eth_link_get API in DPAA drivers, it
was not waiting for auto negotiation to finish and was returning link
status DOWN
It can cause issues with DPDK applications which relies
on rte_eth_link_get API for link statusand does not support link status
interrupt.
This patch fixes this bug by adding wait for up to 9 seconds for auto
negotiation to finish.
Fixes: 2aa10990a8dd ("bus/dpaa: enable link state interrupt") Cc: stable@dpdk.org Signed-off-by: Rohit Raj <rohit.raj@nxp.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Rohit Raj [Wed, 24 Feb 2021 12:42:51 +0000 (18:12 +0530)]
net/dpaa2: fix getting link status
According to DPDK Documentation, rte_eth_link_get API can wait up to 9
seconds for auto-negotiation to finish and then returns link status.
In current implementation of rte_eth_link_get API in DPAA2 drivers, it
was not waiting for auto negotiation to finish and was returning link
status DOWN
It can cause issues with DPDK applications which relies on
rte_eth_link_get API for link status and does not support link status
interrupt.
Similar kind of issue was seen in TRex Application.
This patch fixes this bug by adding wait for up to 9 seconds for auto
negotiation to finish.
Nipun Gupta [Wed, 24 Feb 2021 12:42:50 +0000 (18:12 +0530)]
bus/dpaa: fix statistics reading
Reading of word un-aligned values after reading word aligned
values lead to corruption of memory.
This patch make changes such that word aligned access is made,
before making an un-aligned access
Youri Querry [Wed, 24 Feb 2021 12:42:49 +0000 (18:12 +0530)]
bus/fslmc: fix random portal hangs with qbman 5.0
Random portal hangs observed on device with QBMAN 5.0
This fixes few random packet hang issues in event mode.
Few things fixed it.
1. Generally, pi == ci, no need for extra checks.
2. The proper initializations in init with ci
Fixes: 1b49352f41be ("bus/fslmc: rename portal pi index to consumer index") Cc: stable@dpdk.org Signed-off-by: Youri Querry <youri.querry_1@nxp.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Ferruh Yigit [Fri, 5 Feb 2021 14:26:50 +0000 (14:26 +0000)]
app/testpmd: remove duplicated offload display
"show port cap all|<port_id>" was to display offload configuration of
port(s).
But later two other commands added to show same information in more
accurate way:
show port (port_id) rx_offload configuration
show port (port_id) tx_offload configuration
These new commands can both show port and queue level configuration,
also with their capabilities counterparts easier to see offload
capability and configuration of the port in similar syntax.
So the functionality is duplicated and removing this version, to favor
the new commands.
Another problem with this command is it requires each new offload to be
added into the function to display them, and there were missing offloads
that are not displayed, this requirement for sure will create gaps by
time as new offloads added.
net/mlx5: fix metadata item validation for ingress flows
In legacy metadata mode the metadata register B is engaged to
handle the metadata item. In the ingress domain the hardware
supports the register setting only, the match on register B
is not supported.
Due to this limitation only the SET_META action can be supported
for the ingress flows, the META item should be rejected on
flow validation.
Dekel Peled [Thu, 18 Feb 2021 16:18:05 +0000 (18:18 +0200)]
common/mlx5: fix DevX read output buffer size
Previous patch included a glue function call, with wrong size
calculation for an output buffer.
This patch fixes the issue, using the correct size calculation.
Wrong modification field ID is used for TCP flags: the inner
TCP flag field is changing instead of the outermost one.
Use the proper field ID to match the expectations.
Fixes: 641dbe4fb053 ("net/mlx5: support modify field flow action") Cc: stable@dpdk.org Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
net/mlx5: fix external buffer pool registration for Rx queue
On Rx queue creation the mlx5 PMD registers the data buffers of the
specified pools for DMA operations. It scans the mem_list of the pools
and creates the MRs (DMA related NIC objects) for the chunks found.
If the pool is created with rte_pktmbuf_pool_create_extbuf() and
refers to the external attached buffers (whose are in the area of
application responsibility and it should explicitly register the
data buffer memory for DMA with rte_dev_dma_map() call) the chunks
contain the mbuf structures only, w/o any built-in data buffers.
Hence, DMA with mlx5 NIC never happens to this area and there is
no need to create MRs for these ones.
The extra not needed MRs were created for the pools with external
buffers causing MR cache load and performance was slightly affected.
The patch checks the mbuf pool type and skips MR creation for the
pools with external buffers.
Ido Goshen [Thu, 4 Feb 2021 10:33:57 +0000 (12:33 +0200)]
net/pcap: support imissed stats
Get value from pcap_stats.ps_drop (see man pcap_stats)
the value is adjusted in this cases:
- port stop - pcap is closed and will lose count
- stats reset - pcap doesn't provide reset api
- rollover - pcap counter size is u_32 only
The vmxnet3 driver didn't have the dev_reset function
pointer set. Hence, provided the necessary function
pointer so that DPDK developers can use the rte_eth_dev_reset
API to reset the vmxnet3 device data.
Signed-off-by: Dheemanth Mallikarjun <dheemanthm@vmware.com> Acked-by: Yong Wang <yongwang@vmware.com>
Andrew Rybchenko [Tue, 22 Dec 2020 08:00:04 +0000 (11:00 +0300)]
net/failsafe: fix RSS hash offload reporting
If sub-devices support RSS hash offload, the offload should be
reported by the failsafe device since handling is transparent
from failsafe point of view.
Fixes: 5d308972954c ("ethdev: add mbuf RSS update as an offload") Cc: stable@dpdk.org Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Gaetan Rivet <grive@u256.net>
Lance Richardson [Fri, 12 Feb 2021 21:24:52 +0000 (16:24 -0500)]
app/testpmd: display Rx queue used descriptor count
Add support for displaying the count of used (filled by hardware
but not yet processed by the driver) descriptors on a receive
queue in order to allow the rte_eth_dev rx_queue_count() API to
be exercised and tested.
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com> Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
Anatoly Burakov [Fri, 19 Feb 2021 17:54:45 +0000 (17:54 +0000)]
fbarray: fix log message on truncation error
When file truncation fails, the log message attempts to print a path of
file we failed to truncate, but this path was never set to anything and,
what's worse, was uninitialized. Fix it by passing path from the caller.
Currently, we don't detach the shared memory on EAL cleanup, which
leaves the page table descriptors still holding on to the file
descriptors as well as memory space occupied by them. Fix it by adding
another detach stage that closes the internal memory allocator resource
references, detaches shared fbarrays and unmaps the shared mem config.
Bugzilla ID: 380
Bugzilla ID: 381
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
David Marchand [Mon, 25 Jan 2021 15:05:39 +0000 (16:05 +0100)]
ci: catch coredumps
Parts of the unit tests code rely on forked/secondary processes
(expectedly) failing.
A crash in those situations could be missed so add a check on coredumps
presence after unit tests have run.
When unit tests fail, it can also help checking for coredumps as it
could give more insights on what happened.
In some situations (like explicit call to rte_panic), coredump generation
must be disabled to avoid false positives.
Ferruh Yigit [Thu, 25 Feb 2021 10:54:49 +0000 (10:54 +0000)]
power: remove duplicated symbols from map file
This is causing build error, like:
https://travis-ci.com/github/ovsrobot/dpdk/jobs/482121104
Also '@internal' marker removed from doxygen comment, since public API
should not be internal.
Experimental tag removed from 'rte_power_guest_channel_send_msg()'
Fixes: 4d3892dcd77b ("power: make channel message functions public") Cc: stable@dpdk.org Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
Juraj Linkeš [Tue, 23 Feb 2021 08:28:24 +0000 (09:28 +0100)]
ci: update arm64 Travis jobs to Graviton2
Use only the newer Graviton2 environment in Travis CI instead of using
the older platform, which has intermittent issues:
1. collect2: fatal error: ld terminated with signal 9 [Killed]
2. ticketlock_autotest sometimes times out
These failures hint at resource availability issues in container
environments. The Graviton2 environment is using VMs and these failures
are not observed in it.
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Aaron Conole <aconole@redhat.com>
Currently external memory test uses 4K page size.
VFIO DMA mapping works only with system page granularity.
Earlier it was working because all the contiguous mappings
were coalesced and mapped in one-go which ended up becoming
a lot bigger page. Now that VFIO DMA mappings both in IOVA as VA
and IOVA as PA mode, are being done at memseg list granularity,
we need to use system page size.
Partial unmapping is not supported for VFIO IOMMU type1
by kernel. Though kernel gives return as zero, the unmapped size
returned will not be same as expected. So check for
returned unmap size and return error.
For IOVA as PA, DMA mapping is already at memseg size
granularity. Do the same even for IOVA as VA mode as
DMA map/unmap triggered by heap allocations,
maintain granularity of memseg page size so that heap
expansion and contraction does not have this issue.
For user requested DMA map/unmap disallow partial unmapping
for VFIO type1.
Fixes: 73a639085938 ("vfio: allow to map other memory regions") Cc: stable@dpdk.org Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: David Christensen <drc@linux.vnet.ibm.com>
In order to save DMA entries limited by kernel both for external
memory and hugepage memory, an attempt was made to map physically
contiguous memory in one go. This cannot be done as VFIO IOMMU type1
does not support partially unmapping a previously mapped memory
region while Heap can request for multi page mapping and
partial unmapping.
Hence for going back to old method of mapping/unmapping at
memseg granularity, this commit reverts
commit d1c7c0cdf7ba ("vfio: map contiguous areas in one go")
Also add documentation on what module parameter needs to be used
to increase the per-container dma map limit for VFIO.
Fixes: d1c7c0cdf7ba ("vfio: map contiguous areas in one go") Cc: stable@dpdk.org Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: David Christensen <drc@linux.vnet.ibm.com>
Kevin Traynor [Fri, 12 Feb 2021 14:46:28 +0000 (14:46 +0000)]
doc: update pyelftools install method
python-pyelftools is not packaged for RHEL/CentOS with
the exception of RHEL7 EPEL.
Add command to install it with pip.
Fixes: f0f93a7adfee ("buildtools: use Python pmdinfogen") Signed-off-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Thomas Monjalon [Thu, 11 Feb 2021 18:16:59 +0000 (19:16 +0100)]
doc: replace hugepages commands with dedicated tool
The tool dpdk-hugepages.py, added in DPDK 20.11,
is referenced in the guides instead of more complicate commands.
The original Linux commands are kept in linux_gsg/sys_reqs.rst
and nics/build_and_test.rst.
Suggested-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Yongxin Liu [Mon, 23 Nov 2020 03:05:33 +0000 (11:05 +0800)]
usertools: fix binding built-in kernel driver
A driver can be loaded as a dynamic module or a built-in module.
In commit 681a67288655 ("usertools: check if module is loaded
before binding"), the script only checks modules in /sys/module/.
However, for built-in kernel driver, it only shows up in /sys/module/,
if it has a version or at least one parameter. So add check for
modules in /lib/modules/$(uname -r)/modules.builtin.
Fixes: 681a67288655 ("usertools: check if module is loaded before binding") Cc: stable@dpdk.org Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>