numam-dpdk/doc/guides/rel_notes
Stanislaw Kardach 1abb185d6c stack: allow lock-free only on relevant architectures
Since commit 7911ba0473 ("stack: enable lock-free implementation for
aarch64"), lock-free stack is supported on arm64 but this description was
missing from the doxygen for the flag.

Currently it is impossible to detect programmatically whether lock-free
implementation of rte_stack is supported. One could check whether the
header guard for lock-free stubs is defined (_RTE_STACK_LF_STUBS_H_) but
that's an unstable implementation detail. Because of that currently all
lock-free ring creations silently succeed (as long as the stack header
is 16B long) which later leads to push and pop operations being NOPs.
The observable effect is that stack_lf_autotest fails on platforms not
supporting the lock-free. Instead it should just skip the lock-free test
altogether.

This commit adds a new errno value (ENOTSUP) that may be returned by
rte_stack_create() to indicate that a given combination of flags is not
supported on a current platform.
This is detected by checking a compile-time flag in the include logic in
rte_stack_lf.h which may be used by applications to check the lock-free
support at compile time.

Use the added RTE_STACK_LF_SUPPORTED flag to disable the lock-free stack
tests at the compile time.
Perf test doesn't fail because rte_ring_create() succeeds, however
marking this test as skipped gives a better indication of what actually
was tested.

Fixes: 7911ba0473 ("stack: enable lock-free implementation for aarch64")

Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2021-05-03 18:46:15 +02:00
..
deprecation.rst net/iavf: deprecate i40evf PMD 2021-04-19 10:36:17 +02:00
index.rst version: 21.05-rc0 2021-02-15 11:08:19 +01:00
known_issues.rst doc: fix names of UIO drivers 2021-04-22 00:06:47 +02:00
release_1_8.rst
release_2_0.rst
release_2_1.rst mk: use linux and freebsd in config names 2019-03-12 23:05:06 +01:00
release_2_2.rst
release_16_04.rst
release_16_07.rst remove blank lines at end of file 2019-11-26 00:12:08 +01:00
release_16_11.rst
release_17_02.rst doc: remove useless anchor for flow API guide 2019-01-31 18:41:07 +01:00
release_17_05.rst
release_17_08.rst
release_17_11.rst doc/guides: clean repeated words 2019-11-15 11:36:27 +01:00
release_18_02.rst doc/guides: clean repeated words 2019-11-15 11:36:27 +01:00
release_18_05.rst doc: fix link in release notes 2019-08-02 21:58:59 +02:00
release_18_08.rst doc: fix naming of Mellanox devices 2020-02-25 15:55:54 +01:00
release_18_11.rst doc: update release notes for 18.11 2018-11-27 00:26:07 +01:00
release_19_02.rst doc: fix naming of Mellanox devices 2020-02-25 15:55:54 +01:00
release_19_05.rst doc: update release notes for 19.05 2019-05-13 21:50:14 +02:00
release_19_08.rst doc: update release notes for i40e MARK+RSS 2019-08-06 11:39:55 +02:00
release_19_11.rst common/qat: fix GEN3 marketing name 2020-04-05 18:26:04 +02:00
release_20_02.rst doc: add reason for three-part ABI versioning 2020-05-18 19:46:25 +02:00
release_20_05.rst doc: update release notes for 20.05 2020-05-25 23:36:16 +02:00
release_20_08.rst doc: update release notes for 20.08 2020-08-08 00:21:21 +02:00
release_20_11.rst event/dlb: remove driver 2021-04-12 09:21:30 +02:00
release_21_02.rst doc: update release notes for 21.02 2021-02-12 16:18:31 +01:00
release_21_05.rst stack: allow lock-free only on relevant architectures 2021-05-03 18:46:15 +02:00