].tail
cons.head depends on stage[N-1].tail
> If they are
> not, then you will run into the issue you have seen (a.k.a "Other-multi-copy
> atomic" which is legit in Arm v8 and above).
Can you probably elaborate a bit more for me here?
Thanks
Konstantin
> Thanks.
>
> -
>
> > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> > Sent: Wednesday, 28 May 2025 10.24
> >
> > > >
> > > > > From: Stephen Hemminger [mailto:step...@networkplumber.org]
> > > > > Sent: Tuesday, 27 May 20
>
> > From: Stephen Hemminger [mailto:step...@networkplumber.org]
> > Sent: Tuesday, 27 May 2025 17.07
> >
> > On Mon, 12 May 2025 20:37:19 +0530
> > wrote:
> >
> > > /**@{@name Rx hardware descriptor states
> > > diff --git a/lib/ethdev/rte_ethdev_core.h
> > b/lib/ethdev/rte_ethdev_core.h
>
> >
> > > From: Stephen Hemminger [mailto:step...@networkplumber.org]
> > > Sent: Tuesday, 27 May 2025 17.07
> > >
> > > On Mon, 12 May 2025 20:37:19 +0530
> > > wrote:
> > >
> > > > /**@{@name Rx hardware descriptor states
> > > > diff --git a/lib/ethdev/rte_ethdev_core.h
> > > b/lib/ethdev/r
ndle in interrupt thread */
> + int ret = rte_intr_callback_unregister_sync(intr_handle,
> + eal_alarm_callback, (void *)-1);
> + if (ret >= 0) {
> + rte_intr_instance_free(intr_handle);
> + intr_handle = NULL;
> + handler_registered = 0;
> + }
> }
>
> int
> --
Acked-by: Konstantin Ananyev
> 2.35.3
> > > > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> > > > Sent: Wednesday, 21 May 2025 14.35
> > > >
> > > > > > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> > > > > > Sent: Wednes
_stress_autotest – show a mixed set of results: some of them become few
> > cycles faster, another few cycles slower.
> > But so far, I didn’t notice any real degradations with that patch.
> >
> > Fixes: b5458e2cc483 ("ring: introduce staged ordered ring")
> &
> > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> > Sent: Wednesday, 21 May 2025 14.35
> >
> > > > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> > > > Sent: Wednesday, 21 May 2025 13.14
> > > >
>
> > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> > Sent: Wednesday, 21 May 2025 13.14
> >
> > Add RTE_ASSERT() to check that different move_tail() flavors
> > return meaningful *entries value.
> > It also helps to ensure that inside m
(ret >= 0) {
> + rte_intr_instance_free(intr_handle);
> + intr_handle = NULL;
> + handler_registered = 0;
> + }
> }
>
> int
> --
Acked-by: Konstantin Ananyev
As a nit: as it is a bug-fix, probably start with 'fix ..' in the subject.
Also "Fixes:" and probably " Cc: sta...@dpdk.org" needs to be added.
> 2.35.3
e_config *cfg = rte_eal_get_configuration();
>
> if (lcore_id >= RTE_MAX_LCORE)
> - return -EINVAL;
> + return 0;
>
> return cfg->lcore_role[lcore_id] == role;
> }
> --
Acked-by: Konstantin Ananyev
> 2.43.0
"ring: introduce RTS ring mode")
Fixes: 49594a63147a ("ring/c11: relax ordering for load and store of the head")
Signed-off-by: Konstantin Ananyev
---
lib/ring/rte_ring_c11_pvt.h | 27 +--
lib/ring/rte_ring_hts_elem_pvt.h | 6 --
lib/ring/rte_
ll also become visible.
Again, in that case conventional rte_ring will also be covered.
Fixes: b5458e2cc483 ("ring: introduce staged ordered ring")
Signed-off-by: Konstantin Ananyev
---
lib/ring/soring.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/lib/ring/soring.c b/
As an attempt to reduce legacy code usage within rte_ring -
enable RTE_USE_C11_MEM_MODEL by default on all x86 platforms.
Signed-off-by: Konstantin Ananyev
---
config/x86/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/config/x86/meson.build b/config/x86/meson.build
index
use C11
based code and get rid of legacy code in rte_ring_generic_pvt.h.
If there would be some issues with latest two patches – we can limit
ourselves with just first two to apply.
Konstantin Ananyev (4):
ring: introduce extra run-time checks
ring/soring: fix head-tail synchronization issue
Add RTE_ASSERT() to check that different move_tail() flavors
return meaningful *entries value.
It also helps to ensure that inside move_tail(), it uses correct
head/tail values.
Signed-off-by: Konstantin Ananyev
---
lib/ring/rte_ring_c11_pvt.h | 2 +-
lib/ring/rte_ring_elem_pvt.h | 8
> -Original Message-
> From: Burakov, Anatoly
> Sent: Wednesday, May 7, 2025 12:07 PM
> To: Konstantin Ananyev ; dev@dpdk.org
> Subject: Re: [PATCH v4 1/2] cmdline: add floating point support
>
> On 5/7/2025 12:35 PM, Konstantin Ananyev wrote:
> >
>
> Add support for parsing floating point numbers in cmdline library, as well
> as unit tests for the new functionality. The parser supports single and
> double precision floats, and will understand decimal fractions as well as
> scientific notation.
There are standard functions for that: strtod
> On Thu, Mar 27, 2025 at 12:10:12PM +0000, Konstantin Ananyev wrote:
> >
> >
> > > > >
> > > > > > -Original Message-
> > > > > > From: David Marchand
> > > > > > Sent: Thursday, March 27, 2025 10:37
> > >
> > > > -Original Message-
> > > > From: David Marchand
> > > > Sent: Thursday, March 27, 2025 10:37 AM
> > > > To: Bruce Richardson
> > > > Cc: dev@dpdk.org; bl...@debian.org; sta...@dpdk.org; Ko
> -Original Message-
> From: David Marchand
> Sent: Thursday, March 27, 2025 10:37 AM
> To: Bruce Richardson
> Cc: dev@dpdk.org; bl...@debian.org; sta...@dpdk.org; Konstantin Ananyev
> ; David Christensen
> ; Wathsala Vithanage
> Subject: Re: [PATCH] acl:
> - cmplt[n].count = 0;
> + for (n = 0; n < MAX_SEARCHES_SSE8; n++)
> index_array[n] = acl_start_next_trie(&flows, parms, n, ctx);
> - }
>
> /*
>* indices1 contains index_array[0,1]
> @@ -293,10 +291,8 @@ search_sse_4(const struct rte_acl_ctx *ctx, const
> uint8_t **data,
> acl_set_flow(&flows, cmplt, RTE_DIM(cmplt), data, results,
> total_packets, categories, ctx->trans_table);
>
> - for (n = 0; n < MAX_SEARCHES_SSE4; n++) {
> - cmplt[n].count = 0;
> + for (n = 0; n < MAX_SEARCHES_SSE4; n++)
> index_array[n] = acl_start_next_trie(&flows, parms, n, ctx);
> - }
>
> indices1 = _mm_loadu_si128((xmm_t *) &index_array[0]);
> indices2 = _mm_loadu_si128((xmm_t *) &index_array[2]);
> --
LGTM. Also run a quick test on my box - all seems ok.
Acked-by: Konstantin Ananyev
Tested-by: Konstantin Ananyev
> 2.48.1
gt; lib/meson.build | 34 +++-
> lib/net/meson.build | 58 +++--------
> lib/net/rte_net_crc.c | 16
> 22 files changed, 114 insertions(+), 333 deletions(-)
>
> --
Series-Acked-by: Konstantin Ananyev
> 2.45.2
e static assert below ensures that the hardcoded value defined as
> + * RTE_X86_ZMM_SIZE is equal to sizeof(__m512i).
> + */
> +static_assert(RTE_X86_ZMM_SIZE == (sizeof(__m512i)), "Unexpected size of
> __m512i");
> typedef union __rte_aligned(RTE_X86_ZMM_SIZE) __rte_x86_zmm {
> __m512i z;
> ymm_ty[RTE_X86_ZMM_SIZE / sizeof(ymm_t)];
> --
Acked-by: Konstantin Ananyev
> 2.48.1.vfs.0.0
> -Original Message-
> From: Andre Muezerie
> Sent: Wednesday, February 26, 2025 1:07 AM
> To: andre...@linux.microsoft.com
> Cc: dev@dpdk.org
> Subject: [PATCH v2 2/5] eal: only use numbers as align parameters for MSVC
>
> After the instruction set updates for MSVC the error below pop
>
> 在 2025/2/20 17:41, Konstantin Ananyev 写道:
> > Hi
> >
> >> Hi all,
> >>
> >> Kindly ping for review.
> >>
> >>
> >> 在 2024/12/19 15:53, Huisong Li 写道:
> >>> The queue_list_entry structure data is used in
> Subject: [PATCH v5 08/10] test-pmd: declare lcore_count atomic
As a nit, the changes are not in testpmd, bit in the UT.
Acked-by: Konstantin Ananyev
> Compiling with MSVC results in the error below:
>
> app/test/test_ring_perf.c(197): error C7712: address argume
> >> On 2024/12/4 10:06, Jie Hai wrote:
> >>> The application send packets only when the buffer is full, or the
> >>> buffer is empty and the packets to be sent extends TX_PKT_BURST.
> >>> The change of MAX_PKT_BURST make TX buffer size and TX_PKT_BURST
> >>> increase, while the default cache siz
> Compiling with MSVC results in the error below:
>
> app/test/test_ring_perf.c(197): error C7712: address argument to atomic
> operation must be a pointer to an atomic integer,
> 'volatile unsigned int *' is not valid
>
> The fix is to mark lcore_count as atomic.
>
> Signed-off-by: A
> > > -Original Message-
> > > From: Stephen Hemminger
> > > Sent: Thursday, February 20, 2025 4:12 PM
> > > To: lihuisong (C)
> > > Cc: dev@dpdk.org; tho...@monjalon.net; david.h...@intel.com;
> > > anatoly.bura...@intel.com; sivaprasad.tumm...@amd.com;
> > > liuyonglong
> > > Subje
> -Original Message-
> From: Stephen Hemminger
> Sent: Thursday, February 20, 2025 4:12 PM
> To: lihuisong (C)
> Cc: dev@dpdk.org; tho...@monjalon.net; david.h...@intel.com;
> anatoly.bura...@intel.com; sivaprasad.tumm...@amd.com;
> liuyonglong
> Subject: Re: [PATCH] power: use hugep
eap memory. For better performance, use hugepage memory to
> > replace it.
Make sense to me.
Acked-by: Konstantin Ananyev
I suppose it would also help if you can provide some numbers:
i.e.: how much exactly it is 'better'?
Did you see any changes in throughput/latency numbers, etc.
> Subject: [PATCH] examples/l3fwd: add option to set refetch offset
I suppose it should be 'prefetch'.
> The prefetch window depending on the HW platform. It is difficult to
> measure the prefetch window of a HW platform. Therefore, the prefetch
> offset option is added to change the prefetch
> On 2024/12/4 10:06, Jie Hai wrote:
> > The application send packets only when the buffer is full, or the
> > buffer is empty and the packets to be sent extends TX_PKT_BURST.
> > The change of MAX_PKT_BURST make TX buffer size and TX_PKT_BURST
> > increase, while the default cache size is 256.
> Previously, the TX burst size was fixed at 256, leading to performance
> degradation in certain scenarios.
>
> This patch introduces logic to set the TX burst size to match the
> configured RX burst size (--burst option, default 32, max 512)
> for better efficiency.
>
> Fixes: d5c4897ecfb2 (
> > > > As per guidance technical board meeting 2024/04/17. This series
> > > > removes the use of VLAs from code built for Windows for all 3
> > > > toolchains. If there are additional opportunities to convert VLAs
> > > > to regular C arrays please provide the details for incorporation
> > > > i
("test/ring: add unit tests for soring API")
Signed-off-by: Konstantin Ananyev
---
app/test/test_soring_stress_impl.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/test/test_soring_stress_impl.h
b/app/test/test_soring_stress_impl.h
index 9e22de98d2..015825223d 100644
---
+++
> 1 file changed, 73 insertions(+), 55 deletions(-)
>
Acked-by: Konstantin Ananyev
> 2.47.2
(sizeof(long))
> +#define __SIZEOF_LONG_LONG__ (sizeof(long long))
> +#endif
> +
> #endif /* _RTE_OS_H_ */
> --
Acked-by: Konstantin Ananyev
> 2.47.2.vfs.0.1
> For properly setting rte_errno, and exiting rte_mempool_create_empty()
> from a single place.
>
> Bugzilla ID: 1559
> Signed-off-by: Ariel Otilibili
> ---
> lib/mempool/rte_mempool.c | 27 +++
> 1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/lib/m
ool_set_ops_byname(mp, "ring_mp_mc", NULL);
>
> - if (ret)
> + if (ret) {
> + rte_errno = -ret;
> goto exit_unlock;
> + }
>
> /*
>* local_cache pointer is set even if cache_size is zero.
> --
Acked-by: Konstantin Ananyev
> 2.30.2
Hi David,
> > As per guidance technical board meeting 2024/04/17. This series
> > removes the use of VLAs from code built for Windows for all 3
> > toolchains. If there are additional opportunities to convert VLAs
> > to regular C arrays please provide the details for incorporation
> > into the se
> On Wed, Feb 05, 2025 at 07:37:21AM -0800, Andre Muezerie wrote:
> > On Wed, Feb 05, 2025 at 09:15:43AM +, Bruce Richardson wrote:
> > > On Tue, Feb 04, 2025 at 10:54:24AM -0800, Andre Muezerie wrote:
> > > > Macro __SIZEOF_LONG__ is not standardized and MSVC does not define it.
> > > > Ther
.
> + * @param mbufs
> + * Array of pointers to packet mbufs.
> + * The array must not contain NULL pointers.
> + * @param count
> + * Array size.
> + */
> +__rte_experimental
> +static __rte_always_inline void
> +rte_mbuf_fast_free_bulk(struct rte_mempool *mp, struct rte_mbuf **mbufs,
> unsigned int count)
> +{
> + for (unsigned int idx = 0; idx < count; idx++) {
> + const struct rte_mbuf *m = mbufs[idx];
> + RTE_ASSERT(m != NULL);
> + RTE_ASSERT(m->pool == mp);
> + __rte_mbuf_raw_sanity_check(m);
> + }
> +
> + rte_mempool_put_bulk(mp, (void **)mbufs, count);
> +}
> +
> /**
> * The packet mbuf constructor.
> *
> --
Acked-by: Konstantin Ananyev
> 2.43.0
func);
> struct rte_hash *
> rte_hash_find_existing(const char *name);
>
> -/**
> - * De-allocate all memory used by hash table.
> - *
> - * @param h
> - * Hash table to free, if NULL, the function does nothing.
> - */
> -void
> -rte_hash_free(struct rte_hash *h);
> -
> /**
> * Reset all hash structure, by zeroing all entries.
> * When RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY_LF is enabled,
> --
Acked-by: Konstantin Ananyev
> 2.45.2
ext.
> - *
> - * @param ctx
> - * ACL context to free
> - * If ctx is NULL, no operation is performed.
> - */
> -void
> -rte_acl_free(struct rte_acl_ctx *ctx);
> -
> /**
> * Add rules to an existing ACL context.
> * This function is not multi-thread safe.
> --
Acked-by: Konstantin Ananyev
> 2.45.2
> + unsigned int cache_size, unsigned int
> private_data_size,
> + int socket_id, unsigned int flags)
> + __rte_malloc __rte_dealloc(rte_mempool_free, 1);
>
> /**
> * Add physically contiguous memory for objects in the pool at init
> --
Acked-by: Konstantin Ananyev
> 2.45.2
ruct rte_ring *r);
> + int socket_id, unsigned int flags)
> + __rte_malloc __rte_dealloc(rte_ring_free, 1);
>
> /**
> * Dump the status of the ring to a file.
> --
Acked-by: Konstantin Ananyev
> 2.45.2
> Some functions did not set rte_errno; for avoiding that, they are turned
> into single-exit ones.
>
> Bugzilla ID: 1559
> Signed-off-by: Ariel Otilibili
But reading through public API comments none of these functions are
expected to set rte_errno value.
If rte_mempool_create_empty() forgets
> 06/12/2024 19:35, Konstantin Ananyev:
> > Testing coverage (passed):
> > x86_64, i686, PPC, ARM
> >
> > Would like to express my gratitude to all community members who helped
> > with testing it on different platforms, in particular:
> > David Christ
Members Attending
-
Aaron Conole
Bruce Richardson
Hemant Agrawal
Kevin Traynor
Konstantin Ananyev (chair)
Maxime Coquelin
Morten Brørup
Stephen Hemminger
Thomas Monjalon
NOTE: The technical board meetings are on every second Wednesday at 3pm
UTC. Meetings are public, and
only
>the place that needs it
> * remove parentesis around numbers from defines in test_bitset.c
>
> v7:
> * remove use of VLA from new file which sneaked in during review
>
> v6:
> * remove use of VLA from new test code added recently
> * fix title for patch 08/20
&
> On Wed, Jan 08, 2025 at 01:30:13PM +0000, Konstantin Ananyev wrote:
> >
> >
> > > As per guidance technical board meeting 2024/04/17. This series
> > > removes the use of VLAs from code built for Windows for all 3
> > > toolchains. If there ar
> Removed VLA for compatibility with MSVC (which does not support VLAs).
> Used alloca when a constant fixed length that can be used instead is
> not known.
>
...
> Signed-off-by: Andre Muezerie
> ---
...
> diff --git a/lib/ipsec/esp_inb.c b/lib/ipsec/esp_inb.c
> index f159bf7460..305ac48d
> Removed VLA for compatibility with MSVC (which does not support VLAs).
> Used alloca when a constant fixed length that can be used instead is
> not known.
>
> Implementation for rte_ipsec_pkt_crypto_group and
> rte_ipsec_ses_from_crypto was moved to new file
> lib\ipsec\ipsec_group.c because
Hi,
> The timing of the update of the RTS enqueues/dequeues tail is
> limited to the last enqueues/dequeues, which reduces concurrency,
> so the RTS interface of the V2 version is added, which makes the tail
> of the enqueues/dequeues not limited to the last enqueues/dequeues
> and thus enables
>
> The prefetch window depending on the hardware platform. The current prefetch
> policy may not be applicable to all platforms. In most cases, the number of
> packets received by Rx burst is small (64 is used in most performance
> reports).
> In L3fwd, the maximum value cannot exceed 512. Th
v6:
> * remove use of VLA from new test code added recently
> * fix title for patch 08/20
>
> v5:
> * add patches for net/ice, net/ixgbe and gro
>from Konstantin Ananyev from
> https://patchwork.dpdk.org/project/dpdk/list/?series=31972&archive=both&state=*
> *
> > From: Konstantin Ananyev [mailto:konstantin.anan...@huawei.com]
> >
> > > > > This is first draft of new simplified TAP device that uses
> > > > > the Linux kernel ioring API to provide a read/write ring
> > > > > with kernel.
> &
> > > This is first draft of new simplified TAP device that uses
> > > the Linux kernel ioring API to provide a read/write ring
> > > with kernel.
> > >
> > > This is split from tap device because there are so many
> > > unnecessary things in existing tap, and supporting ioring is
> > > better wi
> This is first draft of new simplified TAP device that uses
> the Linux kernel ioring API to provide a read/write ring
> with kernel.
>
> This is split from tap device because there are so many
> unnecessary things in existing tap, and supporting ioring is
> better without ifdefs etc. The defa
crificing latency and performance.
>
> Signed-off-by: Tomasz Duszynski
> ---
Acked-by: Konstantin Ananyev
As future possible enhancements - I think it would be useful to
make control-path API MT safe, plus probably try to hide some of
the exposed internal structures (rte_pmu_event_group
PDK:stress-tests / soring_stress_autotest
These tests are quite time consuming (~15 mins each),
that's another reason to put them into a separate test-suite.
Signed-off-by: Konstantin Ananyev
Acked-by: Stephen Hemminger
---
app/test/suites/meson.build | 10 ++
app/test/test.h
: Konstantin Ananyev
Acked-by: Stephen Hemminger
---
app/test/meson.build | 3 +
app/test/test_soring.c | 442 +++
app/test/test_soring_mt_stress.c | 40 ++
app/test/test_soring_stress.c | 48 ++
app/test/test_soring_stress.h | 35 ++
app
xpected use-case: applications that uses pipeline model
(probably with multiple stages) for packet processing, when preserving
incoming packet order is important. I.E.: IPsec processing, etc.
Signed-off-by: Eimear Morrissey
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: S
allows
to dump correct head/tail values and extra metadata.
Signed-off-by: Eimear Morrissey
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
Signed-off-by: Konstantin Ananyev
---
.mailmap | 1 +
app/test/test_ring_stress_impl.h | 1 +
lib/ring/rte_ring.c
()
to get pointer to actual rte_ring structure, instead it is enough to pass
a pointer to actual elements buffer inside the ring.
In return, we'll get a copying functions that could be used for other
queueing abstractions that do have circular ring buffer inside.
Signed-off-by: Konstantin Anan
that could be used by both functions:
move_prod_head() and move_cons_head().
As another positive thing - we can get rid of referencing whole rte_ring
structure in that new common sub-function.
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
---
lib
;)
Cc: sta...@dpdk.org
Reported-by: Phanendra Vukkisala
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
---
app/test/test_ring_stress_impl.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test/test_ring_stress_impl.h
xample, on our SUT: Intel ICX CPU @ 2.00GHz,
l3fwd (--lookup=acl) in pipeline mode [2] both
rte_ring and rte_soring reach ~20Mpps for single I/O lcore and same
number of worker lcores.
[1]
https://www.dpdk.org/wp-content/uploads/sites/35/2018/06/DPDK-China2017-Ma-OPDL.pdf
[2]
https://patchwork.d
> -Original Message-
> From: Konstantin Ananyev
> Sent: Friday, December 6, 2024 4:41 PM
> To: Andre Muezerie
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 2/7] drivers/bus: eliminate dependency on non-portable
> __SIZEOF_LONG__
>
>
> > > > Ma
> > > Macro __SIZEOF_LONG__ is not standardized and MSVC does not define it.
> > > Therefore the errors below are seen with MSVC:
> > >
> > > ../lib/mldev/mldev_utils_scalar.c(465): error C2065:
> > > '__SIZEOF_LONG__': undeclared identifier
> > > ../lib/mldev/mldev_utils_scalar.c(478): error
>
> Macro __SIZEOF_LONG__ is not standardized and MSVC does not define it.
> Therefore the errors below are seen with MSVC:
>
> ../lib/mldev/mldev_utils_scalar.c(465): error C2065:
> '__SIZEOF_LONG__': undeclared identifier
> ../lib/mldev/mldev_utils_scalar.c(478): error C2051:
> case
> The application send packets only when the buffer is full, or the
> buffer is empty and the number of packets to be sent extends half
> of the buffer.
>
> The change of MAX_PKT_BURST increases TX buffer size, while the
> default size of local cache on each lcore is 256, which not greater
> th
> -Original Message-
> From: Fengchengwen
> Sent: Friday, November 22, 2024 1:33 AM
> To: Andre Muezerie ; dev@dpdk.org
> Cc: Konstantin Ananyev
> Subject: Re: [PATCH v12 04/21] ethdev: remove use of VLAs for Windows built
> code
>
> On 2024/11/22 5:41, And
> The current port ID validation logic in the routes add code has
> two issues:
>
> - It can pass if port ID in route is 31+.
> - It silently skips rules with disabled or invalid
>port IDs
>
> This patch is:
> - Improving the enabled port IDs check logic.
> - Introducing a user option,
> -Original Message-
> From: Morten Brørup
> Sent: Tuesday, November 19, 2024 8:32 AM
> To: Andre Muezerie ;
> roret...@linux.microsoft.com; techbo...@dpdk.org
> Cc: yuying.zh...@intel.com; aman.deep.si...@intel.com;
> anatoly.bura...@intel.com; bruce.richard...@intel.com;
> byron.mar
> > On Nov 14, 2024, at 8:41 AM, Konstantin Ananyev
> > wrote:
> >
> > Hi everyone,
> >
> > Looking at implementation of cryptodev callbacks
> > (it uses DPDK RCU), it seems like there is a bug here:
> >
> > at init time we don'
Hi everyone,
Looking at implementation of cryptodev callbacks
(it uses DPDK RCU), it seems like there is a bug here:
at init time we don't call rte_rcu_qsbr_thread_register().
As I understand without it rte_rcu_qsbr_check() wouldn't
work properly for that thread.
Probably need to add:
static int
xpected use-case: applications that uses pipeline model
(probably with multiple stages) for packet processing, when preserving
incoming packet order is important. I.E.: IPsec processing, etc.
Signed-off-by: Eimear Morrissey
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: S
: Konstantin Ananyev
Acked-by: Stephen Hemminger
---
app/test/meson.build | 3 +
app/test/test_soring.c | 442 +++
app/test/test_soring_mt_stress.c | 40 ++
app/test/test_soring_stress.c | 48 ++
app/test/test_soring_stress.h | 35 ++
app
PDK:stress-tests / soring_stress_autotest
These tests are quite time consuming (~15 mins each),
that's another reason to put them into a separate test-suite.
Signed-off-by: Konstantin Ananyev
Acked-by: Stephen Hemminger
---
app/test/suites/meson.build | 10 ++
app/test/test.h
From: Eimear Morrissey
The current rte_ring_dump function uses the generic rte_ring_headtail
structure to access head/tail positions. This is incorrect for the RTS
case where the head is stored in a different offset in the union of
structs. Switching to a separate function for each sync type allo
()
to get pointer to actual rte_ring structure, instead it is enough to pass
a pointer to actual elements buffer inside the ring.
In return, we'll get a copying functions that could be used for other
queueing abstractions that do have circular ring buffer inside.
Signed-off-by: Konstantin Anan
that could be used by both functions:
move_prod_head() and move_cons_head().
As another positive thing - we can get rid of referencing whole rte_ring
structure in that new common sub-function.
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
---
lib
;)
Cc: sta...@dpdk.org
Reported-by: Phanendra Vukkisala
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
---
app/test/test_ring_stress_impl.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test/test_ring_stress_impl.h
z,
l3fwd (--lookup=acl) in pipeline mode [2] both
rte_ring and rte_soring reach ~20Mpps for single I/O lcore and same
number of worker lcores.
[1]
https://www.dpdk.org/wp-content/uploads/sites/35/2018/06/DPDK-China2017-Ma-OPDL.pdf
[2]
https://patchwork.dpdk.org/project/dpdk/patch/20240906131348.8
> 14/02/2024 04:51, Stephen Hemminger:
> > On Tue, 13 Feb 2024 12:47:27 +0100
> > wrote:
> >
> > > +/*
> > > + * Function to crawl through the extension header stack.
> > > + * This function breaks as soon a the fragment header is
> > > + * found and returns the total length the traversed exts
>
: Konstantin Ananyev
Acked-by: Stephen Hemminger
---
app/test/meson.build | 3 +
app/test/test_soring.c | 442 +++
app/test/test_soring_mt_stress.c | 40 ++
app/test/test_soring_stress.c | 48 ++
app/test/test_soring_stress.h | 35 ++
app
()
to get pointer to actual rte_ring structure, instead it is enough to pass
a pointer to actual elements buffer inside the ring.
In return, we'll get a copying functions that could be used for other
queueing abstractions that do have circular ring buffer inside.
Signed-off-by: Konstantin Anan
PDK:stress-tests / soring_stress_autotest
These tests are quite time consuming (~15 mins each),
that's another reason to put them into a separate test-suite.
Signed-off-by: Konstantin Ananyev
Acked-by: Stephen Hemminger
---
app/test/suites/meson.build | 10 ++
app/test/test.h
xpected use-case: applications that uses pipeline model
(probably with multiple stages) for packet processing, when preserving
incoming packet order is important. I.E.: IPsec processing, etc.
Signed-off-by: Eimear Morrissey
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: S
From: Eimear Morrissey
The current rte_ring_dump function uses the generic rte_ring_headtail
structure to access head/tail positions. This is incorrect for the RTS
case where the head is stored in a different offset in the union of
structs. Switching to a separate function for each sync type allo
that could be used by both functions:
move_prod_head() and move_cons_head().
As another positive thing - we can get rid of referencing whole rte_ring
structure in that new common sub-function.
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
---
lib
;)
Cc: sta...@dpdk.org
Reported-by: Phanendra Vukkisala
Signed-off-by: Konstantin Ananyev
Acked-by: Morten Brørup
Acked-by: Stephen Hemminger
---
app/test/test_ring_stress_impl.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test/test_ring_stress_impl.h
_soring reach ~20Mpps for single I/O lcore and same
number of worker lcores.
[1]
https://www.dpdk.org/wp-content/uploads/sites/35/2018/06/DPDK-China2017-Ma-OPDL.pdf
[2]
https://patchwork.dpdk.org/project/dpdk/patch/20240906131348.804-7-konstantin.v.anan...@yandex.ru/
Eimear Morrissey (1):
ri
> On Tue, Nov 05, 2024 at 09:19:25AM +0100, David Marchand wrote:
> > Hello Andre,
> >
> > Thanks for taking over this series.
> >
> > On Tue, Nov 5, 2024 at 4:18 AM Andre Muezerie
> > wrote:
> > >
> > > From: Konstantin Ananyev
in.v.anan...@yandex.ru/
>
> On Thu, Nov 07, 2024 at 04:44:39PM -0800, Andre Muezerie wrote:
> > From: Konstantin Ananyev
> >
> > gro_vxlan_tcp4_tbl_timeout_flush() is called without taking into account
> > that first entries in pkts[] can be already occupied by
> > un-p
>
> > The concept of ‘ring with stages’ is similar to DPDK OPDL eventdev PMD [1],
> > but the internals are different.
> > In particular, SORING maintains internal array of 'states' for each element
> > in the ring that is shared by all threads/processes that access the ring.
> > That allows 're
use working mail address as a main one.
Signed-off-by: Konstantin Ananyev
---
.mailmap | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mailmap b/.mailmap
index fd02950d9f..a22d28989c 100644
--- a/.mailmap
+++ b/.mailmap
@@ -805,7 +805,7 @@ Kirill Rybalchenko
Kishore
1 - 100 of 1198 matches
Mail list logo