Bug#1081861: Possible fix

2024-10-17 Thread Mattias Ellert
Control: tags -1 + patch Possible fix: https://github.com/frankheckenbach/ftgl/pull/20 signature.asc Description: This is a digitally signed message part

Bug#1081861: Possible fix

2024-10-17 Thread Mattias Ellert
Control: tags -1 + patch Possible fix: https://github.com/frankheckenbach/ftgl/pull/20 signature.asc Description: This is a digitally signed message part

Bug#1081861: Possible fix

2024-10-17 Thread Mattias Ellert
Control: tags -1 + patch Possible fix: https://github.com/frankheckenbach/ftgl/pull/20 signature.asc Description: This is a digitally signed message part

[RFC v3 10/10] eventdev: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
: Mattias Rönnblom -- RFC v3: * Update release notes. (Jerin Jacob) * Remove single-event enqueue and dequeue function typedefs. (Pavan Nikhilesh) --- doc/guides/rel_notes/deprecation.rst | 6 +- doc/guides/rel_notes/release_24_11.rst | 3 +++ lib/eventdev/eventdev_pmd.h| 4

[RFC v3 08/10] event/cnxk: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
From: Pavan Nikhilesh Provide only burst enqueue and dequeue. Signed-off-by: Pavan Nikhilesh -- RFC v3: * Rewrite. Pavan Nikhilesh is now the author. --- drivers/event/cnxk/cn10k_eventdev.c | 74 ++--- drivers/event/cnxk/cn10k_worker.c | 49 +-- dri

[RFC v3 02/10] event/dlb2: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom -- RFCv2: * Remove unused function. (Stephen Hemminger) --- drivers/event/dlb2/dlb2.c | 40 ++- 1 file changed, 2 insertions(+), 38 deletions(-) diff --git a/drivers/event/dlb2/dlb2.c

[RFC v3 04/10] event/sw: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom --- drivers/event/sw/sw_evdev.c| 2 -- drivers/event/sw/sw_evdev.h| 2 -- drivers/event/sw/sw_evdev_worker.c | 12 3 files changed, 16 deletions(-) diff --git a/drivers/event/sw/sw_evdev.c b

[RFC v3 07/10] event/opdl: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom --- drivers/event/opdl/opdl_evdev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 25853166bf..ffa65ef930 100644 --- a/drivers/event/opdl

[RFC v3 06/10] event/dpaa2: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom -- RFC v2: * Remove unused functions. --- drivers/event/dpaa2/dpaa2_eventdev.c | 15 --- 1 file changed, 15 deletions(-) diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2

[RFC v3 05/10] event/dpaa: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom --- drivers/event/dpaa/dpaa_eventdev.c | 27 ++- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index

[RFC v3 09/10] event/skeleton: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom -- RFC v2: * Remove unused functions. --- drivers/event/skeleton/skeleton_eventdev.c | 29 -- 1 file changed, 29 deletions(-) diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event

[RFC v3 01/10] event/dsw: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom --- drivers/event/dsw/dsw_evdev.c | 2 -- drivers/event/dsw/dsw_evdev.h | 2 -- drivers/event/dsw/dsw_event.c | 12 3 files changed, 16 deletions(-) diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event

[RFC v3 03/10] event/octeontx: remove single event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Provide only burst enqueue and dequeue. Signed-off-by: Mattias Rönnblom --- drivers/event/octeontx/ssovf_evdev.h | 1 - drivers/event/octeontx/ssovf_worker.c | 40 +++ 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/drivers/event/octeontx/ssovf_evdev.h

[RFC v3 00/10] eventdev: remove single-event enqueue and dequeue

2024-10-16 Thread Mattias Rönnblom
Remove the single-event enqueue and dequeue functions from the eventdev "ops" struct, to reduce complexity, leaving performance unaffected. This ABI change has been announced as a DPDK deprication notice, originally scheduled for DPDK 23.11. Mattias Rönnblom (9): event/dsw: remove si

[PATCH v15 4/7] random: keep PRNG state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Replace keeping PRNG state in a RTE_MAX_LCORE-sized static array of cache-aligned and RTE_CACHE_GUARDed struct instances with keeping the same state in a more cache-friendly lcore variable. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen

[PATCH v15 0/7] Lcore variables

2024-10-16 Thread Mattias Rönnblom
This patch set introduces a new API for static per-lcore id memory allocation. Lcore variables are designed to replace static lcore id-indexed arrays and thread-local storage. See for the rationale and comparison with alternatives. Mattias Rönnblom (7): eal: add static per-lcore memory

[PATCH v15 6/7] service: keep per-lcore state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v14: * Merge with

[PATCH v15 5/7] power: keep per-lcore state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH

[PATCH v15 2/7] eal: add lcore variable functional tests

2024-10-16 Thread Mattias Rönnblom
Add functional test suite to exercise the API. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH invocations to match new API. RFC v5: * Adapt tests to reflect the removal of the GET() and SET

[PATCH v15 3/7] eal: add lcore variable performance test

2024-10-16 Thread Mattias Rönnblom
per-lcore data). Signed-off-by: Mattias Rönnblom Acked-by: Chengwen Feng Acked-by: Stephen Hemminger Acked-by: Morten Brørup -- PATCH v8: * Fix spelling. (Morten Brørup) PATCH v6: * Use floating point math when calculating per-update latency. (Morten Brørup) PATCH v5: * Add variant

[PATCH v15 7/7] eal: keep per-lcore power intrinsics state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Keep per-lcore power intrinsics state in a lcore variable to reduce cache working set size and avoid any CPU next-line-prefetching causing false sharing. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger

[PATCH v15 1/7] eal: add static per-lcore memory allocation facility

2024-10-16 Thread Mattias Rönnblom
E_CACHE_GUARDed structs. The benefit of lcore variables over this approach is that data related to the same lcore now is close (spatially, in memory), rather than data used by the same module, which in turn avoid excessive use of padding, polluting caches with unused data. Signed-off-by: Mattias Rön

Re: [PATCH 2/2] devtools: forbid the use of ffs compiler builtins

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 17:04, Stephen Hemminger wrote: On Wed, 16 Oct 2024 15:54:11 +0200 Mattias Rönnblom wrote: Extend checkpatches.sh to detect the use of __builtin_(ffs|ffsll). These intrinsics are not available in MSVC, and there are perfectly serviceable alternatives in . Signed-off-by

Re: [PATCH v14 0/7] Lcore variables

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 16:58, Stephen Hemminger wrote: On Wed, 16 Oct 2024 15:19:09 +0200 Mattias Rönnblom wrote: This patch set introduces a new API for static per-lcore id data allocation. Please refer to the API documentation for both a rationale for this new API, and a comparison to the

Re: [PATCH v14 1/7] eal: add static per-lcore memory allocation facility

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 16:53, Stephen Hemminger wrote: On Wed, 16 Oct 2024 15:19:10 +0200 Mattias Rönnblom wrote: + +/** + * Allocate space in the per-lcore id buffers for an lcore variable. + * + * The pointer returned is only an opaque identifier of the variable. To + * get an actual pointer to a

Re: [PATCH v2 2/4] bitset: fix build for GCC without experimental API

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 17:42, Morten Brørup wrote: From: David Marchand [mailto:david.march...@redhat.com] Sent: Wednesday, 16 October 2024 17.37 On Wed, Oct 16, 2024 at 4:14 PM Mattias Rönnblom wrote: On 2024-10-16 13:38, David Marchand wrote: For a reason similar to the change on bitops header

Re: [PATCH v2 2/4] bitset: fix build for GCC without experimental API

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 17:36, David Marchand wrote: On Wed, Oct 16, 2024 at 4:14 PM Mattias Rönnblom wrote: On 2024-10-16 13:38, David Marchand wrote: For a reason similar to the change on bitops header, hide bitset implementation relying on experimental API. Fixes: 99a1197647d8 ("eal: add b

Re: [PATCH v2 2/4] bitset: fix build for GCC without experimental API

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 13:38, David Marchand wrote: For a reason similar to the change on bitops header, hide bitset implementation relying on experimental API. Fixes: 99a1197647d8 ("eal: add bitset type") Signed-off-by: David Marchand Acked-by: Morten Brørup --- lib/eal/include/rte_bitset.h | 123 +

[PATCH 2/2] devtools: forbid the use of ffs compiler builtins

2024-10-16 Thread Mattias Rönnblom
Extend checkpatches.sh to detect the use of __builtin_(ffs|ffsll). These intrinsics are not available in MSVC, and there are perfectly serviceable alternatives in . Signed-off-by: Mattias Rönnblom Suggested-by: David Marchand --- devtools/checkpatches.sh | 2 +- 1 file changed, 1 insertion

[PATCH 1/2] bitset: discontinue the use of GCC builtin

2024-10-16 Thread Mattias Rönnblom
Replace the use of __builtin_ffsll() with rte_bsf64() to be MSVC compatible. Signed-off-by: Mattias Rönnblom Suggested-by: David Marchand --- lib/eal/include/rte_bitset.h | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/eal/include/rte_bitset.h b/lib/eal/include

Re: [PATCH v2 1/4] eal: add bitset type

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 13:30, David Marchand wrote: On Thu, Oct 10, 2024 at 10:30 AM David Marchand wrote: diff --git a/lib/eal/include/rte_bitset.h b/lib/eal/include/rte_bitset.h new file mode 100644 index 00..b2d71aa7c6 --- /dev/null +++ b/lib/eal/include/rte_bitset.h [snip] +__rte_experim

[PATCH v14 3/7] eal: add lcore variable performance test

2024-10-16 Thread Mattias Rönnblom
per-lcore data). Signed-off-by: Mattias Rönnblom Acked-by: Chengwen Feng Acked-by: Stephen Hemminger Acked-by: Morten Brørup -- PATCH v8: * Fix spelling. (Morten Brørup) PATCH v6: * Use floating point math when calculating per-update latency. (Morten Brørup) PATCH v5: * Add variant

[PATCH v14 4/7] random: keep PRNG state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Replace keeping PRNG state in a RTE_MAX_LCORE-sized static array of cache-aligned and RTE_CACHE_GUARDed struct instances with keeping the same state in a more cache-friendly lcore variable. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen

[PATCH v14 2/7] eal: add lcore variable functional tests

2024-10-16 Thread Mattias Rönnblom
Add functional test suite to exercise the API. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH invocations to match new API. RFC v5: * Adapt tests to reflect the removal of the GET() and SET

[PATCH v14 7/7] eal: keep per-lcore power intrinsics state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Keep per-lcore power intrinsics state in a lcore variable to reduce cache working set size and avoid any CPU next-line-prefetching causing false sharing. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger

[PATCH v14 6/7] service: keep per-lcore state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v14: * Merge with

[PATCH v14 1/7] eal: add static per-lcore memory allocation facility

2024-10-16 Thread Mattias Rönnblom
E_CACHE_GUARDed structs. The benefit of lcore variables over this approach is that data related to the same lcore now is close (spatially, in memory), rather than data used by the same module, which in turn avoid excessive use of padding, polluting caches with unused data. Signed-off-by: Mattias Rön

[PATCH v14 5/7] power: keep per-lcore state in lcore variable

2024-10-16 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH

[PATCH v14 0/7] Lcore variables

2024-10-16 Thread Mattias Rönnblom
de a reasonably simple and clean and seemingly very much performant solution to a real problem. Mattias Rönnblom (7): eal: add static per-lcore memory allocation facility eal: add lcore variable functional tests eal: add lcore variable performance test random: keep PRNG state in lcore v

Re: [PATCH v13 1/7] eal: add static per-lcore memory allocation facility

2024-10-16 Thread Mattias Rönnblom
On 2024-10-16 10:17, Thomas Monjalon wrote: 16/10/2024 06:13, Mattias Rönnblom: On 2024-10-16 00:33, Stephen Hemminger wrote: On Tue, 15 Oct 2024 11:33:38 +0200 Mattias Rönnblom wrote: + * Lcore variables + * + * This API provides a mechanism to create and access per-lcore id + * variables

Re: [RFC v2 10/10] eventdev: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
On 2024-10-16 06:36, Mattias Rönnblom wrote: On 2024-10-16 00:00, Stephen Hemminger wrote: On Tue, 15 Oct 2024 20:25:35 +0200 Mattias Rönnblom wrote: Remove the single event enqueue and dequeue, since they did not provide any noticable performance benefits. This is a change of the ABI

Re: [RFC v2 10/10] eventdev: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
On 2024-10-16 00:00, Stephen Hemminger wrote: On Tue, 15 Oct 2024 20:25:35 +0200 Mattias Rönnblom wrote: Remove the single event enqueue and dequeue, since they did not provide any noticable performance benefits. This is a change of the ABI, previously announced as a deprecation notice

Re: [PATCH v13 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
On 2024-10-16 00:35, Stephen Hemminger wrote: On Tue, 15 Oct 2024 11:33:38 +0200 Mattias Rönnblom wrote: +/** + * Allocate space in the per-lcore id buffers for an lcore variable. + * + * The pointer returned is only an opaque identifier of the variable. To + * get an actual pointer to a

Re: [PATCH v13 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
On 2024-10-16 00:33, Stephen Hemminger wrote: On Tue, 15 Oct 2024 11:33:38 +0200 Mattias Rönnblom wrote: + * Lcore variables + * + * This API provides a mechanism to create and access per-lcore id + * variables in a space- and cycle-efficient manner. + * + * A per-lcore id variable (or

Re: [PATCH v13 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
On 2024-10-15 12:13, Morten Brørup wrote: +void * +rte_lcore_var_alloc(size_t size, size_t align) +{ + /* Having the per-lcore buffer size aligned on cache lines +* assures as well as having the base pointer aligned on cache +* size assures that aligned offsets also translat

Re: [RFC 00/10] eventdev: remove single-event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
On 2024-10-15 19:07, Stephen Hemminger wrote: On Tue, 15 Oct 2024 10:49:33 +0200 Mattias Rönnblom wrote: Remove the single-event enqueue and dequeue functions from the eventdev "ops" struct, to reduce complexity, leaving performance unaffected. This ABI change has been announced

[RFC v2 03/10] event/cnxk: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/cnxk/cn10k_eventdev.c | 2 -- drivers/event/cnxk/cn10k_worker.c | 49 + drivers/event/cnxk/cn10k_worker.h | 9 -- drivers/event/cnxk/cn9k_eventdev.c | 1 - drivers/event/cnxk/cn9k_worker.c| 26

[RFC v2 09/10] event/skeleton: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom -- RFC v2: * Remove unused functions. --- drivers/event/skeleton/skeleton_eventdev.c | 29 -- 1 file changed, 29 deletions(-) diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index

[RFC v2 05/10] event/sw: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/sw/sw_evdev.c| 2 -- drivers/event/sw/sw_evdev.h| 2 -- drivers/event/sw/sw_evdev_worker.c | 12 3 files changed, 16 deletions(-) diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index

[RFC v2 08/10] event/opdl: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/opdl/opdl_evdev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 25853166bf..ffa65ef930 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl

[RFC v2 01/10] event/dsw: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/dsw/dsw_evdev.c | 2 -- drivers/event/dsw/dsw_evdev.h | 2 -- drivers/event/dsw/dsw_event.c | 12 3 files changed, 16 deletions(-) diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 1df3121b21

[RFC v2 06/10] event/dpaa: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/dpaa/dpaa_eventdev.c | 27 ++- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index 85ccb586ef..853cc1ecf9 100644 --- a/drivers/event

[RFC v2 10/10] eventdev: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
: Mattias Rönnblom --- doc/guides/rel_notes/deprecation.rst | 6 +- lib/eventdev/eventdev_pmd.h | 4 lib/eventdev/eventdev_private.c | 22 -- lib/eventdev/rte_eventdev.h | 21 - lib/eventdev/rte_eventdev_core.h | 4 5

[RFC v2 02/10] event/dlb2: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom -- RFCv2: * Remove unused function. (Stephen Hemminger) --- drivers/event/dlb2/dlb2.c | 40 ++- 1 file changed, 2 insertions(+), 38 deletions(-) diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index

[RFC v2 07/10] event/dpaa2: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom -- RFC v2: * Remove unused functions. --- drivers/event/dpaa2/dpaa2_eventdev.c | 15 --- 1 file changed, 15 deletions(-) diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index f0b2c7de99..6c8ed3ff6b 100644

[RFC v2 00/10] eventdev: remove single-event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Remove the single-event enqueue and dequeue functions from the eventdev "ops" struct, to reduce complexity, leaving performance unaffected. This ABI change has been announced as a DPDK deprication notice, originally scheduled for DPDK 23.11. Mattias Rönnblom (10): event/dsw: rem

[RFC v2 04/10] event/octeontx: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/octeontx/ssovf_evdev.h | 1 - drivers/event/octeontx/ssovf_worker.c | 40 +++ 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h

[PATCH v13 5/7] power: keep per-lcore state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH

[PATCH v13 3/7] eal: add lcore variable performance test

2024-10-15 Thread Mattias Rönnblom
per-lcore data). Signed-off-by: Mattias Rönnblom Acked-by: Chengwen Feng Acked-by: Stephen Hemminger Acked-by: Morten Brørup -- PATCH v8: * Fix spelling. (Morten Brørup) PATCH v6: * Use floating point math when calculating per-update latency. (Morten Brørup) PATCH v5: * Add variant

[PATCH v13 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
E_CACHE_GUARDed structs. The benefit of lcore variables over this approach is that data related to the same lcore now is close (spatially, in memory), rather than data used by the same module, which in turn avoid excessive use of padding, polluting caches with unused data. Signed-off-by: Mattias Rön

[PATCH v13 6/7] service: keep per-lcore state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v7: * Update to

[PATCH v13 2/7] eal: add lcore variable functional tests

2024-10-15 Thread Mattias Rönnblom
Add functional test suite to exercise the API. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH invocations to match new API. RFC v5: * Adapt tests to reflect the removal of the GET() and SET

[PATCH v13 7/7] eal: keep per-lcore power intrinsics state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Keep per-lcore power intrinsics state in a lcore variable to reduce cache working set size and avoid any CPU next-line-prefetching causing false sharing. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger

[PATCH v13 0/7] Lcore variables

2024-10-15 Thread Mattias Rönnblom
de a reasonably simple and clean and seemingly very much performant solution to a real problem. Mattias Rönnblom (7): eal: add static per-lcore memory allocation facility eal: add lcore variable functional tests eal: add lcore variable performance test random: keep PRNG state in lcore v

[PATCH v13 4/7] random: keep PRNG state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Replace keeping PRNG state in a RTE_MAX_LCORE-sized static array of cache-aligned and RTE_CACHE_GUARDed struct instances with keeping the same state in a more cache-friendly lcore variable. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen

Re: [PATCH v11 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
On 2024-10-15 09:39, Morten Brørup wrote: From: Mattias Rönnblom [mailto:hof...@lysator.liu.se] Sent: Tuesday, 15 October 2024 09.11 On 2024-10-15 08:41, Mattias Rönnblom wrote: On 2024-10-14 10:17, Morten Brørup wrote: Please remove the _VALUE suffix. You changed your mind? I'm mi

[RFC 10/10] eventdev: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
: Mattias Rönnblom --- doc/guides/rel_notes/deprecation.rst | 6 +- lib/eventdev/eventdev_pmd.h | 4 lib/eventdev/eventdev_private.c | 22 -- lib/eventdev/rte_eventdev.h | 21 - lib/eventdev/rte_eventdev_core.h | 4 5

[RFC 02/10] event/dlb2: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/dlb2/dlb2.c | 33 ++--- 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index 09e4107824..e4400b1bc2 100644 --- a/drivers/event/dlb2/dlb2.c +++ b

[RFC 03/10] event/cnxk: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/cnxk/cn10k_eventdev.c | 2 -- drivers/event/cnxk/cn10k_worker.c | 49 + drivers/event/cnxk/cn10k_worker.h | 9 -- drivers/event/cnxk/cn9k_eventdev.c | 1 - drivers/event/cnxk/cn9k_worker.c| 26

[RFC 08/10] event/opdl: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/opdl/opdl_evdev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 25853166bf..ffa65ef930 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl

[RFC 04/10] event/octeontx: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/octeontx/ssovf_evdev.h | 1 - drivers/event/octeontx/ssovf_worker.c | 40 +++ 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h

[RFC 09/10] event/skeleton: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/skeleton/skeleton_eventdev.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index 848b3be82c..5da8229871 100644 --- a/drivers/event/skeleton

[RFC 05/10] event/sw: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/sw/sw_evdev.c| 2 -- drivers/event/sw/sw_evdev.h| 2 -- drivers/event/sw/sw_evdev_worker.c | 12 3 files changed, 16 deletions(-) diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index

[RFC 01/10] event/dsw: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/dsw/dsw_evdev.c | 2 -- drivers/event/dsw/dsw_evdev.h | 2 -- drivers/event/dsw/dsw_event.c | 12 3 files changed, 16 deletions(-) diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 1df3121b21

[RFC 06/10] event/dpaa: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/dpaa/dpaa_eventdev.c | 27 ++- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index 85ccb586ef..853cc1ecf9 100644 --- a/drivers/event

[RFC 07/10] event/dpaa2: remove single event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Signed-off-by: Mattias Rönnblom --- drivers/event/dpaa2/dpaa2_eventdev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index f0b2c7de99..5ea179c988 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers

[RFC 00/10] eventdev: remove single-event enqueue and dequeue

2024-10-15 Thread Mattias Rönnblom
Remove the single-event enqueue and dequeue functions from the eventdev "ops" struct, to reduce complexity, leaving performance unaffected. This ABI change has been announced as a DPDK deprication notice, originally scheduled for DPDK 23.11. Mattias Rönnblom (10): event/dsw: rem

Re: [PATCH v11 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
On 2024-10-15 08:41, Mattias Rönnblom wrote: On 2024-10-14 10:17, Morten Brørup wrote: +/** + * Get pointer to lcore variable instance with the specified lcore id. + * + * @param lcore_id + *   The lcore id specifying which of the @c RTE_MAX_LCORE value + *   instances should be accessed

[PATCH v12 3/7] eal: add lcore variable performance test

2024-10-15 Thread Mattias Rönnblom
per-lcore data). Signed-off-by: Mattias Rönnblom Acked-by: Chengwen Feng Acked-by: Stephen Hemminger Acked-by: Morten Brørup -- PATCH v8: * Fix spelling. (Morten Brørup) PATCH v6: * Use floating point math when calculating per-update latency. (Morten Brørup) PATCH v5: * Add variant

[PATCH v12 7/7] eal: keep per-lcore power intrinsics state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Keep per-lcore power intrinsics state in a lcore variable to reduce cache working set size and avoid any CPU next-line-prefetching causing false sharing. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger

[PATCH v12 1/7] eal: add static per-lcore memory allocation facility

2024-10-15 Thread Mattias Rönnblom
E_CACHE_GUARDed structs. The benefit of lcore variables over this approach is that data related to the same lcore now is close (spatially, in memory), rather than data used by the same module, which in turn avoid excessive use of padding, polluting caches with unused data. Signed-off-by: Mattias Rön

[PATCH v12 6/7] service: keep per-lcore state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v7: * Update to

[PATCH v12 4/7] random: keep PRNG state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Replace keeping PRNG state in a RTE_MAX_LCORE-sized static array of cache-aligned and RTE_CACHE_GUARDed struct instances with keeping the same state in a more cache-friendly lcore variable. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen

[PATCH v12 2/7] eal: add lcore variable functional tests

2024-10-15 Thread Mattias Rönnblom
Add functional test suite to exercise the API. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH invocations to match new API. RFC v5: * Adapt tests to reflect the removal of the GET() and SET

[PATCH v12 5/7] power: keep per-lcore state in lcore variable

2024-10-15 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH

[PATCH v12 0/7] Lcore variables

2024-10-15 Thread Mattias Rönnblom
de a reasonably simple and clean and seemingly very much performant solution to a real problem. Mattias Rönnblom (7): eal: add static per-lcore memory allocation facility eal: add lcore variable functional tests eal: add lcore variable performance test random: keep PRNG state in lcore v

Re: [PATCH v11 7/7] eal: keep per-lcore power intrinsics state in lcore variable

2024-10-14 Thread Mattias Rönnblom
On 2024-10-14 18:30, Stephen Hemminger wrote: On Mon, 14 Oct 2024 09:43:48 +0200 Mattias Rönnblom wrote: Keep per-lcore power intrinsics state in a lcore variable to reduce cache working set size and avoid any CPU next-line-prefetching causing false sharing. Signed-off-by: Mattias Rönnblom

Re: [PATCH v11 1/7] eal: add static per-lcore memory allocation facility

2024-10-14 Thread Mattias Rönnblom
On 2024-10-14 10:17, Morten Brørup wrote: From: Mattias Rönnblom [mailto:mattias.ronnb...@ericsson.com] Sent: Monday, 14 October 2024 09.44 +struct lcore_var_buffer { + char data[RTE_MAX_LCORE_VAR * RTE_MAX_LCORE]; + struct lcore_var_buffer *prev; +}; In relation to Jerin&#

Re: [PATCH v2 1/6] eal: add static per-lcore memory allocation facility

2024-10-14 Thread Mattias Rönnblom
lloc routine can check first rte_malloc() is available if not switch over glibc. @Mattias Rönnblom This comment is not addressed in v7. Could you check? Mattias, following up on Jerin's suggestion: When allocating an lcore variable, and the buffer holding lcore variables is out of sp

Re: [PATCH] bitops: fix issue in parallel atomic tests

2024-10-14 Thread Mattias Rönnblom
On 2024-10-14 16:16, David Marchand wrote: On Sun, Oct 13, 2024 at 5:37 PM Morten Brørup wrote: I'm far from sure it's a compiler bug. Just look at the base rate: how often does the code you just wrote fail because of a bug in your code, and how often is the root cause to be found in the compi

[PATCH v11 6/7] service: keep per-lcore state in lcore variable

2024-10-14 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v7: * Update to

[PATCH v11 3/7] eal: add lcore variable performance test

2024-10-14 Thread Mattias Rönnblom
per-lcore data). Signed-off-by: Mattias Rönnblom Acked-by: Chengwen Feng Acked-by: Stephen Hemminger Acked-by: Morten Brørup -- PATCH v8: * Fix spelling. (Morten Brørup) PATCH v6: * Use floating point math when calculating per-update latency. (Morten Brørup) PATCH v5: * Add variant

[PATCH v11 7/7] eal: keep per-lcore power intrinsics state in lcore variable

2024-10-14 Thread Mattias Rönnblom
Keep per-lcore power intrinsics state in a lcore variable to reduce cache working set size and avoid any CPU next-line-prefetching causing false sharing. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger

[PATCH v11 2/7] eal: add lcore variable functional tests

2024-10-14 Thread Mattias Rönnblom
Add functional test suite to exercise the API. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH invocations to match new API. RFC v5: * Adapt tests to reflect the removal of the GET() and SET

[PATCH v11 1/7] eal: add static per-lcore memory allocation facility

2024-10-14 Thread Mattias Rönnblom
E_CACHE_GUARDed structs. The benefit of lcore variables over this approach is that data related to the same lcore now is close (spatially, in memory), rather than data used by the same module, which in turn avoid excessive use of padding, polluting caches with unused data. Signed-off-by: Mattias Rön

[PATCH v11 4/7] random: keep PRNG state in lcore variable

2024-10-14 Thread Mattias Rönnblom
Replace keeping PRNG state in a RTE_MAX_LCORE-sized static array of cache-aligned and RTE_CACHE_GUARDed struct instances with keeping the same state in a more cache-friendly lcore variable. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen

[PATCH v11 0/7] Lcore variables

2024-10-14 Thread Mattias Rönnblom
by Stephen Hemminger. Lcore variables are surely not the answer to all your per-lcore-data needs, since it only allows for more-or-less static allocation. In the author's opinion, it does however provide a reasonably simple and clean and seemingly very much performant solution to a real pr

[PATCH v11 5/7] power: keep per-lcore state in lcore variable

2024-10-14 Thread Mattias Rönnblom
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance. Signed-off-by: Mattias Rönnblom Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Acked-by: Chengwen Feng Acked-by: Stephen Hemminger -- PATCH v6: * Update FOREACH

Re: [PATCH v9 1/7] eal: add static per-lcore memory allocation facility

2024-10-13 Thread Mattias Rönnblom
On 2024-10-11 10:04, Mattias Rönnblom wrote: On 2024-10-10 23:24, Thomas Monjalon wrote: + * + * An lcore variable is not tied to the owning thread's lifetime. It's + * available for use by any thread immediately after having been + * allocated, and continues to be available thro

Re: [PATCH] bitops: fix issue in parallel atomic tests

2024-10-13 Thread Mattias Rönnblom
On 2024-10-13 15:37, Morten Brørup wrote: From: Mattias Rönnblom [mailto:mattias.ronnb...@ericsson.com] Sent: Sunday, 13 October 2024 13.57 The macros generating the parallel test for atomic test-and- [set|clear|flip] functions used a 64-bit reference word when assuring no neighbouring bits

  1   2   3   4   5   6   7   8   9   10   >