[dpdk-dev] [PATCH] maintainers: resign from stack library

2020-10-29 Thread Gage Eads
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,

[dpdk-dev] [PATCH v4] doc: add stack mempool guide

2020-10-07 Thread Gage Eads
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

[dpdk-dev] [PATCH] stack: remove experimental tag from API

2020-09-30 Thread Gage Eads
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

[dpdk-dev] [PATCH v3] doc: add stack mempool guide

2020-09-14 Thread Gage Eads
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

[dpdk-dev] [PATCH] doc: add stack mempool guide

2020-08-24 Thread Gage Eads
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

[dpdk-dev] [PATCH] doc: add stack mempool guide

2020-08-11 Thread Gage Eads
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

[dpdk-dev] [20.11] [PATCH v2] stack: remove experimental tag from API

2020-05-28 Thread Gage Eads
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

[dpdk-dev] [PATCH] stack: remove experimental tag from API

2020-05-27 Thread Gage Eads
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

[dpdk-dev] [PATCH] event/sw: fix xstats reset value assignment bug

2019-08-27 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] doc: add multi-proc shared lib mempool note

2019-06-20 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] eal: promote some service core functions to stable

2019-06-20 Thread Gage Eads
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

[dpdk-dev] [PATCH] eal: promote some service core functions to stable

2019-06-20 Thread Gage Eads
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

[dpdk-dev] [PATCH] doc: add multi-proc shared lib mempool note

2019-06-18 Thread Gage Eads
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

[dpdk-dev] [PATCH] ring: fix namesize macro documentation block

2019-04-04 Thread Gage Eads
'/**<' style comments apply to the previous member, which caused doxygen to emit the RTE_RING_NAMESIZE documentation for RTE_RING_MZ_PREFIX. Fixes: 38c9817ee1d8 ("mempool: adjust name size in related data types") Cc: sta...@dpdk.org Signed-off-by: Gage Eads --- lib/lib

[dpdk-dev] [PATCH v10 8/8] mempool/stack: add lock-free stack mempool handler

2019-04-04 Thread Gage Eads
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

[dpdk-dev] [PATCH v10 7/8] test/stack: add lock-free stack tests

2019-04-04 Thread Gage Eads
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

[dpdk-dev] [PATCH v10 6/8] stack: add C11 atomic implementation

2019-04-04 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- lib

[dpdk-dev] [PATCH v10 4/8] test/stack: add stack perf test

2019-04-04 Thread Gage Eads
(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 | 345

[dpdk-dev] [PATCH v10 5/8] stack: add lock-free stack implementation

2019-04-04 Thread Gage Eads
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

[dpdk-dev] [PATCH v10 3/8] test/stack: add stack test

2019-04-04 Thread Gage Eads
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

[dpdk-dev] [PATCH v10 1/8] stack: introduce rte stack library

2019-04-04 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- MAINTA

[dpdk-dev] [PATCH v10 2/8] mempool/stack: convert mempool to use rte stack

2019-04-04 Thread Gage Eads
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

[dpdk-dev] [PATCH v10 0/8] Add stack library and new mempool handler

2019-04-04 Thread Gage Eads
Fix stack_thread_push_pop bug ("&t->sz" -> "t->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 elem

[dpdk-dev] [PATCH v9 6/8] stack: add C11 atomic implementation

2019-04-03 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- lib

[dpdk-dev] [PATCH v9 7/8] test/stack: add lock-free stack tests

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v9 8/8] mempool/stack: add lock-free stack mempool handler

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v9 5/8] stack: add lock-free stack implementation

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v9 4/8] test/stack: add stack perf test

2019-04-03 Thread Gage Eads
(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 | 345

[dpdk-dev] [PATCH v9 1/8] stack: introduce rte stack library

2019-04-03 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- MAINTA

[dpdk-dev] [PATCH v9 2/8] mempool/stack: convert mempool to use rte stack

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v9 0/8] Add stack library and new mempool handler

2019-04-03 Thread Gage Eads
gt; "t->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 s

[dpdk-dev] [PATCH v9 3/8] test/stack: add stack test

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 7/8] test/stack: add lock-free stack tests

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 6/8] stack: add C11 atomic implementation

2019-04-03 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- lib

[dpdk-dev] [PATCH v8 8/8] mempool/stack: add lock-free stack mempool handler

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 3/8] test/stack: add stack test

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 5/8] stack: add lock-free stack implementation

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 4/8] test/stack: add stack perf test

2019-04-03 Thread Gage Eads
(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

[dpdk-dev] [PATCH v8 2/8] mempool/stack: convert mempool to use rte stack

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 1/8] stack: introduce rte stack library

2019-04-03 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- MAINTA

[dpdk-dev] [PATCH v8 0/8] Add stack library and new mempool handler

2019-04-03 Thread Gage Eads
tring 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 separate patchset Gage Eads (8): stack: introduce rte stack library mempool/stack: convert mempool

[dpdk-dev] [PATCH v7 8/8] mempool/stack: add lock-free stack mempool handler

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v7 6/8] stack: add C11 atomic implementation

2019-04-03 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- lib

[dpdk-dev] [PATCH v7 4/8] test/stack: add stack perf test

2019-04-03 Thread Gage Eads
(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

[dpdk-dev] [PATCH v7 7/8] test/stack: add lock-free stack tests

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v7 5/8] stack: add lock-free stack implementation

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v7 2/8] mempool/stack: convert mempool to use rte stack

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v7 3/8] test/stack: add stack test

2019-04-03 Thread Gage Eads
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

[dpdk-dev] [PATCH v7 0/8] Add stack library and new mempool handler

2019-04-03 Thread Gage Eads
e_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 test test/stack: a

[dpdk-dev] [PATCH v7 1/8] stack: introduce rte stack library

2019-04-03 Thread Gage Eads
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 Reviewed-by: Honnappa Nagarahalli --- MAINTA

[dpdk-dev] [PATCH v6] eal/x86: add 128-bit atomic compare exchange

2019-04-03 Thread Gage Eads
This operation can be used for non-blocking algorithms, such as a non-blocking stack or ring. It is available only for x86_64. Signed-off-by: Gage Eads Reviewed-by: Honnappa Nagarahalli --- This patch addresses x86-64 only; other architectures can/will be supported in the future. The __atomic

[dpdk-dev] [PATCH v4 1/1] eal: add 128-bit compare exchange (x86-64 only)

2019-04-03 Thread Gage Eads
This operation can be used for non-blocking algorithms, such as a non-blocking stack or ring. Signed-off-by: Gage Eads Reviewed-by: Honnappa Nagarahalli --- .../common/include/arch/x86/rte_atomic_64.h| 81 ++ 1 file changed, 81 insertions(+) diff --git a/lib

[dpdk-dev] [PATCH v4 0/1] Add 128-bit compare and set

2019-04-03 Thread Gage Eads
structure definition inside the RTE_ARCH_x86_64 ifdef - Drop enum rte_atomic_memmodel_t in favor of compiler-defined __ATOMIC_* - Drop unnecessary comment relating to X86_64 - Tweak the pseudocode to reflect the 'exp' update on failure. Gage Eads (1): eal: add 128-bit compare

[dpdk-dev] [PATCH v6 8/8] mempool/stack: add lock-free stack mempool handler

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 7/8] test/stack: add lock-free stack tests

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 6/8] stack: add C11 atomic implementation

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 5/8] stack: add lock-free stack implementation

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 4/8] test/stack: add stack perf test

2019-04-01 Thread Gage Eads
(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

[dpdk-dev] [PATCH v6 3/8] test/stack: add stack test

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 2/8] mempool/stack: convert mempool to use rte stack

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 1/8] stack: introduce rte stack library

2019-04-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v6 0/8] Add stack library and new mempool handler

2019-04-01 Thread Gage Eads
->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

[dpdk-dev] [PATCH v5 7/8] test/stack: add lock-free stack tests

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 8/8] mempool/stack: add lock-free stack mempool handler

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 6/8] stack: add C11 atomic implementation

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 1/8] stack: introduce rte stack library

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 4/8] test/stack: add stack perf test

2019-03-31 Thread Gage Eads
(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

[dpdk-dev] [PATCH v5 3/8] test/stack: add stack test

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 5/8] stack: add lock-free stack implementation

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 0/8] Add stack library and new mempool handler

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v5 2/8] mempool/stack: convert mempool to use rte stack

2019-03-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 7/8] test/stack: add lock-free stack tests

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 8/8] mempool/stack: add lock-free stack mempool handler

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 6/8] stack: add C11 atomic implementation

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 5/8] stack: add lock-free stack implementation

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 4/8] test/stack: add stack perf test

2019-03-28 Thread Gage Eads
(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

[dpdk-dev] [PATCH v4 1/8] stack: introduce rte stack library

2019-03-28 Thread Gage Eads
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 +

[dpdk-dev] [PATCH v4 3/8] test/stack: add stack test

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 2/8] mempool/stack: convert mempool to use rte stack

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v4 0/8] Add stack library and new mempool handler

2019-03-28 Thread Gage Eads
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

[dpdk-dev] [PATCH v8 3/6] ring: add a lock-free implementation

2019-03-18 Thread Gage Eads
unning on isolcpus cores with a tickless scheduler. Each test run three times and the results averaged. Signed-off-by: Gage Eads --- lib/librte_ring/rte_ring.c | 92 +++-- lib/librte_ring/rte_ring.h | 308 ++--- lib/librte_ring/rte_ring_c11_mem.h | 366

[dpdk-dev] [PATCH v8 6/6] mempool/ring: add lock-free ring handlers

2019-03-18 Thread Gage Eads
These handlers allow an application to create a mempool based on the lock-free ring, with any combination of single/multi producer/consumer. Also, add a note to the programmer's guide's "known issues" section. Signed-off-by: Gage Eads Acked-by: Andrew Rybchenko --- d

[dpdk-dev] [PATCH v8 5/6] test_ring_perf: add lock-free ring perf test

2019-03-18 Thread Gage Eads
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 --- app/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git

[dpdk-dev] [PATCH v8 4/6] test_ring: add lock-free ring autotest

2019-03-18 Thread Gage Eads
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 --- app/test/test_ring.c | 61 1 file changed, 38 insertions(+), 23 deletions(-) di

[dpdk-dev] [PATCH v8 2/6] ring: add a ring start marker

2019-03-18 Thread Gage Eads
This marker allows us to replace "&r[1]" with "&r->ring" to locate the start of the ring. Signed-off-by: Gage Eads --- lib/librte_ring/rte_ring.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_

[dpdk-dev] [PATCH v8 0/6] Add lock-free ring and mempool handler

2019-03-18 Thread Gage Eads
into patch #5 - Convert uintptr_t to size_t - Add a compile-time check for the size of size_t - Fix a space-after-typecast issue - Fix an unnecessary-parentheses checkpatch warning - Bump librte_ring's library version Gage Eads (6): ring: add a pointer-width headtail structure ring: ad

[dpdk-dev] [PATCH v8 1/6] ring: add a pointer-width headtail structure

2019-03-18 Thread Gage Eads
es in the same location in struct rte_ring as their 32-bit counterparts. Since the 32-bit versions are padded out to a cache line, there is space for the new structure without affecting the layout of struct rte_ring. Thus, the ABI is preserved. Signed-off-by: Gage Eads --- lib/librte_ring/rte_r

[dpdk-dev] [PATCH v7 6/6] mempool/ring: add lock-free ring handlers

2019-03-18 Thread Gage Eads
These handlers allow an application to create a mempool based on the lock-free ring, with any combination of single/multi producer/consumer. Also, add a note to the programmer's guide's "known issues" section. Signed-off-by: Gage Eads Acked-by: Andrew Rybchenko --- d

[dpdk-dev] [PATCH v7 1/6] ring: add a pointer-width headtail structure

2019-03-18 Thread Gage Eads
es in the same location in struct rte_ring as their 32-bit counterparts. Since the 32-bit versions are padded out to a cache line, there is space for the new structure without affecting the layout of struct rte_ring. Thus, the ABI is preserved. Signed-off-by: Gage Eads --- lib/librte_ring/rte_r

[dpdk-dev] [PATCH v7 4/6] test_ring: add lock-free ring autotest

2019-03-18 Thread Gage Eads
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 --- app/test/test_ring.c | 61 1 file changed, 38 insertions(+), 23 deletions(-) di

[dpdk-dev] [PATCH v7 2/6] ring: add a ring start marker

2019-03-18 Thread Gage Eads
This marker allows us to replace "&r[1]" with "&r->ring" to locate the start of the ring. Signed-off-by: Gage Eads --- lib/librte_ring/rte_ring.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_

[dpdk-dev] [PATCH v7 3/6] ring: add a lock-free implementation

2019-03-18 Thread Gage Eads
unning on isolcpus cores with a tickless scheduler. Each test run three times and the results averaged. Signed-off-by: Gage Eads --- lib/librte_ring/rte_ring.c | 92 +++-- lib/librte_ring/rte_ring.h | 308 ++--- lib/librte_ring/rte_ring_c11_mem.h | 366

[dpdk-dev] [PATCH v7 0/6] Add lock-free ring and mempool handler

2019-03-18 Thread Gage Eads
x an unnecessary-parentheses checkpatch warning - Bump librte_ring's library version Gage Eads (6): ring: add a pointer-width headtail structure ring: add a ring start marker ring: add a lock-free implementation test_ring: add lock-free ring autotest test_ring_perf: add lock-free

[dpdk-dev] [PATCH v7 5/6] test_ring_perf: add lock-free ring perf test

2019-03-18 Thread Gage Eads
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 --- app/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git

[dpdk-dev] [PATCH v6 6/6] mempool/ring: add lock-free ring handlers

2019-03-06 Thread Gage Eads
These handlers allow an application to create a mempool based on the lock-free ring, with any combination of single/multi producer/consumer. Also, add a note to the programmer's guide's "known issues" section. Signed-off-by: Gage Eads Acked-by: Andrew Rybchenko --- d

[dpdk-dev] [PATCH v6 5/6] test_ring_perf: add lock-free ring perf test

2019-03-06 Thread Gage Eads
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 --- app/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git

[dpdk-dev] [PATCH v6 4/6] test_ring: add lock-free ring autotest

2019-03-06 Thread Gage Eads
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 --- app/test/test_ring.c | 61 1 file changed, 38 insertions(+), 23 deletions(-) di

[dpdk-dev] [PATCH v6 3/6] ring: add a lock-free implementation

2019-03-06 Thread Gage Eads
unning on isolcpus cores with a tickless scheduler. Each test run three times and the results averaged. Signed-off-by: Gage Eads --- lib/librte_ring/rte_ring.c | 92 +++-- lib/librte_ring/rte_ring.h | 308 ++--- lib/librte_ring/rte_ring_c11_mem.h | 366

[dpdk-dev] [PATCH v6 2/6] ring: add a ring start marker

2019-03-06 Thread Gage Eads
This marker allows us to replace "&r[1]" with "&r->ring" to locate the start of the ring. Signed-off-by: Gage Eads --- lib/librte_ring/rte_ring.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_

[dpdk-dev] [PATCH v6 1/6] ring: add a pointer-width headtail structure

2019-03-06 Thread Gage Eads
es in the same location in struct rte_ring as their 32-bit counterparts. Since the 32-bit versions are padded out to a cache line, there is space for the new structure without affecting the layout of struct rte_ring. Thus, the ABI is preserved. Signed-off-by: Gage Eads --- lib/librte_ring/rte_r

  1   2   3   >