Control: tags -1 + patch
Possible fix: https://github.com/frankheckenbach/ftgl/pull/20
signature.asc
Description: This is a digitally signed message part
Control: tags -1 + patch
Possible fix: https://github.com/frankheckenbach/ftgl/pull/20
signature.asc
Description: This is a digitally signed message part
Control: tags -1 + patch
Possible fix: https://github.com/frankheckenbach/ftgl/pull/20
signature.asc
Description: This is a digitally signed message part
: 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 +
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
: 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
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
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
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
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
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
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
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
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
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
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
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
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
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
: 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 - 100 of 1683 matches
Mail list logo