Joyce Kong [Wed, 17 Nov 2021 08:21:51 +0000 (08:21 +0000)]
test/timer: use compiler atomic builtins for sync
Convert rte_atomic usages to compiler atomic
built-ins for lcore_state and collisions sync.
Also, move 'main_init_workers' outside of
'timer_stress2_main_loop' to guarantee lcore_state
initialized correctly before the threads launched.
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Joyce Kong [Wed, 17 Nov 2021 08:21:52 +0000 (08:21 +0000)]
test/stack_perf: use compiler atomics for lcore sync
Convert rte_atomic usages to compiler atomic built-ins
for lcore sync in stack_perf test cases.
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Joyce Kong [Wed, 17 Nov 2021 08:21:50 +0000 (08:21 +0000)]
test/ring_perf: use compiler atomic builtins for lcores sync
Convert rte_atomic usages to compiler atomic built-ins
for lcores sync in ring_perf test cases.
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Joyce Kong [Wed, 17 Nov 2021 08:21:49 +0000 (08:21 +0000)]
test/pmd_perf: use compiler atomic builtins for polling sync
Convert rte_atomic usages to compiler atomic built-ins
for polling sync in pmd_perf test cases.
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Joyce Kong [Wed, 17 Nov 2021 08:21:54 +0000 (08:21 +0000)]
test/func_reentrancy: use compiler atomics for data sync
Convert rte_atomic usages to compiler atomic built-ins
for shared data sync in func_reentrancy test cases.
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Joyce Kong [Wed, 17 Nov 2021 08:21:53 +0000 (08:21 +0000)]
test/bpf: use compiler atomics for calculation
Convert rte_atomic usages to compiler atomic built-ins
for calculation in bpf test cases.
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Miao Li [Wed, 17 Nov 2021 10:35:31 +0000 (10:35 +0000)]
examples/l3fwd-power: add wakeup log
This patch adds a log in main telemetry loop to show the thread has
woken up and begun to send and receive packets.
Signed-off-by: Miao Li <miao.li@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
Raslan Darawsheh [Tue, 16 Nov 2021 14:12:26 +0000 (16:12 +0200)]
app/flow-perf: fix parsing of invalid option
Currently, if an invalid parameter is passed to the application
it will cause a crash due to missing default in options.
For example:
./dpdk-test-flow-perf -a 01:00.0 -- --invalid
This adds missing default for options, and prints the
invalid option.
Fixes:
3344cf2e3001 ("app/flow-perf: add flow performance skeleton")
Cc: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
Michael Baum [Tue, 16 Nov 2021 14:36:35 +0000 (16:36 +0200)]
common/mlx5: fix redundant field in MR control structure
Inside the MR control structure there is a pointer to the common device.
This pointer enables access to the global cache as well as hardware
objects that may be required in case a new MR needs to be created.
The purpose of adding this pointer into the MR control structure was to
avoid its transfer as a parameter to all the functions of searching MR
in the caches.
However, adding it to this structure increased the Rx and Tx data-path
structures, all the fields that followed it were slightly moved away
which caused to a reduction in performance.
This patch removes the pointer from the structure. It can be accessed
through the "dev_gen_ptr" existing field using the "container_of"
operator.
Fixes:
334ed198ab4d ("common/mlx5: remove redundant parameter in MR search")
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Konstantin Ananyev [Tue, 9 Nov 2021 12:32:04 +0000 (12:32 +0000)]
ip_frag: add namespace
Update public macros to have RTE_IP_FRAG_ prefix.
Update DPDK components to use new names.
Keep obsolete macro for compatibility reasons.
Renamed experimental function ``rte_frag_table_del_expired_entries``to
``rte_ip_frag_table_del_expired_entries`` to comply with other public
API naming convention.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Vladimir Medvedkin [Tue, 16 Nov 2021 14:33:29 +0000 (14:33 +0000)]
hash: fix Toeplitz hash implementation
This patch fixes various issues:
- replace _mm512_set_epi8 with _mm512_set_epi32 due to the lack
of support by some compilers (at least, gcc 8),
- check if AVX512F is supported along with GFNI, this is done if the code
is built on a platform that supports GFNI, but does not support AVX512,
- fix compilation problems on 32bit arch due to lack of support for
_mm_extract_epi64() by implementing XOR folding with
_mm_extract_epi32() on 32-bit arch,
Fixes:
4fd8c4cb0de1 ("hash: add new Toeplitz hash implementation")
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Lance Richardson <lance.richardson@broadcom.com>
Acked-by: Kai Ji <kai.ji@intel.com>
David Marchand [Tue, 16 Nov 2021 20:51:35 +0000 (21:51 +0100)]
examples/ntb: fix build dependency
Caught while building with -Ddisable_drivers=*/*.
This example requires raw/ntb specific API.
Fix dependency to avoid a compilation error:
FAILED: examples/
c590b3c@@dpdk-ntb@exe/ntb_ntb_fwd.c.o
ccache gcc -Iexamples/
c590b3c@@dpdk-ntb@exe -Iexamples -I../examples
-Iexamples/ntb -I../examples/ntb -I. -I../ -Iconfig -I../config
-Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include
-I../lib/eal/linux/include -Ilib/eal/x86/include
-I../lib/eal/x86/include -Ilib/eal/common -I../lib/eal/common
-Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs
-Ilib/telemetry/../metrics -I../lib/telemetry/../metrics
-Ilib/telemetry -I../lib/telemetry -Ilib/mempool -I../lib/mempool
-Ilib/ring -I../lib/ring -Ilib/net -I../lib/net -Ilib/mbuf
-I../lib/mbuf -Ilib/ethdev -I../lib/ethdev -Ilib/meter
-I../lib/meter -Ilib/cmdline -I../lib/cmdline -Ilib/rawdev
-I../lib/rawdev -fdiagnostics-color=always -pipe -Wall
-Winvalid-pch -Werror -O2 -g -include rte_config.h -Wextra
-Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral
-Wformat-security -Wmissing-declarations -Wmissing-prototypes
-Wnested-externs -Wold-style-definition -Wpointer-arith
-Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings
-Wno-missing-field-initializers -D_GNU_SOURCE -march=corei7
-Wno-format-truncation -D_FILE_OFFSET_BITS=64
-DALLOW_EXPERIMENTAL_API -MD
-MQ 'examples/
c590b3c@@dpdk-ntb@exe/ntb_ntb_fwd.c.o'
-MF 'examples/
c590b3c@@dpdk-ntb@exe/ntb_ntb_fwd.c.o.d'
-o 'examples/
c590b3c@@dpdk-ntb@exe/ntb_ntb_fwd.c.o'
-c ../examples/ntb/ntb_fwd.c
../examples/ntb/ntb_fwd.c:21:10: fatal error: rte_pmd_ntb.h:
No such file or directory
#include <rte_pmd_ntb.h>
^~~~~~~~~~~~~~~
compilation terminated.
Fixes:
5194299d6ef5 ("examples/ntb: support more functions")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Dmitry Kozlyuk [Fri, 12 Nov 2021 22:17:08 +0000 (01:17 +0300)]
doc: discourage using Meson 0.58 on Windows
Meson 0.58 and above cannot build DPDK on Windows with clang.
Recommend the latest known working version
and warn about the issue and the affected versions.
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Dmitry Kozlyuk [Fri, 12 Nov 2021 21:48:26 +0000 (00:48 +0300)]
config/x86: fix MinGW cross build with Meson 0.49
Cross build with MinGW was broken for the baseline meson 0.49.2.
Cause: in c_args = '-mno-avx512f' from config/x86/cross-mingw,
each character was treated as a separate compiler option:
meson.build:4:0: ERROR: Compiler x86_64-w64-mingw32-gcc can not compile programs.
With c_args = ['-mno-avx512f'] configuration passed, but build failed,
because Meson placed -mno-avx512f after -mavx512f in CFLAGS:
In file included from /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/include/immintrin.h:55,
from /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/include/x86intrin.h:32,
from ../dpdk/lib/net/net_crc_avx512.c:13:
/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/include/avx512fintrin.h:1650:1:
error: inlining failed in call to always_inline _mm512_ternarylogic_epi64:
target specific option mismatch
1650 | _mm512_ternarylogic_epi64 (__m512i __A, __m512i __B, __m512i __C,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../dpdk/lib/net/net_crc_avx512.c:59:9: note: called from here
59 | return _mm512_ternarylogic_epi64(tmp0, tmp1, data_block, 0x96);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Additionally, -m[no-]avx512f flag is expected to be in machine_args
by all the checks in meson.build files.
Commit
419c6e9af69e ("net/i40e: fix build for Windows MinGW")
fixed the errors cause by MinGW using AVX512F on Windows.
The binutils AVX512F bug check is now portable,
so enable it for Windows to switch AVX512 support on and off
without any special logic for MinGW.
Fixes:
549bfc83168f ("config: disable AVX512 with MinGW")
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Dmitry Kozlyuk [Fri, 12 Nov 2021 21:48:25 +0000 (00:48 +0300)]
buildtools: make AVX512 check portable
buildtools/binutils-avx512-check.sh was Unix-only
and could not be used in cross builds:
1) written in shell;
2) used the assembler binary that may be missing,
e.g. when building on Windows with LLVM;
3) located the assembler as ${AS:-as} and referenced objdump,
but those binaries may be overridden via --cross-file.
Rewrite the script in Python.
Use the C compiler for the check.
Locate objdump and the C compiler using Meson.
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Dmitry Kozlyuk [Fri, 12 Nov 2021 21:48:24 +0000 (00:48 +0300)]
config/x86: skip GNU binutils bug check for LLVM
AVX512 was disabled when GNU binutils were missing or had a known bug,
even if LLVM binutils were used for the build,
because binutils-avx512-check.sh was invoked regardless and failed.
In particular, this was the case for FreeBSD with clang (default).
Run the check only when GNU binutils are used.
Fixes:
68b1f1cda5b4 ("build: check AVX512 rather than binutils version")
Cc: stable@dpdk.org
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Elena Agostini [Mon, 15 Nov 2021 23:03:28 +0000 (23:03 +0000)]
app/gpudev: improve output
Signed-off-by: Elena Agostini <eagostini@nvidia.com>
Stephen Hemminger [Fri, 12 Nov 2021 00:02:09 +0000 (16:02 -0800)]
fix spelling in comments and doxygen
Fix spelling errors in comments including doxygen found using codespell.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Elena Agostini [Tue, 16 Nov 2021 22:50:18 +0000 (22:50 +0000)]
gpu/cuda: introduce CUDA driver
This is the CUDA implementation of the gpudev library.
Functionalities implemented through CUDA Driver API are:
- Device probe and remove
- Manage device memory allocations
- Register/unregister external CPU memory in the device memory area
Signed-off-by: Elena Agostini <eagostini@nvidia.com>
David Marchand [Wed, 27 Oct 2021 14:04:58 +0000 (16:04 +0200)]
test: move RED to extra tests list
This test gives random failures, move it to extra until we have a fix.
See: https://bugs.dpdk.org/show_bug.cgi?id=826
Signed-off-by: David Marchand <david.marchand@redhat.com>
David Marchand [Wed, 27 Oct 2021 14:04:57 +0000 (16:04 +0200)]
test: create a list of extra tests
We removed some tests from the "CI" (fast-tests) list because they
were not reliable enough or did not make sense as non regression tests.
Since we still build those tests code, leave an option for users to call
them.
This list can also serve as a point where to document why test X is not
suitable for the "CI" list.
Signed-off-by: David Marchand <david.marchand@redhat.com>
David Marchand [Wed, 27 Oct 2021 14:04:10 +0000 (16:04 +0200)]
test: remove unnecessary test commands
EAL and rwlock tests have been split into smaller unit tests now listed
in meson.
Nothing is referencing eal_flags_autotest and rwlock_autotest anymore,
since we dropped the python wrapper.
Fixes:
8c745bb62340 ("test: remove autotest python wrapper")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Joyce Kong [Fri, 12 Nov 2021 06:37:03 +0000 (00:37 -0600)]
examples/flow_filtering: enhance code snippet readability
The 'IPv4' in the comment is to mark the code snippet, while it made
some confusion. Then removing 'IPv4' description will be clearer.
Fixes:
9a212dc06c7a ("doc: use code snippets in sample app guides")
Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Conor Walsh <conor.walsh@intel.com>
Gregory Etelson [Wed, 10 Nov 2021 16:57:59 +0000 (18:57 +0200)]
examples/multi_process: fix Rx packets distribution
MP servers distributes Rx packets between clients according to
round-robin scheme.
Current implementation always started packets distribution from
the first client. That procedure resulted in uniform distribution
in cases when Rx packets number was around clients number
multiplication. However, if RX burst repeatedly returned single
packet, round-robin scheme would not work because all packets
were assigned to the first client only.
The patch does not restart packets distribution from
the first client.
Packets distribution always continues to the next client.
Fixes:
af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Harneet Singh [Fri, 29 Oct 2021 14:05:56 +0000 (14:05 +0000)]
examples/l3fwd-power: fix early shutdown
Currently, EAL init cannot be interrupted with SIGINT because the
signal handler is already overridden by the time EAL init happens.
Fix it by moving signal handler installation to after EAL
initialization, to allow SIGNIT to interrupt EAL initialization.
Fixes:
d7937e2e3d12 ("power: initial import")
Fixes:
613ce6691c0d ("examples/l3fwd-power: implement proper shutdown")
Cc: stable@dpdk.org
Signed-off-by: Harneet Singh <harneet.singh@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Stephen Hemminger [Mon, 15 Nov 2021 23:29:56 +0000 (15:29 -0800)]
test/bpf: do not require DNS lookup
These tests were using strings with hostname (dpdk.org) and this makes
test code do a DNS lookup. In container environment used for OpenSuse
build, DNS is unavailable. Replace dpdk.org with an IPv4 address
reserved for documentation (RFC5737) and use IPv6 in one example
(RFC3849). Actual addresses don't matter for this test which is
validating that code generated in classic BPF can be successfully
converted to eBPF.
Fixes:
2eccf6afbea9 ("bpf: add function to convert classic BPF to DPDK BPF")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Luca Boccassi <bluca@debian.org>
Arek Kusztal [Fri, 12 Nov 2021 12:01:56 +0000 (12:01 +0000)]
common/qat: fix queue pair config overrun
This commit fixes overrun of ring configuration
due to insufficient check.
Fixes:
4badfb0205f7 ("common/qat: fix queue pairs number")
Cc: stable@dpdk.org
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
Gagandeep Singh [Fri, 12 Nov 2021 07:53:48 +0000 (13:23 +0530)]
test/crypto: fix output buffer length
Input buffer length is getting appended with
padding length when the test case is encrypted
digest, but output buffer length is appended
with padding length for all the cases.
This patch fixes the output buffer length
by appending the padding length only when the
test case is of encrypted digest type.
Fixes:
6356c28642a6 ("test/crypto: add cases for block cipher encrypted digest")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Raja Zidane [Thu, 11 Nov 2021 13:51:33 +0000 (13:51 +0000)]
crypto/mlx5: support BlueField 2 and ConnectX-6 Dx devices
Starting from FW version xx.32.0108. version, the BlueField 2 and
ConnectX-6 Dx adapters support crypto operations.
Add them to the supported PCI devices list.
Signed-off-by: Raja Zidane <rzidane@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Acked-by: Tal Shnaiderman <talshn@nvidia.com>
Ciara Power [Thu, 11 Nov 2021 10:56:19 +0000 (10:56 +0000)]
test/crypto: remove unnecessary stats retrieval
The device stats are retrieved in the testcase teardown function,
but are not being used afterwards. Remove this unnecessary call.
The stats retrieval for the device is being tested already by a
dedicated stats testcase.
Fixes:
202d375c60bc ("app/test: add cryptodev unit and performance tests")
Cc: stable@dpdk.org
Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Anoob Joseph [Thu, 11 Nov 2021 11:48:42 +0000 (17:18 +0530)]
common/cpt: fix KASUMI input length
Fix kasumi input len calculation to consider encr_offset.
Fixes:
da39e3eccd3d ("common/cpt: support KASUMI")
Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Anoob Joseph [Thu, 11 Nov 2021 11:44:29 +0000 (17:14 +0530)]
crypto/cnxk: fix KASUMI input length
Fix kasumi input len calculation to consider encr_offset.
Fixes:
546dff20a034 ("crypto/cnxk: add KASUMI decryption")
Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Anoob Joseph [Mon, 8 Nov 2021 15:13:46 +0000 (20:43 +0530)]
test/crypto: fix missing return checks
The API could return errors. Add error checking for the same.
Fixes:
b3bbd9e5f265 ("cryptodev: support device independent sessions")
Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Radu Nicolau [Tue, 9 Nov 2021 09:51:40 +0000 (09:51 +0000)]
examples/ipsec-secgw: fix telemetry memory leaks
Free telemetry structures when memory allocation
or input parameter errors occur.
Fixes:
3e7b7dd88021 ("examples/ipsec-secgw: support telemetry")
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Kai Ji [Tue, 9 Nov 2021 10:42:31 +0000 (10:42 +0000)]
test/crypto: fix data lengths
This patch fixes incorrect data lengths computation in cryptodev
unit test. Previously some data lengths were incorrectly set, which
was insensitive for crypto op unit tets but is critical for raw data
path API unit tests. The patch addressed the issue by setting the
correct data lengths for some tests.
Fixes:
681f540da52b ("cryptodev: do not use AAD in wireless algorithms")
Fixes:
e847fc512817 ("test/crypto: add encrypted digest case for AES-CTR-CMAC")
Fixes:
b1c1df46878d ("test/crypto: add ZUC test cases for auth-cipher")
Cc: stable@dpdk.org
Signed-off-by: Kai Ji <kai.ji@intel.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Anoob Joseph [Wed, 10 Nov 2021 13:04:08 +0000 (18:34 +0530)]
test/crypto: skip plain text compare for null cipher
NULL cipher is used for validating auth only cases. With NULL cipher,
validating plain text should not be done as the PMD is only expected
to update auth data.
Fixes:
e847fc512817 ("test/crypto: add encrypted digest case for AES-CTR-CMAC")
Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Ciara Power <ciara.power@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Rashmi Shetty [Mon, 15 Nov 2021 16:34:44 +0000 (10:34 -0600)]
event/dlb2: fix delayed pop test in selftest
Number of events scheduled and available for dequeue
after token pop was set to dequeue_depth-1 instead of
dequeue_depth in test_delayed_pop. The expectation is
that all dequeue_depth number of events can be dequeued
once the last event is released.
Fixes:
07d55c418d47 ("event/dlb2: add delayed token pop logic")
Cc: stable@dpdk.org
Signed-off-by: Rashmi Shetty <rashmi.shetty@intel.com>
Reviewed-by: Mike Ximing Chen <mike.ximing.chen@intel.com>
Mattias Rönnblom [Wed, 10 Nov 2021 11:32:10 +0000 (12:32 +0100)]
eventdev: negate maintenance capability flag
Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need
for the application to call rte_event_maintain(), with
RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e.,
signifies that the event device does not require maintenance).
This approach is more in line with how other eventdev hardware and/or
software limitations are handled in the Eventdev API.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Mattias Rönnblom [Wed, 10 Nov 2021 11:14:00 +0000 (12:14 +0100)]
eventdev/eth_rx: fix stalls on event device backpressure
In the Eventdev Ethernet RX Adapter, correctly handle the case where
the circular enqueue buffer head and last index point to the same
element.
This bug may be triggered in case there is backpressure from the event
device to the RX adapter.
Fixes:
8113fd15e229 ("eventdev/eth_rx: make enqueue buffer circular")
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
Naga Harish K S V [Tue, 9 Nov 2021 07:33:33 +0000 (01:33 -0600)]
eventdev/eth_tx: fix queue delete logic
This patch fixes heap-use-after-free reported by ASan.
The application can use the queue_id as `-1` to delete all
the queues of the eth_device that are added to tx_adapter
instance.
In above case, the queue_del API is trying to use number of
queues from adapter level instead of eth_device queues.
When there are queues added from multiple eth devices,
it will result in heap-use-after-free as reported by ASAN.
This patch fixes the queue_del API to use correct number of
queues.
Bugzilla ID: 869
Fixes:
a3bbf2e09756 ("eventdev: add eth Tx adapter implementation")
Cc: stable@dpdk.org
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
Tested-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:55 +0000 (17:58 +0000)]
examples/performance-thread: remove unused hits count
Reported by clang 13.
This patch removes the hits variable from the cpu_load_collector function
within the performance thread example app as it is an unused but set
variable.
Bugzilla ID: 881
Fixes:
d48415e1fee3 ("examples/performance-thread: add l3fwd-thread app")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:50 +0000 (17:58 +0000)]
test/distributor: remove unused counter
Reported by clang 13.
This patch fixes unused but set variables in the distributor test perf.
Bugzilla ID: 881
Fixes:
c0de0eb82e40 ("distributor: switch over to new API")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/vmxnet3: fix build with clang 13
The completed variable is used for debug logs even though clang 13
reports it as unused.
Bugzilla ID: 881
Fixes:
c3ecdbb376da ("vmxnet3: support TSO")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/txgbe: fix build with clang 13
eicr serves as a placeholder for some read-on-clear nic register.
clang 13 reports it as unused.
Bugzilla ID: 881
Fixes:
b7311360fb67 ("net/txgbe: support VF interrupt")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/qede/base: remove unused message size
Reported by clang 13.
Bugzilla ID: 881
Fixes:
86a2265e59d7 ("qede: add SRIOV support")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/nfp: remove unused message length
Reported by clang 13.
Bugzilla ID: 881
Fixes:
29a62d1476b6 ("net/nfp: add CPP bridge as service")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/liquidio: remove unused counter
Reported by clang 13.
Bugzilla ID: 881
Fixes:
5ee7640f95a0 ("net/liquidio: add API to flush IQ")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/bnxt: remove some unused variables
Reported by clang 13.
Bugzilla ID: 881
Fixes:
b87abb2e55cb ("net/bnxt: support marking packet")
Fixes:
88badb3aef94 ("net/bnxt: add helper functions for blob/regfile ops")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:53 +0000 (17:58 +0000)]
event/sw: remove unused inflight events count
Reported by clang 13.
This patch removes the inflights variable from the sw_dump function
within the software section of the event driver as it is an unused but
set variable.
Bugzilla ID: 881
Fixes:
c66baa68e453 ("event/sw: add dump function for easier debugging")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:51 +0000 (17:58 +0000)]
bus/fslmc: remove unused device count
Reported by clang 13.
This patch removes the device_count variable from the rte_fslmc_scan
function within the fslmc bus driver as it is an unused but set variable.
Bugzilla ID: 881
Fixes:
828d51d8fc3e ("bus/fslmc: refactor scan and probe functions")
Cc: stable@dpdk.org
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:50 +0000 (17:58 +0000)]
test/thash: fix build with clang 13
run_rss_calc() is used to compare the number of cycles spent computing a
hash value for different implementations.
clang 13 reports the hash variable as being unused, but run_rss_calc()
needs this variable as a placeholder for computing the hash value.
Bugzilla ID: 881
Fixes:
239fffe0402e ("test/thash: add performance tests for Toeplitz hash")
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:50 +0000 (17:58 +0000)]
net/octeontx: remove unused packet length
Reported by clang 13.
Bugzilla ID: 881
Fixes:
9eb5cb3b11cc ("net/octeontx: fix access to indirect buffers")
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:54 +0000 (17:58 +0000)]
net/hinic/base: remove some unused variables
Reported by clang 13.
Bugzilla ID: 881
Fixes:
a4957d87e05a ("net/hinic/base: add mgmt module")
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Conor Walsh [Mon, 15 Nov 2021 17:58:52 +0000 (17:58 +0000)]
common/qat: remove unused time counter
Reported by clang 13.
This patch removes the us variable from the qat_pf2vf_exch_msg function
within the PF to VF section of the QAT driver as it is an unused but set
variable.
Bugzilla ID: 881
Fixes:
b17d16fb47b4 ("common/qat: add PF to VF communication")
Reported-by: Liang Longfeng <longfengx.liang@intel.com>
Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Rongwei Liu [Thu, 11 Nov 2021 14:23:40 +0000 (16:23 +0200)]
doc: fix indentation in flow-perf guide
The --meter section used wrong indentation previously.
Fixes:
6a2cf58a045f ("app/flow-perf: support meter action")
Cc: stable@dpdk.org
Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
Rongwei Liu [Thu, 11 Nov 2021 14:23:39 +0000 (16:23 +0200)]
app/flow-perf: add packet metering mode
The flow perf application uses the srtcm_rfc2697 as meter profile
while doing the meter testing.
This patch adds new configuration parameter '--packet-mode' to
generate the meter flows with packet cir instead of byte cir.
Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
Rongwei Liu [Thu, 11 Nov 2021 14:23:38 +0000 (16:23 +0200)]
app/flow-perf: support dynamic values for meter profile
Change meter-cir option to meter-profile to cover user input for CIR,
CBS & EBS values.
The usage is as below:
--meter-profile=N1,N2,N3 default value is
1250000 156250 0.
Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
Rongwei Liu [Thu, 11 Nov 2021 14:23:37 +0000 (16:23 +0200)]
app/flow-perf: support meter policy API
Add option "policy-mtr" to indicate if meter creation will include policy
or not. Meter creation will keep unchanged without it.
With "policy-mtr", the policy is introduced. API create_meter_policy
is to create a policy. API create_meter_rule will use it to create
a meter. The value of it is used to specify meter policy actions.
Signed-off-by: Haifei Luo <haifeil@nvidia.com>
Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
Rongwei Liu [Thu, 11 Nov 2021 14:23:36 +0000 (16:23 +0200)]
app/flow-perf: move flow options as global
With flow_options defined as global struct, it's possible
to use sub-functions to handle run-time options.
It's helpful to avoid too many tabs warnings.
Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
David Christensen [Mon, 15 Nov 2021 21:38:47 +0000 (13:38 -0800)]
eal/ppc: support ASan
Add support for Address Sanitizer (ASan) for PPC/POWER architecture.
Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
David Marchand [Fri, 12 Nov 2021 13:56:45 +0000 (14:56 +0100)]
test/red: fix typo in test description
This is probably due a s/red/rte_red/ a long time ago.
Fixes:
de3cfa2c9823 ("sched: initial import")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@yahoo.com>
Pavan Nikhilesh [Fri, 5 Nov 2021 08:38:51 +0000 (14:08 +0530)]
examples/l3fwd: use reserved addresses for EM mode
The l3fwd example should use the reserved IPv4/v6 reserved address
ranges defined in RFC5735, RFC5180 and RFC863 discard protocol for
the port number in the exact match mode of L3 forwarding.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Pavan Nikhilesh [Fri, 5 Nov 2021 08:38:50 +0000 (14:08 +0530)]
examples/l3fwd: print device name when adding routes
Since the number of Ethernet ports have gone up, print the device name
(which for PCI devices is the BDF triplet), along with the routes.
This is also helpful for cases where allow listing order is not honored.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Pavan Nikhilesh [Fri, 5 Nov 2021 08:38:49 +0000 (14:08 +0530)]
examples/l3fwd: increase number of routes
Increase the number of routes from 8 to 16 that are statically added for
lpm and em mode as most of the SoCs support more than 8 interfaces.
The number of routes added is equal to the number of ethernet devices
ports enabled through port mask.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Reviewed-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Ciara Loftus [Fri, 12 Nov 2021 10:30:02 +0000 (10:30 +0000)]
net/af_xdp: workaround custom program loading
Since v0.4.0, if the underlying kernel supports it, libbpf uses 'bpf
link' to manage the programs on the interfaces of the XDP sockets (xsks).
This is not compatible with the PMD's custom XDP program loading feature
which uses the netlink-based method for loading custom programs.
The conflict arises when libbpf searches for a custom program on the
interface using bpf link, but doesn't find one because the netlink
method was used. libbpf then proceeds to try to load the default program
on the interface, but fails due to the presence of the custom program.
To work around this, the PMD now uses the
XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD flag which prevents libbpf from
attempting to search for or load a program. One repercussion is that
DPDK must now insert the xsk into the xsks_map as this was previously
handled by libbpf during the routines for program loading/probing.
Ideally, the PMD would use bpf link to load the custom program, however
at present there is no convenient and reliable way of detecting whether
the underlying kernel supports bpf link. Perhaps this may become
available in a future libbpf release, at which point we can switch the
PMD over to the new bpf link based method.
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Ciara Loftus [Fri, 12 Nov 2021 10:30:01 +0000 (10:30 +0000)]
net/af_xdp: revert use BPF link for XDP programs
The commit
ae70cc6e893b ("net/af_xdp: use BPF link for XDP programs")
caused compilation errors on kernels older than v5.8 due to absence of
the bpf_link_info struct and some definitions in the linux/bpf.h header.
Since relying on the reported kernel version is not a robust solution
and also since there doesn't appear to be a suitable definition in the
bpf header that the preprocessor could rely on to determine support for
bpf link, we will take a different approach to solving the issue that
the original patch attempted to solve. The next commit will address
this.
Fixes:
ae70cc6e893b ("net/af_xdp: use BPF link for XDP programs")
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Ferruh Yigit [Fri, 12 Nov 2021 12:13:39 +0000 (12:13 +0000)]
ethdev: fix typos
Fixes:
9039c8125730 ("ethdev: change promiscuous callbacks to return status")
Fixes:
12e6e3e78fe0 ("ethdev: add API to dump device internal flow info")
Fixes:
44bf3c796be3 ("ethdev: support flow aging")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Ori Kam <orika@nvidia.com>
Jie Wang [Mon, 15 Nov 2021 03:29:58 +0000 (11:29 +0800)]
app/testpmd: fix DCB in VT configuration
When set port DCB in VT mode enabled, it should remove RSS HASH
offload before reconfiguring the device and queues.
Because port multi-queue mode is changed from RSS to DCB in VT.
Fixes:
2a977b891f99 ("app/testpmd: fix DCB configuration")
Cc: stable@dpdk.org
Signed-off-by: Jie Wang <jie1x.wang@intel.com>
Acked-by: Aman Singh <aman.deep.singh@intel.com>
Martin Spinler [Wed, 10 Nov 2021 15:39:24 +0000 (16:39 +0100)]
net/szedata2: remove driver
Remove the szedata2 device driver as the platform is no longer
supported.
Signed-off-by: Martin Spinler <spinler@cesnet.cz>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Haiyue Wang [Mon, 15 Nov 2021 06:05:09 +0000 (14:05 +0800)]
app/testpmd: avoid process ID out of range
The 'proc_id' should be less than 'num_procs', if not, exit the testpmd
and show the error message.
Fixes:
a550baf24af9 ("app/testpmd: support multi-process")
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Apeksha Gupta [Mon, 15 Nov 2021 07:19:40 +0000 (12:49 +0530)]
net/enetfec: add features
This patch adds checksum and VLAN offloads in enetfec network
poll mode driver.
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Apeksha Gupta [Mon, 15 Nov 2021 07:19:39 +0000 (12:49 +0530)]
net/enetfec: support Rx/Tx
This patch adds burst enqueue and dequeue operations to the enetfec
PMD. Basic features added like promiscuous enable, basic stats.
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Apeksha Gupta [Mon, 15 Nov 2021 07:19:38 +0000 (12:49 +0530)]
net/enetfec: support queue configuration
This patch adds Rx/Tx queue configuration setup operations.
On packet reception the respective BD Ring status bit is set
which is then used for packet processing.
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Apeksha Gupta [Mon, 15 Nov 2021 07:19:37 +0000 (12:49 +0530)]
net/enetfec: support UIO
Implemented the fec-uio driver in kernel. enetfec PMD uses
UIO interface to interact with "fec-uio" driver implemented in
kernel for PHY initialisation and for mapping the allocated memory
of register & BD from kernel to DPDK which gives access to
non-cacheable memory for BD.
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Apeksha Gupta [Mon, 15 Nov 2021 07:19:36 +0000 (12:49 +0530)]
net/enetfec: introduce driver
ENETFEC (Fast Ethernet Controller) is a network poll mode driver
for NXP SoC i.MX 8M Mini.
This patch adds skeleton for enetfec driver with probe function.
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Bing Zhao [Fri, 12 Nov 2021 14:38:42 +0000 (16:38 +0200)]
net/mlx5: fix delay drop bit set overflow
The attribute to record the global control of hairpin queues' delay
drop was defined as a bit-field with one bit, and the intention was
to reduce the memory overhead. In the meanwhile, the macro was
defined as an enumerated value 0x2.
No matter what value inputted via devarg, the lowest bit was always
zero and the higher bits would be ignored. For hairpin queues, the
delay drop attribute couldn't be enabled.
With the commit, the double logical negation is used to fix this.
Fixes:
febcac7b46cd ("net/mlx5: support Rx queue delay drop")
Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Gregory Etelson [Thu, 11 Nov 2021 16:23:04 +0000 (18:23 +0200)]
net/mlx5: fix flex item macro collision
Flex item macro definition values duplicated existing connection
tracking values.
The patch provides new values for flex item macros.
Fixes:
a23e9b6e3ee9 ("net/mlx5: handle flex item in flows")
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Gregory Etelson [Thu, 11 Nov 2021 16:16:26 +0000 (18:16 +0200)]
net/mlx5: fix integrity conversion scheme
RTE flow integrity API provides top-level packet validations.
RTE integrity bits are not always translated one-to-one to
hardware integrity bits.
For example RTE l3_ok and l4_ok integrity bits require 2 hardware
integrity bits each.
The patch fixes RTE l3_ok and l4_ok bits translation to match
ConnectX-6 hardware.
Fixes:
79f8952783d0 ("net/mlx5: support integrity flow item")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Viacheslav Ovsiienko [Wed, 10 Nov 2021 13:05:52 +0000 (15:05 +0200)]
net/mlx5: fix Tx scheduling check
There was a redundant check for the enabled E-Switch, this
resulted in device probing failure if the Tx scheduling was
requested and E-Switch was enabled.
Fixes:
f17e4b4ffef9 ("net/mlx5: add Tx scheduling check on queue creation")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Alvin Zhang [Fri, 12 Nov 2021 05:34:18 +0000 (13:34 +0800)]
net/ice: fix pointer of meta data
This patch fixes coverity issue by directly passing the address
of the meta data to subfunction.
Coverity issue: 373867
Fixes:
5ad3db8d4bdd ("net/ice: enable advanced RSS")
Cc: stable@dpdk.org
Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Anoob Joseph [Wed, 10 Nov 2021 04:32:03 +0000 (10:02 +0530)]
common/cnxk: fix memory leak
The memory allocated for temporarily keeping DPTR need to be freed after
operation.
Also, dptr need to be aligned to 8B.
Fixes:
71213a8b773c ("common/cnxk: support CPT CTX write through microcode op")
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Reviewed-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Reviewed-by: Tejasree Kondoj <ktejasree@marvell.com>
Ankur Dwivedi [Mon, 8 Nov 2021 09:19:48 +0000 (14:49 +0530)]
common/cnxk: fix pointer argument with GCC 12
The pointer passed to the rq_ctx and sq_ctx functions was the address
of qctx. Instead of that qctx should be passed. This patch fixes this.
This patch also resolves warning observed with gcc 12 compiler.
log:
../drivers/common/cnxk/cnxk_telemetry.h:12:38:
warning: array subscript
‘struct nix_cn10k_sq_ctx_s[0]’ is partly outside array bounds of
‘volatile void[8]’ [-Warray-bounds]
Bugzilla ID: 853
Fixes:
af75aac78978 ("common/cnxk: support telemetry for NIX")
Cc: stable@dpdk.org
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
Reviewed-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Alvin Zhang [Thu, 11 Nov 2021 06:31:47 +0000 (14:31 +0800)]
net/iavf: fix pointer of meta data
This patch fixes coverity issue by directly passing the address
of the meta data to lower function.
Coverity issue: 373867
Fixes:
7be10c3004be ("net/iavf: add RSS configuration for VF")
Cc: stable@dpdk.org
Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Radu Nicolau [Tue, 9 Nov 2021 10:33:03 +0000 (10:33 +0000)]
net/iavf: fix xstats reset
Wrong offset used to clear the extended stats section resulting
in eth stats not being reset.
Fixes:
ccb49b834cd7 ("net/iavf: support xstats for inline IPsec crypto")
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Ruifeng Wang [Wed, 15 Sep 2021 08:33:39 +0000 (16:33 +0800)]
net/i40e: fix risk in descriptor read in scalar Rx
Rx descriptor is 16B/32B in size. If the DD bit is set, it indicates
that the rest of the descriptor words have valid values. Hence, the
word containing DD bit must be read first before reading the rest of
the descriptor words.
Since the entire descriptor is not read atomically, on relaxed memory
ordered systems like Aarch64, read of the word containing DD field
could be reordered after read of other words.
Read barrier is inserted between read of the word with DD field
and read of other words. The barrier ensures that the fetched data
is correct.
Testpmd single core test showed no performance drop on x86 or N1SDP.
On ThunderX2, 22% performance regression was observed.
Fixes:
7b0cf70135d1 ("net/i40e: support ARM platform")
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Dapeng Yu [Tue, 9 Nov 2021 07:49:47 +0000 (15:49 +0800)]
net/ice: fix adminq handling on DCF passive reset
DCF tries to handle AdminQ when DCF is reset by PF, however the invalid
data may be returned, and error log may be output in this situation.
This patch stops handling AdminQ when a passive reset is detected to
avoid this situation.
Fixes:
7564d5509611 ("net/ice: add DCF hardware initialization")
Cc: stable@dpdk.org
Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Viacheslav Ovsiienko [Mon, 8 Nov 2021 16:41:01 +0000 (18:41 +0200)]
doc: describe timestamp limitations for mlx5
The ConnectX NIC series hardware provides only 63-bit
wide timestamps. The imposed limitations description
added to documentation.
At the moment there are no affected applications known
or bug reports neither, this is just the declaration
of limitation.
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Viacheslav Ovsiienko [Mon, 8 Nov 2021 14:11:31 +0000 (16:11 +0200)]
net/mlx5: fix modify field action conversion
The routine converting RTE flow modify field action into
field driver's presentation did not specify the field mask
correctly and this resulted into wrong conversion for
the actions with shifted fields.
Fixes:
40c8fb1fd3b3 ("net/mlx5: update modify field action")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Matan Azrad [Mon, 8 Nov 2021 12:22:04 +0000 (14:22 +0200)]
common/mlx5: fix build for zero-length headroom array
The structure of the striding RQ(MPRQ) buffer includes an array size
defined by the RTE_PKTMBUF_HEADROOM macro added in [1].
When RTE_PKTMBUF_HEADROOM is set to 0 in the compilation config file
the compilation with debug type failed:
"In file included from ../drivers/common/mlx5/mlx5_common.h:25,
from ../drivers/common/mlx5/linux/mlx5_nl.h:12,
from ../drivers/common/mlx5/linux/mlx5_nl.c:22:
../drivers/common/mlx5/mlx5_common_mr.h:96:10: error: ISO C forbids
zero-size array 'pad' [-Werror=pedantic]"
Actually, the array for the first stride headroom is not needed:
Each stride in the striding RQ buffer includes the headroom of the next
stride, so the headroom of the first stride should be allocated before
the starting point of the buffer posted to the HW(HW buffer).
The striding RQ buffer is used as an attached buffer to mbuf and have
shared information per stride.
The LRO support moved all the strides shared information to the top of
the buffer before the first stride headroom but didn't remove the old
memory of this headroom from the buffer.
Remove the old headroom memory from the striding RQ buffer.
[1] commit
7d6bf6b866b8 ("net/mlx5: add Multi-Packet Rx support")
Fixes:
3a22f3877c9d ("net/mlx5: replace external mbuf shared memory")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Bing Zhao [Fri, 5 Nov 2021 06:10:57 +0000 (08:10 +0200)]
net/mlx5: fix RETA update without stopping device
The global redirection table is used to create the default flow
rules for the ingress traffic with the lowest priority. It is also
used to create the default RSS rule in the destination table when
there is a tunnel offload.
To update the RETA in-flight, there is no restriction in the ethdev
API. In the previous implementation of mlx5, a port restart was
needed to make the new configuration take effect.
The restart is heavy, e.g., all the queues will be released and
reallocated, users' rules will be flushed. Since the restart is
internal, there is a risk to crash the application when some change
in the ethdev is introduced but no workaround is done in mlx5 PMD.
The users' rules, including the default miss rule for tunnel
offload, should not be impacted by the RETA update. It is improper
to flush all rules when updating RETA.
With this patch, only the default rules will be flushed and
re-created with the new table configuration.
Fixes:
3f2fe392bd49 ("net/mlx5: fix crash during RETA update")
Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Jiawei Wang [Wed, 3 Nov 2021 13:07:59 +0000 (15:07 +0200)]
net/mlx5: fix tag ID conflict with sample action
For the flows containing sample action, the tag action was added
implicitly to store the unique flow index into metadata register in the
split prefix subflow, and then match on this index in the split suffix
subflow. The metadata register for flow index of sample split subflows
was also used to store application metadata TAG 0 item, this might cause
TAG 0 corruption in the flows with sample actions.
This patch uses the same metadata register C index as used for
ASO action since it's reserved and not used directly by the application,
and adds the checking in validation to make sure not to conflict
with ASO CT in the same flow.
Fixes:
b4c0ddbfcc58 ("net/mlx5: split sample flow into two sub-flows")
Cc: stable@dpdk.org
Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Gregory Etelson [Wed, 3 Nov 2021 08:55:56 +0000 (10:55 +0200)]
net/mlx5: fix tunnel offload validation
Tunnel offload API allows the application to restore packet to
its original form if the chain of flows is missed after DECAP action.
MLX5 PMD provides tunnel offload support only if DV API was enabled.
The patch verifies DV availability before processing with
tunnel offload tasks.
Fixes:
4ec6360de37d ("net/mlx5: implement tunnel offload")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Dmitry Kozlyuk [Tue, 9 Nov 2021 10:32:53 +0000 (12:32 +0200)]
common/mlx5: fix external memory pool registration
Registration of packet mempools with RTE_PKTMBUF_POOL_PINNED_EXT_MEM
was performed incorrectly: after population of such mempool chunks
only contain memory for rte_mbuf structures, while pointers to actual
external memory are not yet filled. MR LKeys could not be obtained
for external memory addresses of such mempools. Rx datapath assumes
all used mempools are registered and does not fallback to dynamic
MR creation in such case, so no packets could be received.
Skip registration of extmem pools on population because it is useless.
If used for Rx, they are registered at port start.
During registration, recognize such pools, inspect their mbufs
and recover the pages they reside in.
While MRs for these pages may already be created by rte_dev_dma_map(),
they are not reused to avoid synchronization on Rx datapath
in case these MRs are changed in the database.
Fixes:
690b2a88c2f7 ("common/mlx5: add mempool registration facilities")
Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Reviewed-by: Matan Azrad <matan@nvidia.com>
Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Rongwei Liu [Tue, 2 Nov 2021 07:22:40 +0000 (09:22 +0200)]
net/mlx5: fix meter policy validation
When a user specifies meter policy like "g_actions queue / end
y_actions queue / r_action drop / end", validation logic missed
to set meter policy mode and it took a random value from the stack.
Define ALL policy modes for the mentioned cases.
Fixes:
4b7bf3ffb473 ("net/mlx5: support yellow in meter policy validation")
Cc: stable@dpdk.org
Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Reviewed-by: Bing Zhao <bingz@nvidia.com>
Bing Zhao [Mon, 18 Oct 2021 14:43:07 +0000 (17:43 +0300)]
net/mlx5: fix RSS consistency check of meter policy
After yellow color actions in the metering policy were supported,
the RSS could be used for both green and yellow colors and only the
queues attribute could be different.
When specifying the attributes of a RSS, some fields can be ignored
and some default values will be used in PMD. For example, there is a
default RSS key in the PMD and it will be used to create the TIR if
nothing is provided by the application.
The default value cases were missed in the current implementation
and it would cause some false positives or crashes.
The comparison function should be adjusted to take all cases into
consideration when RSS is used for both green and yellow colors.
Fixes:
4b7bf3ffb473 ("net/mlx5: support yellow in meter policy validation")
Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Dmitry Kozlyuk [Tue, 9 Nov 2021 09:00:57 +0000 (11:00 +0200)]
ethdev: fix device capability to string translation
Add support for RTE_ETH_DEV_CAPA_FLOW_{RULE,SHARED_OBJECT}_KEEP
to rte_eth_dev_capability_name(), missed when adding the capabilities.
Fixes:
1d5a3d68c0f9 ("ethdev: add capability to keep flow rules on restart")
Fixes:
2c9cd45de7e6 ("ethdev: add capability to keep shared objects on restart")
Reported-by: Ali Alnubani <alialnu@nvidia.com>
Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Acked-by: Xueming Li <xuemingl@nvidia.com>
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Jim Harris [Fri, 5 Nov 2021 15:53:51 +0000 (15:53 +0000)]
power: remove unused poll counter
Following the previous fix, there is nothing using the ppi counter.
We can remove the related ppi_av array in struct priority_worker.
This allows us to also remove num_dequeue_pkts_prev and pc from
struct priority_worker since they are only used in conjunction
with the ppi_av array.
Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Jim Harris [Fri, 5 Nov 2021 15:53:51 +0000 (15:53 +0000)]
power: fix build with clang 13
clang-13 rightfully complains that the tot_ppi variable in update_stats
is set but not used, since the final accumulated tot_ppi results isn't
used anywhere.
Fixes:
450f0791312c ("power: add traffic pattern aware power control")
Cc: stable@dpdk.org
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Volodymyr Fialko [Tue, 9 Nov 2021 09:59:52 +0000 (10:59 +0100)]
eal/arm64: support ASan
This patch defines ASAN_SHADOW_OFFSET for arm64 according to the ASan
documentation. This offset should cover all arm64 VMAs supported by
ASan.
Signed-off-by: Volodymyr Fialko <vfialko@marvell.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
David Marchand [Mon, 8 Nov 2021 10:08:08 +0000 (11:08 +0100)]
build: factorize jansson availability check
Since two components wants to know if the jansson library is available,
move it to config/.
Signed-off-by: David Marchand <david.marchand@redhat.com>