I'm moving on to a new position in November and won't be able to continue
as a stack library maintainer.
Thanks to fellow maintainer Olivier, and the rest of the DPDK community,
for the support over the past few years.
Signed-off-by: Gage Eads
---
MAINTAINERS | 1 -
1 file changed,
to 0, and iq_dequeue_burst() sets
iq->head to the appropriate next pointer.
Fixes: 5b5e476e59a4 ("event/sw: use dynamically-sized IQs")
Signed-off-by: Gage Eads
---
drivers/event/sw/iq_chunk.h | 14 +-
drivers/event/sw/sw_evdev.c | 62 ---
This commit also adds a flush callback test to the sw eventdev's selftest
suite.
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev.c | 25 ++-
drivers/event/sw/sw_evdev_selftest.c | 80 +++-
2 files changed, 102 insertions(+), 3 dele
registered by any process that may call rte_event_dev_stop().
This commit also clarifies the behavior of rte_event_dev_stop().
This follows this mailing list discussion:
http://dpdk.org/ml/archives/dev/2018-January/087484.html
Signed-off-by: Gage Eads
---
v2: allow a NULL callback pointer to unregister
registered by any process that may call rte_event_dev_stop().
This commit also clarifies the behavior of rte_event_dev_stop().
This follows this mailing list discussion:
http://dpdk.org/ml/archives/dev/2018-January/087484.html
Signed-off-by: Gage Eads
---
v2: allow a NULL callback pointer to unregister
This commit also adds a flush callback test to the sw eventdev's selftest
suite.
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev.c | 25 ++-
drivers/event/sw/sw_evdev_selftest.c | 80 +++-
2 files changed, 102 insertions(+), 3 dele
be registered by any process that may call rte_event_dev_stop().
This commit also clarifies the behavior of rte_event_dev_stop().
This follows this mailing list discussion:
http://dpdk.org/ml/archives/dev/2018-January/087484.html
Signed-off-by: Gage Eads
---
v2: allow a NULL callback pointer to
event threshold checks accordingly.
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev_worker.c | 14 +-
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/event/sw/sw_evdev_worker.c
b/drivers/event/sw/sw_evdev_worker.c
index d76d3d5..b3b3b17 100644
--- a/drivers/
This patchset makes the full queue and port configuration structures accessible
through the attribute get functions, adds tests for the new attributes, and
fixes one bug in a port attribute get test.
This patchset is based on patches 29019 through 29023.
Gage Eads (3):
eventdev: extend queue
The enqueue depth test was comparing the port's dequeue depth against its
enqueue depth.
Fixes: 410c5bccdadc ("eventdev: add port attribute function")
Signed-off-by: Gage Eads
---
test/test/test_eventdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --
This commit adds the new_event_threshold port attribute, so the entire port
configuration structure passed to rte_event_queue_setup can be queried.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.c | 71 --
lib/librte_eventdev/rte_eventdev.h
This commit adds three new queue attributes, so that the entire queue
configuration structure passed to rte_event_queue_setup can be queried.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.c | 54 +--
lib/librte_eventdev/rte_eventdev.h | 16 -
test/test
no and
return 0 if it detects an error.
Fixes: 4f0804bbdfb9 ("eventdev: implement the northbound APIs")
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.c | 36 --
lib/librte_eventdev/rte_eventdev_pmd.h | 8
2 files chan
ghput scenarios,
tested with eventdev_pipeline_sw_pmd.
This implementation has a small increase in the queue storage memory
footprint (~70KB). This commit also removes the iq_size xstat, which no
longer applies to this implementation.
Signed-off-by: Gage Eads
---
drivers/event
1.
Fixes: 5ffb2f142d95 ("event/sw: support event queues")
Fixes: 371a688fc159 ("event/sw: support linking queues to ports")
Fixes: f8f9d233ea0e ("test/eventdev: add unit tests")
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev.c | 46 ++
bled.
The second patch in the series isn't directly related to implicit release,
but the code changes depend on the first patch.
Gage Eads (2):
eventdev: add implicit release disable capability
event/sw: simplify credit scheme
drivers/event/dpaa2/dpaa2_eventdev.c | 2 ++
drivers
D.
Signed-off-by: Gage Eads
---
drivers/event/dpaa2/dpaa2_eventdev.c | 2 ++
drivers/event/octeontx/ssovf_evdev.c | 1 +
drivers/event/skeleton/skeleton_eventdev.c | 1 +
drivers/event/sw/sw_evdev.c| 10 +++---
drivers/event/sw/sw_evdev.h| 1 +
dri
This commit modifies the sw PMD credit scheme such that credits are
consumed when enqueueing a NEW event and released when an event is
released -- typically, the beginning and end of a pipeline. Workers that
simply forward events do not interact with the credit pool.
Signed-off-by: Gage Eads
D.
Signed-off-by: Gage Eads
Acked-by: Harry van Haaren
---
v2:
- Merged two lines into one in dpaa2_eventdev_port_def_conf().
- Used '0' instead of 'false' in skeleton_eventdev_port_def_conf().
- Replaced instances of 'bool' with 'uint8_t' in
eventdev_p
This commit modifies the sw PMD credit scheme such that credits are
consumed when enqueueing a NEW event and released when an event is
released -- typically, the beginning and end of a pipeline. Workers that
simply forward events do not interact with the credit pool.
Signed-off-by: Gage Eads
This commit also adds a flush callback test to the sw eventdev's selftest
suite.
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev.c | 25 +++-
drivers/event/sw/sw_evdev_selftest.c | 75 +++-
2 files changed, 97 insertions(+), 3 dele
registered by any process that may call rte_event_dev_stop().
This commit also clarifies the behavior of rte_event_dev_stop().
This follows this mailing list discussion:
http://dpdk.org/ml/archives/dev/2018-January/087484.html
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.c
ently high.
This change makes the sw PMD enqueue as many events as it has credits, if
there are any new events in the burst.
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev_worker.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/event/sw/sw_evdev_worker
registered by any process that may call rte_event_dev_stop().
This commit also clarifies the behavior of rte_event_dev_stop().
This follows this mailing list discussion:
http://dpdk.org/ml/archives/dev/2018-January/087484.html
Signed-off-by: Gage Eads
---
v2: allow a NULL callback pointer to unregister
This commit also adds a flush callback test to the sw eventdev's selftest
suite.
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev.c | 25 ++-
drivers/event/sw/sw_evdev_selftest.c | 80 +++-
2 files changed, 102 insertions(+), 3 dele
high.
This change makes the sw PMD enqueue as many events as it has credits, if
there are any new events in the burst.
Signed-off-by: Gage Eads
---
v2: fix commit message bug ("sw event adapter" -> "sw PMD")
drivers/event/sw/sw_evdev_worker.c | 6 --
1 file changed,
This commit clarifies the usage of nb_unlinks when passing a NULL pointer
as the queues argument.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eventdev/rte_eventdev.h
b/lib/librte_eventdev
in non-debug execution.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.h | 42 +++---
1 file changed, 39 insertions(+), 3 deletions(-)
diff --git a/lib/librte_eventdev/rte_eventdev.h
b/lib/librte_eventdev/rte_eventdev.h
index c2f9310..ef21205 100644
This commit clarifies the usage of nb_links and nb_unlinks when passing
a NULL pointer as the queues argument.
Signed-off-by: Gage Eads
---
Changes for v2:
- Clarify nb_links as well
lib/librte_eventdev/rte_eventdev.h | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a
in non-debug execution.
Signed-off-by: Gage Eads
---
Changes for v2:
- Remove rte_errno initialization
lib/librte_eventdev/rte_eventdev.h | 40 +++---
1 file changed, 37 insertions(+), 3 deletions(-)
diff --git a/lib/librte_eventdev/rte_eventdev.h
b/lib
Commit 30e6399892276 ("mempool: support non-EAL thread") added the
capability for non-EAL threads to use the mempool library. This commit
removes the note indicating that the mempool library cannot be used safely
by non-EAL threads.
Also, fix a typo.
Signed-off-by: Gage Eads
---
v
ssure from the event device.
The port and device ID checks are placed in RTE_LIBRTE_EVENTDEV_DEBUG
header guards to avoid the performance hit in non-debug execution.
Signed-off-by: Gage Eads
---
Changes for v2:
- Remove rte_errno initialization
Changes for v3:
- Fix checkpatch and check-git-log
Commit 30e6399892276 ("mempool: support non-EAL thread") added the
capability for non-EAL threads to use the mempool library. This commit
removes the note indicating that the mempool library cannot be used safely
by non-EAL threads, and replaces it with a more up-to-date note.
Signed-of
This patch initializes the links_map array entries to
EVENT_QUEUE_SERVICE_PRIORITY_INVALID, as expected by
rte_event_port_links_get().
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.c | 17 -
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/lib
This patch initializes the links_map array entries to
EVENT_QUEUE_SERVICE_PRIORITY_INVALID, as expected by
rte_event_port_links_get(). This is necessary for the sw eventdev PMD,
which does not initialize links_map when rte_event_port_setup() calls
rte_event_port_unlink().
Signed-off-by: Gage Eads
("eventdev: implement the northbound APIs")
Signed-off-by: Gage Eads
Acked-by: Jerin Jacob
---
v2: Refined commit message's description of patch
v3: Fixed check-git-log.sh errors, added Jerin's Acked-by
lib/librte_eventdev/rte_eventdev.c | 17 -
1 file changed,
port and device ID checks are placed in RTE_LIBRTE_EVENTDEV_DEBUG
header guards to avoid the performance hit in non-debug execution.
Signed-off-by: Gage Eads
---
Changes for v2:
- Remove rte_errno initialization
Changes for v3:
- Fix checkpatch and check-git-log.sh errors
lib/librte_eventdev
ssure from the event device.
The port and device ID checks are placed in RTE_LIBRTE_EVENTDEV_DEBUG
header guards to avoid the performance hit in non-debug execution.
Signed-off-by: Gage Eads
---
Changes for v2:
- Remove rte_errno initialization
Changes for v3:
- Fix checkpatch and check-git-log
AL threads.
Also, fix a typo.
Signed-off-by: Gage Eads
---
lib/librte_mempool/rte_mempool.h | 6 +-
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 991feaa..b1186fd 100644
--- a/lib/librte_mempool/rte_mempo
ssure from the event device.
The port and device ID checks are placed in RTE_LIBRTE_EVENTDEV_DEBUG
header guards to avoid the performance hit in non-debug execution.
Signed-off-by: Gage Eads
---
Changes for v2:
- Remove rte_errno initialization
Changes for v3:
- Fix checkpatch and check-git-log
Commit 30e6399892276 ("mempool: support non-EAL thread") added the capability
for non-EAL threads to use the mempool library. This commit removes the note
indicating that the mempool library cannot be used safely by non-EAL threads.
Also, fix a typo.
Signed-off-by: Gage Eads
---
v
ption.
Signed-off-by: John Jacques
Signed-off-by: Gage Eads
---
mk/rte.app.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index b5215c0..bcaf1b3 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -235,7 +235,7 @@ build: _postbuild
exe2cmd = $(strip $
The QAT device's dequeued_count and dequeue_err_count stats were
incorrectly assigned the enqueued_count and enqueue_err_count values,
respectively.
Signed-off-by: Gage Eads
Fixes: 1703e94a ("qat: add driver for QuickAssist devices")
---
drivers/crypto/qat/qat_crypto.c | 4 ++--
n the header's
comments.
[1] http://dpdk.org/ml/archives/dev/2017-May/065341.html
[2] http://dpdk.org/ml/archives/dev/2017-May/065207.html
Signed-off-by: Nikhil Rao
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eth_rx_event_adapter.h | 285 +
lib/librt
The nb_atomic_flows and nb_atomic_order_sequences fields are only inspected
if the queue is configured for atomic or ordered scheduling, respectively.
This commit updates the documentation to reflect that.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.h | 15 ++-
1
The nb_atomic_flows and nb_atomic_order_sequences fields are only inspected
if the queue is configured for atomic or ordered scheduling, respectively.
This commit updates the documentation to reflect that.
Signed-off-by: Gage Eads
---
v2: Fixed doxygen output issue and tweaked the ranges
lib
When using the compiler to link libraries, include EXTRA_CFLAGS. This is
needed when cross-compiling to pass --sysroot, for example. GCC
cross-compilers built with Yocto don't use the --with-sysroot option,
making it necessary to pass the --sysroot command-line option.
This is the same solution as
ution as in commit e8fbb6d9cfd9 ("mk: use extra cflags
when linking with compiler"), but applied to libs instead of apps.
Signed-off-by: Gage Eads
---
v2: Added missing Signed-off-by field
mk/rte.lib.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mk/rte.lib.mk
e) to bypass the is_valid_{ordered, atomic}_queue_conf() checks
in the eventdev layer.
This commit updates those is_valid_* functions to ignore queues with the
SINGLE_LINK flag, to simplify their configuration.
Signed-off-by: Gage Eads
---
examples/eventdev_pipeline_sw_pmd/main.c | 6 +-
ning
users against this.
Fixes: 449c49b93a6b ("mempool: support handler operations")
Cc: sta...@dpdk.org
Signed-off-by: Gage Eads
---
doc/guides/prog_guide/mempool_lib.rst | 7 +++
1 file changed, 7 insertions(+)
diff --git a/doc/guides/prog_guide/mempool_lib.rst
b/doc/guides
allows them to not need any experimental API.
Signed-off-by: Gage Eads
---
drivers/event/sw/Makefile | 1 -
drivers/event/sw/meson.build| 1 -
lib/librte_eal/common/include/rte_service.h | 15 +++
lib/librte_eal/common/rte_service.c | 6
not need any experimental API.
Signed-off-by: Gage Eads
---
drivers/event/sw/Makefile | 1 -
drivers/event/sw/meson.build| 1 -
lib/librte_eal/common/include/rte_service.h | 15 +++
lib/librte_eal/common/rte_service.c | 6 +++---
lib
ning
users against this.
Fixes: 449c49b93a6b ("mempool: support handler operations")
Cc: sta...@dpdk.org
Signed-off-by: Gage Eads
Acked-by: Andrew Rybchenko
---
doc/guides/prog_guide/mempool_lib.rst | 8
1 file changed, 8 insertions(+)
v2: add another empty line
d
value =
current.
Fixes: c1ad03df7ad5 ("event/sw: support xstats")
Cc: sta...@dpdk.org
Signed-off-by: Gage Eads
---
drivers/event/sw/sw_evdev_xstats.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/event/sw/sw_evdev_xstats.c
b/drivers/event/sw/sw_evdev
applies on top of Jerin Jacob's eventdev API patchset[1].
[1] http://dpdk.org/ml/archives/dev/2016-November/050355.html
Gage Eads (1):
eventdev: add buffered enqueue and flush APIs
lib/librte_eventdev/rte_eventdev.c | 29 ++
lib/librte_eventdev/rte_eventdev.h
This commit adds buffered enqueue functionality to the eventdev API.
It is conceptually similar to the ethdev API's tx buffering, however
with a smaller API surface and no dropping of events.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.c | 29 ++
lib/librte_eve
The stack library was first released in 19.05, and its interfaces have been
stable since their initial introduction. This commit promotes the full
interface to stable, starting with the 20.11 major version.
Signed-off-by: Gage Eads
Acked-by: David Marchand
---
doc/guides/rel_notes
The stack library was first released in 19.05, and its interfaces have been
stable since their initial introduction. This commit promotes the full
interface to stable, starting with the 20.08 ABI.
Signed-off-by: Gage Eads
---
lib/librte_stack/rte_stack.h | 29
The stack library was first released in 19.05, and its interfaces have been
stable since their initial introduction. This commit promotes the full
interface to stable, starting with the 20.11 major version.
Signed-off-by: Gage Eads
---
doc/guides/rel_notes/release_20_11.rst | 3 +++
lib
This guide describes the two stack modes, their tradeoffs, and (via a
reference to the mempool guide) how to enable them.
Signed-off-by: Gage Eads
---
v3: Fixed "Title underline too short" warning
v2: Added commit description
doc/guides/mempool/index.rst | 1 +
doc/guid
Signed-off-by: Gage Eads
---
doc/guides/mempool/index.rst | 1 +
doc/guides/mempool/stack.rst | 38 +++
doc/guides/prog_guide/mempool_lib.rst | 2 ++
doc/guides/prog_guide/stack_lib.rst | 4
4 files changed, 45 insertions(+)
create
This guide describes the two stack modes, their tradeoffs, and (via a
reference to the mempool guide) how to enable them.
Signed-off-by: Gage Eads
---
v2: Added commit description
doc/guides/mempool/index.rst | 1 +
doc/guides/mempool/stack.rst | 38
This guide describes the two stack modes, their tradeoffs, and (via a
reference to the mempool guide) how to enable them.
Signed-off-by: Gage Eads
---
v4: Expanded first paragraph in stack.rst per Olivier's feedback
v3: Fixed "Title underline too short" warning
v2: Added com
The eventdev extended stats documentation referred to two non-existent
functions, rte_eventdev_xstats_get and rte_eventdev_get_xstats_by_name.
Fixes: 3ed7fc039a ("eventdev: add extended stats")
Cc: sta...@dpdk.org
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_eventdev.h | 4 ++
pus cores with a tickless scheduler. The lock-based stack's
rate_persec was 1x-3.5x the non-blocking stack's.
Gage Eads (3):
eal: add 128-bit cmpset (x86-64 only)
mempool/nb_stack: add non-blocking stack mempool
doc: add NB stack comment to EAL "known issues"
MAINTAINERS
This operation can be used for non-blocking algorithms, such as a
non-blocking stack or ring.
Signed-off-by: Gage Eads
---
.../common/include/arch/x86/rte_atomic_64.h| 22 ++
1 file changed, 22 insertions(+)
diff --git a/lib/librte_eal/common/include/arch/x86
27;s.
Signed-off-by: Gage Eads
---
MAINTAINERS| 4 +
config/common_base | 1 +
drivers/mempool/Makefile | 1 +
drivers/mempool/nb_stack/Makefile | 30 +
drivers/mempool/
This comment makes users aware of the non-blocking stack option and its
caveats.
Signed-off-by: Gage Eads
---
doc/guides/prog_guide/env_abstraction_layer.rst | 5 +
1 file changed, 5 insertions(+)
diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst
b/doc/guides/prog_guide
ue (size 8) | -1.96
MP/MC bulk enq/dequeue (size 8) | 0.88
SP/SC bulk enq/dequeue (size 32) | 0.10
MP/MC bulk enq/dequeue (size 32) | 0.46
Test setup: x86_64 build with default config, dual-socket Xeon E5-2699 v4,
running on isolcpus cores with a tickless scheduler. Each test run three
tim
nb_ring_perf_autotest re-uses the ring_perf_autotest code by wrapping its
top-level function with one that takes a 'flags' argument.
Signed-off-by: Gage Eads
---
test/test/test_ring_perf.c | 19 ---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a
his patchset makes ABI changes, and thus an ABI update announcement and
deprecation cycle are required.
This patchset depends on the non-blocking stack patchset[1].
[1] http://mails.dpdk.org/archives/dev/2019-January/122923.html
Gage Eads (6):
ring: change head and tail to pointer-width size
ring
ance drop on 32-bit builds. With
uintptr_t, no performance difference is observed on an i686 build.
Signed-off-by: Gage Eads
---
lib/librte_eventdev/rte_event_ring.h | 6 +++---
lib/librte_ring/rte_ring.c | 10 +-
lib/librte_ring/rte_ring.h | 20 ++--
This comment makes users aware of the non-blocking ring option and its
caveats.
Signed-off-by: Gage Eads
---
doc/guides/prog_guide/env_abstraction_layer.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst
b/doc/guides
ring_nb_autotest re-uses the ring_autotest code by wrapping its top-level
function with one that takes a 'flags' argument.
Signed-off-by: Gage Eads
---
test/test/test_ring.c | 57 ---
1 file changed, 36 insertions(+), 21 deletions(-)
di
These handlers allow an application to create a mempool based on the
non-blocking ring, with any combination of single/multi producer/consumer.
Signed-off-by: Gage Eads
---
drivers/mempool/ring/rte_mempool_ring.c | 58 +++--
1 file changed, 55 insertions(+), 3
Add an empty array of struct rte_nb_lifo_elem elements
- In rte_nb_lifo_push(), retrieve the last element from __nb_lifo_pop()
- Split C11 implementation into a separate patchset
Gage Eads (8):
stack: introduce rte stack library
mempool/stack: convert mempool to use rte stack
test/stack: add stack te
The new rte_stack library is derived from the mempool handler, so this
commit removes duplicated code and simplifies the handler by migrating it
to this new API.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS | 2 +-
drivers/mempool/stack
stack_autotest performs positive and negative testing of the stack API, and
exercises the push and pop datapath functions with all available lcores.
Signed-off-by: Gage Eads
---
MAINTAINERS | 1 +
app/test/Makefile | 2 +
app/test/meson.build | 3 +
app/test/test_stack.c
data structure,
rte_ring, and its lock-based implementation is derived from the stack
mempool handler. An upcoming commit will migrate the stack mempool handler
to rte_stack.
Signed-off-by: Gage Eads
---
MAINTAINERS| 6 +
config/common_base | 5 +
(if possible):
- Two hyperthreads
- Two physical cores
- Two physical cores on separate NUMA nodes
- All available lcores
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
app/test/Makefile | 1 +
app/test/meson.build | 2 +
app/test/test_stack_perf.c | 343
linked list elements themselves are maintained in a lock-free LIFO
list, and are allocated before stack pushes and freed after stack pops.
Since the stack has a fixed maximum depth, these elements do not need to be
dynamically created.
Signed-off-by: Gage Eads
---
doc/guides/prog_guide/stack_lib.rst
This commit adds an implementation of the lock-free stack push, pop, and
length functions that use __atomic builtins, for systems that benefit from
the finer-grained memory ordering control.
Signed-off-by: Gage Eads
---
lib/librte_stack/Makefile| 3 +-
lib/librte_stack/meson.build
E5-2699 v4,
running on isolcpus cores with a tickless scheduler. The lock-based stack's
rate_persec was 0.6x-3.5x the lock-free stack's.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
doc/guides/prog_guide/env_abstraction_layer.rst | 10 ++
doc/guides/rel_not
This commit adds lock-free stack variants of stack_autotest
(stack_lf_autotest) and stack_perf_autotest (stack_lf_perf_autotest), which
differ only in that the lock-free versions pass the RTE_STACK_F_LF flag to
all rte_stack_create() calls.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
The new rte_stack library is derived from the mempool handler, so this
commit removes duplicated code and simplifies the handler by migrating it
to this new API.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS | 2 +-
drivers/mempool/stack
nb_lifo_push(), retrieve the last element from __nb_lifo_pop()
- Split C11 implementation into a separate patchset
Gage Eads (8):
stack: introduce rte stack library
mempool/stack: convert mempool to use rte stack
test/stack: add stack test
test/stack: add stack perf test
stack: add lock-fre
data structure,
rte_ring, and its lock-based implementation is derived from the stack
mempool handler. An upcoming commit will migrate the stack mempool handler
to rte_stack.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS| 6 +
config/common
(if possible):
- Two hyperthreads
- Two physical cores
- Two physical cores on separate NUMA nodes
- All available lcores
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
app/test/Makefile | 1 +
app/test/meson.build | 2 +
app/test/test_stack_perf.c | 343
stack_autotest performs positive and negative testing of the stack API, and
exercises the push and pop datapath functions with all available lcores.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS | 1 +
app/test/Makefile | 2 +
app/test/meson.build | 3
linked list elements themselves are maintained in a lock-free LIFO
list, and are allocated before stack pushes and freed after stack pops.
Since the stack has a fixed maximum depth, these elements do not need to be
dynamically created.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
doc
E5-2699 v4,
running on isolcpus cores with a tickless scheduler. The lock-based stack's
rate_persec was 0.6x-3.5x the lock-free stack's.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
doc/guides/prog_guide/env_abstraction_layer.rst | 10 ++
doc/guides/rel_not
This commit adds an implementation of the lock-free stack push, pop, and
length functions that use __atomic builtins, for systems that benefit from
the finer-grained memory ordering control.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
lib/librte_stack/Makefile | 3
This commit adds lock-free stack variants of stack_autotest
(stack_lf_autotest) and stack_perf_autotest (stack_lf_perf_autotest), which
differ only in that the lock-free versions pass the RTE_STACK_F_LF flag to
all rte_stack_create() calls.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
data structure,
rte_ring, and its lock-based implementation is derived from the stack
mempool handler. An upcoming commit will migrate the stack mempool handler
to rte_stack.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS| 6 +
config/common
->sz")
- Remove unnecessary NULL check from test_stack_basic
- Properly terminate the name string in test_stack_name_length
- Add an empty array of struct rte_nb_lifo_elem elements
- In rte_nb_lifo_push(), retrieve the last element from __nb_lifo_pop()
- Split C11 implementation into a separat
The new rte_stack library is derived from the mempool handler, so this
commit removes duplicated code and simplifies the handler by migrating it
to this new API.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS | 2 +-
drivers/mempool/stack
stack_autotest performs positive and negative testing of the stack API, and
exercises the push and pop datapath functions with all available lcores.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
MAINTAINERS | 1 +
app/test/Makefile | 2 +
app/test/meson.build | 3
(if possible):
- Two hyperthreads
- Two physical cores
- Two physical cores on separate NUMA nodes
- All available lcores
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
---
app/test/Makefile | 1 +
app/test/meson.build | 2 +
app/test/test_stack_perf.c | 343
linked list elements themselves are maintained in a lock-free LIFO
list, and are allocated before stack pushes and freed after stack pops.
Since the stack has a fixed maximum depth, these elements do not need to be
dynamically created.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
Reviewed-by
This commit adds lock-free stack variants of stack_autotest
(stack_lf_autotest) and stack_perf_autotest (stack_lf_perf_autotest), which
differ only in that the lock-free versions pass the RTE_STACK_F_LF flag to
all rte_stack_create() calls.
Signed-off-by: Gage Eads
Reviewed-by: Olivier Matz
1 - 100 of 248 matches
Mail list logo