RE: [PATCH v1 3/4] ring: fix potential sync issue between head and tail values

2025-06-02 Thread Konstantin Ananyev
].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. > > -

RE: [PATCH v2 1/2] ethdev: remove unnecessary type conversion

2025-05-28 Thread Konstantin Ananyev
> > > 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

RE: [PATCH v2 1/2] ethdev: remove unnecessary type conversion

2025-05-28 Thread Konstantin Ananyev
> > > 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 >

RE: [PATCH v2 1/2] ethdev: remove unnecessary type conversion

2025-05-28 Thread Konstantin Ananyev
> > > > > 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

RE: [PATCH v2] fix eal/linux: unregister alarm callback before free

2025-05-27 Thread Konstantin Ananyev
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

RE: [PATCH v1 1/4] ring: introduce extra run-time checks

2025-05-26 Thread Konstantin Ananyev
> > > > 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

RE: [PATCH v1 3/4] ring: fix potential sync issue between head and tail values

2025-05-26 Thread Konstantin Ananyev
_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") > &

RE: [PATCH v1 1/4] ring: introduce extra run-time checks

2025-05-21 Thread Konstantin Ananyev
> > 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 > > > > >

RE: [PATCH v1 1/4] ring: introduce extra run-time checks

2025-05-21 Thread Konstantin Ananyev
> > 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

RE: [PATCH] eal/linux: unregister alarm callback before free ptr

2025-05-21 Thread Konstantin Ananyev
(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

RE: [PATCH] eal: fix return value of lcore role

2025-05-21 Thread Konstantin Ananyev
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

[PATCH v1 3/4] ring: fix potential sync issue between head and tail values

2025-05-21 Thread Konstantin Ananyev
"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_

[PATCH v1 2/4] ring/soring: fix head-tail synchronization issue

2025-05-21 Thread Konstantin Ananyev
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/

[PATCH v1 4/4] config/x86: enable RTE_USE_C11_MEM_MODEL by default

2025-05-21 Thread Konstantin Ananyev
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

[PATCH v1 0/4] ring: some fixes and improvements

2025-05-21 Thread Konstantin Ananyev
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

[PATCH v1 1/4] ring: introduce extra run-time checks

2025-05-21 Thread Konstantin Ananyev
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

RE: [PATCH v4 1/2] cmdline: add floating point support

2025-05-07 Thread Konstantin Ananyev
> -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: > > >

RE: [PATCH v4 1/2] cmdline: add floating point support

2025-05-07 Thread Konstantin Ananyev
> 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

RE: [PATCH] acl: fix build with GCC 15 on aarch64

2025-03-27 Thread Konstantin Ananyev
> 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

RE: [PATCH] acl: fix build with GCC 15 on aarch64

2025-03-27 Thread Konstantin Ananyev
> > > > > > > -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

RE: [PATCH] acl: fix build with GCC 15 on aarch64

2025-03-27 Thread Konstantin Ananyev
> -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:

RE: [PATCH] acl: fix build with GCC 15 on aarch64

2025-03-27 Thread Konstantin Ananyev
> - 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

RE: [PATCH v5 00/11] remove component-specific logic for AVX builds

2025-03-26 Thread Konstantin Ananyev
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

RE: [PATCH v3 2/3] eal: only use numbers as align parameters for MSVC

2025-02-27 Thread Konstantin Ananyev
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

RE: [PATCH v2 2/5] eal: only use numbers as align parameters for MSVC

2025-02-26 Thread Konstantin Ananyev
> -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

RE: [PATCH] power: use hugepage memory for queue list entry structure

2025-02-24 Thread Konstantin Ananyev
> > 在 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

RE: [PATCH v5 08/10] test-pmd: declare lcore_count atomic

2025-02-24 Thread Konstantin Ananyev
> 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

RE: [PATCH v2] examples/l3fwd: add option to set Tx burst size

2025-02-21 Thread Konstantin Ananyev
> >> 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

RE: [PATCH v4 08/10] test-pmd: declare lcore_count atomic

2025-02-21 Thread Konstantin Ananyev
> 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

RE: [PATCH] power: use hugepage memory for queue list entry structure

2025-02-20 Thread Konstantin Ananyev
> > > -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

RE: [PATCH] power: use hugepage memory for queue list entry structure

2025-02-20 Thread Konstantin Ananyev
> -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

RE: [PATCH] power: use hugepage memory for queue list entry structure

2025-02-20 Thread Konstantin Ananyev
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.

RE: [PATCH] examples/l3fwd: add option to set refetch offset

2025-02-19 Thread Konstantin Ananyev
> 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

RE: [PATCH v2] examples/l3fwd: add option to set Tx burst size

2025-02-19 Thread Konstantin Ananyev
> 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.

RE: [PATCH] examples/l3fwd: adjust Tx burst size based on Rx burst

2025-02-19 Thread Konstantin Ananyev
> 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 (

RE: [PATCH v22 00/27] remove use of VLAs for Windows

2025-02-19 Thread Konstantin Ananyev
> > > > 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

[PATCH] test/ring: fix return uninitialized variable

2025-02-19 Thread Konstantin Ananyev
("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 ---

RE: [PATCH v7 2/7] latencystats: do not use floating point

2025-02-14 Thread Konstantin Ananyev
+++ > 1 file changed, 73 insertions(+), 55 deletions(-) > Acked-by: Konstantin Ananyev > 2.47.2

RE: [PATCH v6] eal: define __SIZEOF_LONG__ when using MSVC

2025-02-09 Thread Konstantin Ananyev
(sizeof(long)) > +#define __SIZEOF_LONG_LONG__ (sizeof(long long)) > +#endif > + > #endif /* _RTE_OS_H_ */ > -- Acked-by: Konstantin Ananyev > 2.47.2.vfs.0.1

RE: [PATCH v2 2/2] mempool: make rte_mempool_create_empty a single-exit

2025-02-07 Thread Konstantin Ananyev
> 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

RE: [PATCH v2 1/2] mempool: fix rte_errno in rte_mempool_create_empty

2025-02-07 Thread Konstantin Ananyev
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

RE: [PATCH v22 00/27] remove use of VLAs for Windows

2025-02-07 Thread Konstantin Ananyev
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

RE: [PATCH v4 0/7] eliminate dependency on non-portable __SIZEOF_LONG__

2025-02-05 Thread Konstantin Ananyev
> 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

RE: [PATCH v3] mbuf: add fast free bulk and raw alloc bulk functions

2025-01-27 Thread Konstantin Ananyev
. > + * @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

RE: [PATCH v3 03/15] hash: add allocation function attributes

2025-01-24 Thread Konstantin Ananyev
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

RE: [PATCH v3 06/15] acl: add allocation function attributes

2025-01-24 Thread Konstantin Ananyev
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

RE: [PATCH v3 09/15] mempool: add allocation function attributes

2025-01-24 Thread Konstantin Ananyev
> + 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

RE: [PATCH v3 11/15] ring: add allocation function attributes

2025-01-24 Thread Konstantin Ananyev
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

RE: [PATCH 2/2] mempool: turn functions into single-exit ones

2025-01-19 Thread Konstantin Ananyev
> 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

RE: [PATCH v11 0/7] Stage-Ordered API and other extensions for ring library

2025-01-16 Thread Konstantin Ananyev
> 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

Tech Board Meeting Minutes - 2025-Jan-08

2025-01-15 Thread Konstantin Ananyev
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

RE: [PATCH v14 00/81] remove use of VLAs for Windows

2025-01-13 Thread Konstantin Ananyev
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 &

RE: [PATCH v13 00/21] remove use of VLAs for Windows

2025-01-10 Thread Konstantin Ananyev
> 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

RE: [PATCH 1/2] lib/ipsec: compile ipsec on Windows

2025-01-09 Thread Konstantin Ananyev
> 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

RE: [PATCH 1/2] lib/ipsec: compile ipsec on Windows

2025-01-09 Thread Konstantin Ananyev
> 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

RE: [PATCH v2] ring: add the second version of the RTS interface

2025-01-08 Thread Konstantin Ananyev
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

RE: [PATCH] examples/l3fwd: optimize packet prefetch

2025-01-08 Thread Konstantin Ananyev
> > 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

RE: [PATCH v13 00/21] remove use of VLAs for Windows

2025-01-08 Thread Konstantin Ananyev
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=* > *

RE: [RFC 0/8] ioring: network driver

2024-12-20 Thread Konstantin Ananyev
> > 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. > &

RE: [RFC 0/8] ioring: network driver

2024-12-12 Thread Konstantin Ananyev
> > > 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

RE: [RFC 0/8] ioring: network driver

2024-12-11 Thread Konstantin Ananyev
> 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

RE: [PATCH v16 1/4] lib: add generic support for reading PMU events

2024-12-06 Thread Konstantin Ananyev
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

[PATCH v11 7/7] test: add stress test suite

2024-12-06 Thread Konstantin Ananyev
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

[PATCH v11 6/7] app/test: add unit tests for soring API

2024-12-06 Thread Konstantin Ananyev
: 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

[PATCH v11 5/7] ring/soring: introduce Staged Ordered Ring

2024-12-06 Thread Konstantin Ananyev
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

[PATCH v11 4/7] ring: make dump function more verbose

2024-12-06 Thread Konstantin Ananyev
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

[PATCH v11 3/7] ring: make copying functions generic

2024-12-06 Thread Konstantin Ananyev
() 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

[PATCH v11 2/7] ring: common functions for 'move head' ops

2024-12-06 Thread Konstantin Ananyev
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

[PATCH v11 1/7] test/ring: fix failure with custom number of lcores

2024-12-06 Thread Konstantin Ananyev
;) 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

[PATCH v11 0/7] Stage-Ordered API and other extensions for ring library

2024-12-06 Thread Konstantin Ananyev
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

RE: [PATCH v3 2/7] drivers/bus: eliminate dependency on non-portable __SIZEOF_LONG__

2024-12-06 Thread Konstantin Ananyev
> -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

RE: [PATCH v3 2/7] drivers/bus: eliminate dependency on non-portable __SIZEOF_LONG__

2024-12-06 Thread Konstantin Ananyev
> > > 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

RE: [PATCH v3 2/7] drivers/bus: eliminate dependency on non-portable __SIZEOF_LONG__

2024-12-06 Thread Konstantin Ananyev
> > 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

RE: [PATCH] examples/l3fwd: fix Tx performance deteriorate

2024-11-22 Thread Konstantin Ananyev
> 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

RE: [PATCH v12 04/21] ethdev: remove use of VLAs for Windows built code

2024-11-22 Thread Konstantin Ananyev
> -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

RE: [v3 3/3] examples/l3fwd: enhance valid ports checking

2024-11-20 Thread Konstantin Ananyev
> 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,

RE: [PATCH v5 01/16] eal: provide pack start macro for MSVC

2024-11-19 Thread Konstantin Ananyev
> -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

RE: bug in cryptodev enqueue/dequeue callbacks?

2024-11-18 Thread Konstantin Ananyev
> > 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'

bug in cryptodev enqueue/dequeue callbacks?

2024-11-14 Thread Konstantin Ananyev
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

[PATCH v10 5/7] ring/soring: introduce Staged Ordered Ring

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v10 6/7] app/test: add unit tests for soring API

2024-11-11 Thread Konstantin Ananyev
: 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

[PATCH v10 7/7] test: add stress test suite

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v10 4/7] ring: make dump function more verbose

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v10 3/7] ring: make copying functions generic

2024-11-11 Thread Konstantin Ananyev
() 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

[PATCH v10 2/7] ring: common functions for 'move head' ops

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v10 1/7] test/ring: fix failure with custom number of lcores

2024-11-11 Thread Konstantin Ananyev
;) 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

[PATCH v10 0/7] Stage-Ordered API and other extensions for ring library

2024-11-11 Thread Konstantin Ananyev
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

RE: [RFC] ip_frag: support IPv6 reassembly with extensions

2024-11-11 Thread Konstantin Ananyev
> 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 >

[PATCH v9 6/7] app/test: add unit tests for soring API

2024-11-11 Thread Konstantin Ananyev
: 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

[PATCH v9 3/7] ring: make copying functions generic

2024-11-11 Thread Konstantin Ananyev
() 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

[PATCH v9 7/7] test: add stress test suite

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v9 5/7] ring/soring: introduce Staged Ordered Ring

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v9 4/7] ring: make dump function more verbose

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v9 2/7] ring: common functions for 'move head' ops

2024-11-11 Thread Konstantin Ananyev
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

[PATCH v9 1/7] test/ring: fix failure with custom number of lcores

2024-11-11 Thread Konstantin Ananyev
;) 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

[PATCH v9 0/7] Stage-Ordered API and other extensions for ring library

2024-11-11 Thread Konstantin Ananyev
_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

RE: [PATCH v4 02/19] eal/linux: remove use of VLAs

2024-11-08 Thread Konstantin Ananyev
> 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

RE: [PATCH v5 08/20] net/ice: remove use of VLAs for Windows built code

2024-11-08 Thread 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

RE: [PATCH v7 0/7] Stage-Ordered API and other extensions for ring library

2024-11-07 Thread Konstantin Ananyev
> > > 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

[PATCH v1] mailmap: change primary mail address

2024-11-07 Thread Konstantin Ananyev
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   2   3   4   5   6   7   8   9   10   >