[dpdk-dev] [RFC PATCH] EventDev buffered enqueue API

2016-12-02 Thread Gage Eads
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

[dpdk-dev] [RFC PATCH] eventdev: add buffered enqueue and flush APIs

2016-12-02 Thread Gage Eads
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

[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] mk: use extra cflags when linking libs with a compiler

2017-07-25 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] mk: use extra cflags when linking libs with a compiler

2017-07-31 Thread Gage Eads
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

[dpdk-dev] [PATCH v3] eventdev: add errno-style return values

2017-03-16 Thread Gage Eads
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

[dpdk-dev] [PATCH v4] eventdev: add errno-style return values

2017-03-17 Thread Gage Eads
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

[dpdk-dev] [PATCH] mempool: remove non-EAL thread note from header

2017-03-20 Thread Gage Eads
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

[dpdk-dev] [PATCH v5] eventdev: add errno-style return values

2017-03-22 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] mempool: remove non-EAL thread note from header

2017-03-22 Thread Gage Eads
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

[dpdk-dev] [PATCH v3] mempool: remove non-EAL thread note from header

2017-03-23 Thread Gage Eads
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

[dpdk-dev] [PATCH v6] eventdev: add errno-style return values

2017-03-23 Thread Gage Eads
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

[dpdk-dev] [PATCH v4] mempool: update non-EAL thread note in the header

2017-03-30 Thread Gage Eads
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

[dpdk-dev] [PATCH] eventdev: clarify nb_unlinks description

2017-02-10 Thread Gage Eads
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

[dpdk-dev] [PATCH] eventdev: Add rte_errno return values to the enqueue and dequeue functions

2017-02-10 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] eventdev: clarify nb_links and nb_unlinks description

2017-02-13 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] eventdev: Add rte_errno return values to the enqueue and dequeue functions

2017-02-15 Thread Gage Eads
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

[dpdk-dev] [PATCH] eventdev: Fix links_map initialization

2017-03-01 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] eventdev: Fix links_map initialization for sw PMD

2017-03-06 Thread Gage Eads
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

[dpdk-dev] [PATCH v3] eventdev: fix links map initialization for SW PMD

2017-03-07 Thread 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,

[dpdk-dev] [PATCH] mk: use extra cflags when linking apps with the compiler

2017-04-25 Thread Gage Eads
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 $

[dpdk-dev] [PATCH] crypto/qat: fix dequeue count stats retrieval

2017-04-27 Thread Gage Eads
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 ++--

[dpdk-dev] [RFC] eventdev: add event adapter for ethernet Rx queues

2017-05-09 Thread Gage Eads
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

[dpdk-dev] [PATCH] eventdev: clarify atomic and ordered queue config

2017-05-12 Thread Gage Eads
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

[dpdk-dev] [PATCH v2] eventdev: clarify atomic and ordered queue config

2017-05-15 Thread Gage Eads
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

[dpdk-dev] [PATCH] eventdev: fix xstats documentation typo

2018-12-03 Thread Gage Eads
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 ++

[dpdk-dev] [PATCH 0/3] Add non-blocking stack mempool handler

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

[dpdk-dev] [PATCH 1/3] eal: add 128-bit cmpset (x86-64 only)

2019-01-10 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 --- .../common/include/arch/x86/rte_atomic_64.h| 22 ++ 1 file changed, 22 insertions(+) diff --git a/lib/librte_eal/common/include/arch/x86

[dpdk-dev] [PATCH 2/3] mempool/nb_stack: add non-blocking stack mempool

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

[dpdk-dev] [PATCH 3/3] doc: add NB stack comment to EAL "known issues"

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

[dpdk-dev] [PATCH 2/6] ring: add a non-blocking implementation

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

[dpdk-dev] [PATCH 4/6] test_ring_perf: add non-blocking ring perf test

2019-01-10 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 --- test/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a

[dpdk-dev] [PATCH 0/6] Add non-blocking ring

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

[dpdk-dev] [PATCH 1/6] ring: change head and tail to pointer-width size

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

[dpdk-dev] [PATCH 6/6] doc: add NB ring comment to EAL "known issues"

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

[dpdk-dev] [PATCH 3/6] test_ring: add non-blocking ring autotest

2019-01-10 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 --- test/test/test_ring.c | 57 --- 1 file changed, 36 insertions(+), 21 deletions(-) di

[dpdk-dev] [PATCH 5/6] mempool/ring: add non-blocking ring handlers

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

[dpdk-dev] [PATCH v2 0/2] Improve service stop support

2018-06-14 Thread Gage Eads
scheduler service is no longer active. v2: - Move function to DPDK_18.08 block in rte_eal_version.map - Fix signed vs. unsigned comparison compiler warning Gage Eads (2): service: add mechanism for quiescing a service event/sw: support device stop flush callback drivers/event/sw/

[dpdk-dev] [PATCH v2 1/2] service: add mechanism for quiescing a service

2018-06-14 Thread Gage Eads
s can set a service's runstate to stopped, then poll rte_service_may_be_active() until it returns false. At that point, the service is quiesced. Signed-off-by: Gage Eads Acked-by: Harry van Haaren --- lib/librte_eal/common/include/rte_service.h | 16 +++ lib/librte_eal/common/rte

[dpdk-dev] [PATCH v2 2/2] event/sw: support device stop flush callback

2018-06-14 Thread Gage Eads
This commit also adds a flush callback test to the sw eventdev's selftest suite. Signed-off-by: Gage Eads Acked-by: Harry van Haaren --- drivers/event/sw/sw_evdev.c | 114 ++- drivers/event/sw/sw_evdev_selftest.c | 81 - 2

[dpdk-dev] [PATCH v3 0/2] Improve service stop support

2018-06-21 Thread Gage Eads
scheduler service is no longer active. v2: - Move function to DPDK_18.08 block in rte_eal_version.map - Fix signed vs. unsigned comparison compiler warning v3: - Move function to EXPERIMENTAL block and add experimental tags - Fix typo in function documentation Gage Eads (2): service: add mec

[dpdk-dev] [PATCH v3 1/2] service: add mechanism for quiescing a service

2018-06-21 Thread Gage Eads
s can set a service's runstate to stopped, then poll rte_service_may_be_active() until it returns false. At that point, the service is quiesced. Signed-off-by: Gage Eads Acked-by: Harry van Haaren --- lib/librte_eal/common/include/rte_service.h | 20 ++ lib/librte_eal/common/rte

[dpdk-dev] [PATCH v3 2/2] event/sw: support device stop flush callback

2018-06-21 Thread Gage Eads
This commit also adds a flush callback test to the sw eventdev's selftest suite. Signed-off-by: Gage Eads Acked-by: Harry van Haaren --- drivers/event/sw/sw_evdev.c | 114 ++- drivers/event/sw/sw_evdev_selftest.c | 81 - 2

[dpdk-dev] [PATCH] net/tap: set queue started and stopped

2018-07-09 Thread Gage Eads
Set the rx and tx queue state appropriately when the queues or device are started or stopped. Signed-off-by: Gage Eads --- drivers/net/tap/rte_eth_tap.c | 56 +-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/drivers/net/tap/rte_eth_tap.c

[dpdk-dev] [PATCH] net/pcap: set queue started and stopped

2018-07-09 Thread Gage Eads
Set the rx and tx queue state appropriately when the queues or device are started or stopped. Signed-off-by: Gage Eads --- drivers/net/pcap/rte_eth_pcap.c | 42 + 1 file changed, 42 insertions(+) diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net

[dpdk-dev] [PATCH v2] net/pcap: set queue started and stopped

2018-07-18 Thread Gage Eads
Set the rx and tx queue state appropriately when the queues or device are started or stopped. This enables usage of the ethdev rx/tx queue start/stop functions with the PCAP PMD. Signed-off-by: Gage Eads --- v2 changes: - Expand the commit message - Fix queue start/stop state setting in

[dpdk-dev] [PATCH 0/2] Improve service stop support

2018-05-31 Thread Gage Eads
scheduler service is no longer active. Gage Eads (2): service: add mechanism for quiescing a service event/sw: support device stop flush callback drivers/event/sw/sw_evdev.c | 114 +++- drivers/event/sw/sw_evdev_selftest.c| 81 +++

[dpdk-dev] [PATCH 1/2] service: add mechanism for quiescing a service

2018-05-31 Thread Gage Eads
s can set a service's runstate to stopped, then poll rte_service_may_be_active() until it returns false. At that point, the service is quiesced. Signed-off-by: Gage Eads --- lib/librte_eal/common/include/rte_service.h | 16 +++ lib/librte_eal/common/rte_service.c

[dpdk-dev] [PATCH 2/2] event/sw: support device stop flush callback

2018-05-31 Thread 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 | 114 ++- drivers/event/sw/sw_evdev_selftest.c | 81 - 2 files changed, 192 inser

[dpdk-dev] [PATCH] net: rename u16 to fix shadowed declaration warning

2018-06-04 Thread Gage Eads
This patch renames u16 to u16_buf. u16 as a variable name causes a shadowed declaration warning if, for example, the application also typedefs u16 (e.g. by including a header containing "typedef unsigned short u16") and the application is built with -Wshadow. Signed-off-by: Gage Eads

[dpdk-dev] [PATCH v2 0/2] Add non-blocking stack mempool handler

2019-01-15 Thread Gage Eads
_stack/Makefile - Add a comment to nb_lifo_len() justifying its approximate behavior - Fix comparison with NULL - Remove unnecessary void * cast - Fix meson builds and limit them to x86_64 - Fix missing library error for non-x86_64 builds Gage Eads (2): eal: add 128-bit cmpset (x86-64 only) mempo

[dpdk-dev] [PATCH v2 1/2] eal: add 128-bit cmpset (x86-64 only)

2019-01-15 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 --- .../common/include/arch/x86/rte_atomic_64.h| 22 ++ 1 file changed, 22 insertions(+) diff --git a/lib/librte_eal/common/include/arch/x86

[dpdk-dev] [PATCH v2 2/2] mempool/nb_stack: add non-blocking stack mempool

2019-01-15 Thread Gage Eads
27;s. Signed-off-by: Gage Eads --- MAINTAINERS| 4 + config/common_base | 1 + doc/guides/prog_guide/env_abstraction_layer.rst| 5 + drivers/mempool/Makefile | 3 + drivers

[dpdk-dev] [PATCH v2 3/5] test_ring: add non-blocking ring autotest

2019-01-15 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 --- test/test/test_ring.c | 57 --- 1 file changed, 36 insertions(+), 21 deletions(-) di

[dpdk-dev] [PATCH v2 2/5] ring: add a non-blocking implementation

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

[dpdk-dev] [PATCH v2 4/5] test_ring_perf: add non-blocking ring perf test

2019-01-15 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 --- test/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a

[dpdk-dev] [PATCH v2 1/5] ring: change head and tail to pointer-width size

2019-01-15 Thread Gage Eads
ance drop on 32-bit builds. With size_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/Makefile | 2 +- lib/librte_ring/meson.build | 2 +- lib/librte_ring/rte_ring.c

[dpdk-dev] [PATCH v2 5/5] mempool/ring: add non-blocking ring handlers

2019-01-15 Thread Gage Eads
These handlers allow an application to create a mempool based on the non-blocking 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 v2 0/5] Add non-blocking ring

2019-01-15 Thread Gage Eads
e_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 (5): ring: change head and tail to pointer-width size ring: add a non-blocking implementation t

[dpdk-dev] [PATCH] doc: announce ring ABI and API changes

2019-01-15 Thread Gage Eads
In order to support the non-blocking ring[1], one ABI change and one API change are required in librte_ring. This commit updates the deprecation notice to pave the way for their inclusion in 19.05. [1] http://mails.dpdk.org/archives/dev/2019-January/123475.html Signed-off-by: Gage Eads --- doc

[dpdk-dev] [PATCH v3 1/2] eal: add 128-bit cmpset (x86-64 only)

2019-01-16 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 --- .../common/include/arch/x86/rte_atomic_64.h| 22 ++ 1 file changed, 22 insertions(+) diff --git a/lib/librte_eal/common/include/arch/x86

[dpdk-dev] [PATCH v3 0/2] Add non-blocking stack mempool handler

2019-01-16 Thread Gage Eads
x86_64 - Fix missing library error for non-x86_64 builds Gage Eads (2): eal: add 128-bit cmpset (x86-64 only) mempool/nb_stack: add non-blocking stack mempool MAINTAINERS| 4 + config/common_base | 1 + doc/gui

[dpdk-dev] [PATCH v3 2/2] mempool/nb_stack: add non-blocking stack mempool

2019-01-16 Thread Gage Eads
27;s. Signed-off-by: Gage Eads Acked-by: Andrew Rybchenko --- MAINTAINERS| 4 + config/common_base | 1 + doc/guides/prog_guide/env_abstraction_layer.rst| 5 + drivers/mempool/Makefile |

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

2019-01-17 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 --- .../common/include/arch/x86/rte_atomic_64.h| 22 ++ 1 file changed, 22 insertions(+) diff --git a/lib/librte_eal/common/include/arch/x86

[dpdk-dev] [PATCH v4 0/2] Add non-blocking stack mempool handler

2019-01-17 Thread Gage Eads
oid * cast - Fix meson builds and limit them to x86_64 - Fix missing library error for non-x86_64 builds Gage Eads (2): eal: add 128-bit cmpset (x86-64 only) mempool/nb_stack: add non-blocking stack mempool MAINTAINERS| 4 + config/common_base

[dpdk-dev] [PATCH v4 2/2] mempool/nb_stack: add non-blocking stack mempool

2019-01-17 Thread Gage Eads
27;s. Signed-off-by: Gage Eads Acked-by: Andrew Rybchenko --- MAINTAINERS| 4 + config/common_base | 1 + doc/guides/prog_guide/env_abstraction_layer.rst| 5 + drivers/mempool/Makefile |

[dpdk-dev] [PATCH v3 0/5] Add non-blocking ring

2019-01-18 Thread Gage Eads
lly support it with the CASP instruction. v2: - Merge separate docs commit 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 v

[dpdk-dev] [PATCH v3 2/5] ring: add a non-blocking implementation

2019-01-18 Thread Gage Eads
k enq/dequeue (size 32) | -0.05 Two NUMA nodes: SP/SC bulk enq/dequeue (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, runni

[dpdk-dev] [PATCH v3 3/5] test_ring: add non-blocking ring autotest

2019-01-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 --- test/test/test_ring.c | 57 --- 1 file changed, 36 insertions(+), 21 deletions(-) di

[dpdk-dev] [PATCH v3 1/5] ring: add 64-bit headtail structure

2019-01-18 Thread Gage Eads
eir 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_eventdev/rte_event_ring.h | 2 +- lib/librte_rin

[dpdk-dev] [PATCH v3 4/5] test_ring_perf: add non-blocking ring perf test

2019-01-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 --- test/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a

[dpdk-dev] [PATCH v3 5/5] mempool/ring: add non-blocking ring handlers

2019-01-18 Thread Gage Eads
These handlers allow an application to create a mempool based on the non-blocking 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 v2] doc: announce ring API change

2019-01-18 Thread Gage Eads
-off-by: Gage Eads --- v2: - Drop the ABI change notice doc/guides/rel_notes/deprecation.rst | 6 ++ 1 file changed, 6 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index d4aea4b46..5b74a2aa7 100644 --- a/doc/guides/rel_notes

[dpdk-dev] [PATCH v3] doc: announce ring API change

2019-01-18 Thread Gage Eads
-off-by: Gage Eads --- v3: - "two changes are planned" -> "one change is planned" v2: - Drop the ABI change notice doc/guides/rel_notes/deprecation.rst | 6 ++ 1 file changed, 6 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_note

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

2019-01-28 Thread Gage Eads
patch was spun off so that the the NB ring depends only on this patch and not the entire non-blocking stack patchset. [1] http://mails.dpdk.org/archives/dev/2019-January/124002.html [1] http://mails.dpdk.org/archives/dev/2019-January/123653.html Gage Eads (1): eal: add 128-bit cmpset (x86-64 only

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

2019-01-28 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 --- .../common/include/arch/x86/rte_atomic_64.h| 31 +++ lib/librte_eal/common/include/generic/rte_atomic.h | 65 ++ 2 files changed, 96

[dpdk-dev] [PATCH v4 0/5] Add non-blocking ring

2019-01-28 Thread Gage Eads
atch #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 (5): ring: add 64-bit headtail structure ring: add a non-blo

[dpdk-dev] [PATCH v4 1/5] ring: add 64-bit headtail structure

2019-01-28 Thread Gage Eads
s 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_ring.h | 23 +- lib/l

[dpdk-dev] [PATCH v4 2/5] ring: add a non-blocking implementation

2019-01-28 Thread Gage Eads
k enq/dequeue (size 32) | -0.05 Two NUMA nodes: SP/SC bulk enq/dequeue (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, runni

[dpdk-dev] [PATCH v4 3/5] test_ring: add non-blocking ring autotest

2019-01-28 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 --- test/test/test_ring.c | 57 --- 1 file changed, 36 insertions(+), 21 deletions(-) di

[dpdk-dev] [PATCH v4 4/5] test_ring_perf: add non-blocking ring perf test

2019-01-28 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 --- test/test/test_ring_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a

[dpdk-dev] [PATCH v4 5/5] mempool/ring: add non-blocking ring handlers

2019-01-28 Thread Gage Eads
These handlers allow an application to create a mempool based on the non-blocking 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 v4] doc: announce ring API change

2019-02-01 Thread Gage Eads
-off-by: Gage Eads --- v4: - 19.05 -> 19.08 v3: - "two changes are planned" -> "one change is planned" v2: - Drop the ABI change notice doc/guides/rel_notes/deprecation.rst | 6 ++ 1 file changed, 6 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.r

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

2019-02-22 Thread Gage Eads
ve volatile keyword from 'dst' - Put __int128 in a union in rte_int128_t and move the 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

[dpdk-dev] [PATCH v2 1/1] eal: add 128-bit cmpxchg (x86-64 only)

2019-02-22 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 --- .../common/include/arch/x86/rte_atomic_64.h| 33 lib/librte_eal/common/include/generic/rte_atomic.h | 59 ++ 2 files changed, 92

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

2019-02-22 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 2/7] mempool/stack: convert mempool to use rte stack

2019-02-22 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 --- MAINTAINERS | 2 +- drivers/mempool/stack/Makefile| 3

[dpdk-dev] [PATCH 5/7] stack: add non-blocking stack implementation

2019-02-22 Thread Gage Eads
. The linked list elements themselves are maintained in a non-blocking LIFO, 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

[dpdk-dev] [PATCH 7/7] mempool/stack: add non-blocking stack mempool handler

2019-02-22 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 non-blocking stack's. Signed-off-by: Gage Eads --- doc/guides/prog_guide/env_abstraction_layer.rst | 5 + doc/guides/rel_notes/release_19_05.rst | 5 + d

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

2019-02-22 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 --- test/test/Makefile | 1 + test/test/meson.build | 2 + test/test/test_stack_perf.c | 343

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

2019-02-22 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 + test/test/Makefile | 2 + test/test/meson.build | 3 + test/test

[dpdk-dev] [PATCH 6/7] test/stack: add non-blocking stack tests

2019-02-22 Thread Gage Eads
This commit adds non-blocking stack variants of stack_autotest (stack_nb_autotest) and stack_perf_autotest (stack_nb_perf_autotest), which differ only in that the non-blocking versions pass the STACK_F_NB flag to all rte_stack_create() calls. Signed-off-by: Gage Eads --- test/test/meson.build

[dpdk-dev] [PATCH 0/7] Subject: [PATCH ...] Add stack library and new mempool handler

2019-02-22 Thread Gage Eads
es on a 128-bit compare-and-swap, so it is currently limited to the x86_64 platform. This patchset is the successor to a patchset containing only the new mempool handler[1]. [1] http://mails.dpdk.org/archives/dev/2019-January/123555.html Gage Eads (7): stack: introduce rte stack library

[dpdk-dev] [PATCH] pdump: only remove created vdevs

2019-02-25 Thread Gage Eads
This commit fixes a bug in which pdump -- particularly when used in a unidirectional manner -- could attempt to remove devices it didn't create. Fixes: 35cb223ab7be ("pdump: fix vdev cleanup") Cc: sta...@dpdk.org Signed-off-by: Gage Eads --- app/pdump/main.c | 17 ++

[dpdk-dev] [PATCH v2] app/pdump: only remove created vdevs

2019-02-26 Thread Gage Eads
This commit fixes a bug in which a unidirectional pdump could attempt to remove devices it didn't create. Fixes: 35cb223ab7be ("app/pdump: fix vdev cleanup") Cc: sta...@dpdk.org Signed-off-by: Gage Eads Acked-by: Reshma Pattan --- v2: Tweak commit message app/pd

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

2019-03-04 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| 33 lib/librte_eal/common/include/generic/rte_atomic.h | 59

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

2019-03-04 Thread Gage Eads
or 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 exchange (x86-64 only) .../common/include/arch/x86/rte_atomic_64.h| 33 lib/lib

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

2019-03-05 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 v2 0/8] Add stack library and new mempool handler

2019-03-05 Thread Gage Eads
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 separate patchset Gage Eads (8): stack: introduce rte stack l

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

2019-03-05 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

  1   2   3   >