Go to file
Dmitry Kozlyuk ec9b812b6c net/mlx5: fix Rx queue reference count for indirect RSS
mlx5_ind_table_obj_modify() was not changing the reference counters
of neither the new set of RxQs, nor the old set of RxQs.
On the other hand, creation of the RSS incremented the RxQ refcnt.
If an RxQ was present in both the initial and the modified set,
its reference counter was incremented one extra time
compared to the queues that were only present in the new set.
This prevented releasing said RxQ resources on port stop:

    flow indirect_action 0 create action_id 1 \
        action rss queues 0 1 end / end
    flow indirect_action 0 update 1 \
        action rss queues 2 3 end / end
    quit
    ...
    mlx5_net: mlx5.c:1622: mlx5_dev_close():
        port 0 some Rx queue objects still remain
    mlx5_net: mlx5.c:1626: mlx5_dev_close():
        port 0 some Rx queues still remain

Increment reference counters for the new set of RxQs
and decrement them for the old set of RxQs when needed.
Remove explicit referencing of RxQ from mlx5_ind_table_obj_attach()
because it reuses mlx5_ind_table_obj_modify() code doing this.

Fixes: ec4e11d41d ("net/mlx5: preserve indirect actions on restart")
Cc: stable@dpdk.org

Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Reviewed-by: Matan Azrad <matan@nvidia.com>
2021-11-24 17:25:35 +01:00
.ci ci: test minimum configuration 2021-11-17 12:48:20 +01:00
.github/workflows ci: test minimum configuration 2021-11-17 12:48:20 +01:00
app app/testpmd: fix hexadecimal parser with odd length 2021-11-24 17:34:38 +01:00
buildtools buildtools: make AVX512 check portable 2021-11-17 09:41:16 +01:00
config config/x86: fix MinGW cross build with Meson 0.49 2021-11-17 09:41:19 +01:00
devtools ci: test minimum configuration 2021-11-17 12:48:20 +01:00
doc doc: fix memif driver acronyms 2021-11-24 17:13:26 +01:00
drivers net/mlx5: fix Rx queue reference count for indirect RSS 2021-11-24 17:25:35 +01:00
examples examples/ptpclient: fix delay request message 2021-11-24 15:11:42 +01:00
kernel kni: restrict bifurcated device support 2021-11-24 14:45:55 +01:00
lib mbuf: fix dump of dynamic fields and flags 2021-11-24 15:11:21 +01:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools usertools/devbind: update octeontx2 DMA device 2021-11-10 14:15:39 +01:00
.editorconfig doc: add Meson coding style to contributors guide 2021-04-21 14:04:09 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore gpudev: introduce GPU device class library 2021-11-08 17:20:52 +01:00
.travis.yml version: 21.11-rc0 2021-08-17 08:37:52 +02:00
ABI_VERSION version: 21.11-rc0 2021-08-17 08:37:52 +02:00
MAINTAINERS bus: fix device iterator match from arguments 2021-11-24 15:11:42 +01:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt config: add option for atomic mbuf reference counting 2021-10-25 17:53:30 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.11-rc3 2021-11-17 20:19:47 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org