RE: [PATCH v4 08/22] hash: fix unaligned access in predictable RSS

2025-07-16 Thread Konstantin Ananyev
_32(*tmp); > + tmp = *(unaligned_uint32_t *)&ctx->hash_key[offset >> 3]; > + val = rte_be_to_cpu_32(tmp); > val >>= (TOEPLITZ_HASH_LEN - ((offset & (CHAR_BIT - 1)) + > ctx->reta_sz_log)); > > -- Acked-by: Konstantin Ananyev > 2.50.0 >

RE: [PATCH v4 18/22] net: fix IPv4 macro with highest bit

2025-07-16 Thread Konstantin Ananyev
uint32_t)((b) & 0xff) << 16) | \ > + ((uint32_t)((c) & 0xff) << 8) | ((uint32_t)((d) & 0xff))) > > /** Maximal IPv4 packet length (including a header) */ > #define RTE_IPV4_MAX_PKT_LEN65535 > -- Acked-by: Konstantin Ananyev > 2.50.0

RE: [PATCH] doc: announce mbuf fast free configuration requirements

2025-07-15 Thread Konstantin Ananyev
ust be set when the > + ``RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE`` offload flag is set. > -- Acked-by: Konstantin Ananyev > 2.43.0 >

RE: [PATCH v2] net/intel: deprecate some SSE paths

2025-07-15 Thread Konstantin Ananyev
* ethdev: The flow API matching pattern structures, ``struct > rte_flow_item_*``, >should start with relevant protocol header structure from lib/net/. >The individual protocol header fields and the protocol header struct > -- Acked-by: Konstantin Ananyev > 2.34.1

RE: [PATCH v2 08/10] hash: fix unaligned access in predictable RSS

2025-07-15 Thread Konstantin Ananyev
> -Original Message- > From: David Marchand > Sent: Tuesday, July 15, 2025 12:57 PM > To: Konstantin Ananyev > Cc: dev@dpdk.org; sta...@dpdk.org; Yipeng Wang ; > Sameh Gobriel ; Bruce > Richardson ; Vladimir Medvedkin > ; John McNamara > > Subject:

RE: [PATCH] rcu: add deprecation notice about limit on defer queue element size

2025-07-14 Thread Konstantin Ananyev
> > 10/07/2025 16:37, Andre Muezerie: > > On Tue, Jul 01, 2025 at 04:17:20PM +0200, Thomas Monjalon wrote: > > > 23/05/2025 01:37, Andre Muezerie: > > > > The functions rte_rcu_qsbr_dq_create and rte_rcu_qsbr_dq_reclaim > > > > establish > > > > no limit on the size of each element in the defer

Techboard meeting minutes, 2025-July-09

2025-07-13 Thread Konstantin Ananyev
Minutes of Technical Board Meeting, 2025-July-09 Members attending --- - Aaron Conole - Bruce Richardson - Hemant Agrawal - Jerin Jacob - Konstantin Ananyev (chair) - Morten Brørup - Stephen Hemminger - Thomas Monjalon NOTE: The technical board meetings every second

RE: [PATCH] doc: announce changes in structure alignments for UBSan

2025-07-10 Thread Konstantin Ananyev
multiple >samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which > is >used by iterators, and arrays holding these values are sized with this > -- > 2.50.0 Acked-by: Konstantin Ananyev

RE: [PATCH v3 09/18] stack: fix unaligned accesses on 128-bit

2025-07-09 Thread Konstantin Ananyev
d old_head; > + alignas(16) struct rte_stack_lf_head old_head; > int success = 0; > > /* Reserve num elements, if available */ > @@ -99,7 +99,7 @@ __rte_stack_lf_pop_elems(struct rte_stack_lf_list *list, > > /* Pop num elements */ > do { > - struct rte_stack_lf_head new_head; > + alignas(16) struct rte_stack_lf_head new_head; > struct rte_stack_lf_elem *tmp; > unsigned int i; > > -- Acked-by: Konstantin Ananyev > 2.50.0

RE: [PATCH v2 08/10] hash: fix unaligned access in predictable RSS

2025-07-08 Thread Konstantin Ananyev
> On Tue, Jul 1, 2025 at 10:36 AM Konstantin Ananyev > wrote: > > > Caught by UBSan: > > > > > > ../lib/hash/rte_thash.c:421:8: runtime error: load of misaligned address > > > 0x0001816c2da3 for type 'uint32_t' (aka 'un

RE: [RFC] ethdev: TX mbuf fast release optimization

2025-07-05 Thread Konstantin Ananyev
> -Original Message- > From: Konstantin Ananyev > Sent: Friday, July 4, 2025 5:20 PM > To: Morten Brørup ; tho...@monjalon.net; Bruce > Richardson > Cc: dev@dpdk.org > Subject: RE: [RFC] ethdev: TX mbuf fast release optimization > > > > For TX mbu

RE: [RFC] ethdev: TX mbuf fast release optimization

2025-07-04 Thread Konstantin Ananyev
> For TX mbuf fast release offload, I propose to add the mbuf mempool > pointer to the ethdev tx queue configuration structure, > so the ethdev TX burst operation doesn't need to fetch it from the > first mbuf of each burst being fast free'd to the mempool. > > This modification of the struct rt

RE: [PATCH] net/i40e: Fast release optimizations

2025-07-03 Thread Konstantin Ananyev
> > I am talking about different thing: > > I think with some extra effort driver can use (in some cases) > > rte_mbuf_raw_free_bulk() even when RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE > > is not specified. > > Let say we can make txq->fast_free_mp[] an array with the same size as txq- > > >txep[].

RE: [PATCH v2 08/10] hash: fix unaligned access in predictable RSS

2025-07-01 Thread Konstantin Ananyev
> Caught by UBSan: > > ../lib/hash/rte_thash.c:421:8: runtime error: load of misaligned address > 0x0001816c2da3 for type 'uint32_t' (aka 'unsigned int'), > which requires 4 byte alignment > > Fixes: 28ebff11c2dc ("hash: add predictable RSS") > Cc: sta...@dpdk.org > > Signed-off-b

RE: [PATCH] net/i40e: Fast release optimizations

2025-07-01 Thread Konstantin Ananyev
+ likely(txq->fast_free_mp != (void > > *)UINTPTR_MAX) ? > > > > + txq->fast_free_mp : > > > > + (txq->fast_free_mp = > > > > txep[0].mbuf->pool); > > > > + > > Speakin

RE: [PATCH] net/i40e: Fast release optimizations

2025-06-30 Thread Konstantin Ananyev
i)->mbuf); > - > if (txq->offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) { > + struct rte_mempool * const fast_free_mp = > + likely(txq->fast_free_mp != (void > *)UINTPTR_MAX) ? > + txq->fast_free_mp : > +

RE: [PATCH 1/2] doc/eal: add doc entry for service core list flag

2025-06-30 Thread Konstantin Ananyev
linux_gsg/eal_args.include.rst > @@ -79,6 +79,11 @@ Lcore-related options > > Hexadecimal bitmask of cores to be used as service cores. > > +* ``-S `` > + > +List of cores to be used as service cores. > + > + > Device-related options > ~~ > > -- Acked-by: Konstantin Ananyev > 2.48.1

RE: [PATCH 2/2] doc: use core lists rather than masks in guides

2025-06-30 Thread Konstantin Ananyev
y hundreds of cores, core lists are > a much better fix, so update the docs to reflect this. > > Similarly replace instances of "-s " with > "-S ". > > Signed-off-by: Bruce Richardson > --- Acked-by: Konstantin Ananyev > 2.48.1

RE: [PATCH] eal: deprecate old coremask-based EAL parameters

2025-06-30 Thread Konstantin Ananyev
ed, and will be > removed in a future release"); > + EAL_LOG(WARNING, "\tUse '-l ' or '--lcores=' option > instead"); > + > /* Remove all blank characters ahead and after . >* Remove 0x/0X if exists. >*/ > diff --git a/lib/eal/include/rte_lcore.h b/lib/eal/include/rte_lcore.h > index 44959779a1..10f965b4f0 100644 > --- a/lib/eal/include/rte_lcore.h > +++ b/lib/eal/include/rte_lcore.h > @@ -102,7 +102,6 @@ unsigned int rte_lcore_count(void); > * When option -c or -l is given, the index corresponds > * to the order in the list. > * For example: > - * -c 0x30, lcore 4 has index 0, and 5 has index 1. > * -l 22,18 lcore 22 has index 0, and 18 has index 1. > * > * @param lcore_id > -- Acked-by: Konstantin Ananyev > 2.48.1

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

2025-06-12 Thread Konstantin Ananyev
s_head: > > > > __rte_ring_headtail_move_head(&r->cons.ht, > > > > &r->stage[stage].ht, 0, > > > > ...); > > > > > > > > > > __rte_ring_headtail_move_head is invoked to update prod.head (by > > > __rte_sor

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

  1   2   3   4   5   6   7   8   9   10   >