>
>
> > 25/09/2025 12:33, Akhil Goyal:
> > > > +/**
> > > > + * Constant-time memory comparison for cryptographic use.
> > > > + * Returns 0 if the memory regions are equal, nonzero otherwise.
> > > > + * Runs in constant time with respect to the length to prevent timing
> attacks.
> > > > + *
> 25/09/2025 12:33, Akhil Goyal:
> > > +/**
> > > + * Constant-time memory comparison for cryptographic use.
> > > + * Returns 0 if the memory regions are equal, nonzero otherwise.
> > > + * Runs in constant time with respect to the length to prevent timing
> > > attacks.
> > > + *
> > > + * @par
> I have been following this interesting discussion, and want to clarify:
>
> For a generic ring, enqueue can fail if the ring doesn't have sufficient free
> space, and
> dequeue can fail if it doesn't have sufficient objects in queue.
>
> However, when a ring is used as the backing store for
> > > > > > > Sure, I am talking about MT scenario.
> > > > > > > I think I already provided an example: DPDK mempool library (see
> > > > > > > below).
> > > > > > > In brief, It works like that:
> > > > > > > At init it allocates ring of N memory buffers and ring big enough
> > > > > > > to h
> > > Sure, I am talking about MT scenario.
> > > I think I already provided an example: DPDK mempool library (see below).
> > > In brief, It works like that:
> > > At init it allocates ring of N memory buffers and ring big enough to hold
> > > all of
> them.
> >
> > Sorry, I meant to say: "it a
> > > >
> > > > To avoid information loss I combined reply to two Wathsala
> > > > replies into one.
> > > >
> > > >
> > > > > > > The function __rte_ring_headtail_move_head() assumes that
> > > > > > > the
> > > > > > > barrier
> > > > > > (fence) between the load of the head and the load-acquir
> >
> > To avoid information loss I combined reply to two Wathsala replies into one.
> >
> >
> > > > > The function __rte_ring_headtail_move_head() assumes that the
> > > > > barrier
> > > > (fence) between the load of the head and the load-acquire of the
> > > > > opposing tail guarantees the fol
local_port_conf.txmode.offloads |=
> - RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
>
> local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
> dev_info.flow_type_rss_offloads;
> --
Acked-by: Konstantin Ananyev
> 2.34.1
>
> Subject: RE: Fixing MBUF_FAST_FREE TX offload requirements?
>
> > From: Bruce Richardson [mailto:bruce.richard...@intel.com]
> > Sent: Thursday, 18 September 2025 11.09
> >
> > On Thu, Sep 18, 2025 at 10:50:11AM +0200, Morten Brørup wrote:
> > > Dear NIC driver maintainers (CC: DPDK Tech Boar
To avoid information loss I combined reply to two Wathsala replies into one.
> > > The function __rte_ring_headtail_move_head() assumes that the
> > > barrier
> > (fence) between the load of the head and the load-acquire of the
> > > opposing tail guarantees the following: if a first thread reads
>
>
> > The function __rte_ring_headtail_move_head() assumes that the barrier
> > (fence) between the load of the head and the load-acquire of the
> > opposing tail guarantees the following: if a first thread reads tail
> > and then writes head and a second thread reads the new value of head
>
> The function __rte_ring_headtail_move_head() assumes that the barrier
> (fence) between the load of the head and the load-acquire of the
> opposing tail guarantees the following: if a first thread reads tail
> and then writes head and a second thread reads the new value of head
> and then read
_cache(FILE *f, const struct
> rte_mempool *mp)
>
> for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
> cache_count = mp->local_cache[lcore_id].len;
> + if (cache_count == 0)
> + continue;
> fprintf(f, "
gt; +++ b/MAINTAINERS
> @@ -429,6 +429,7 @@ F: app/test/test_stack*
> F: doc/guides/prog_guide/stack_lib.rst
>
> Packet buffer
> +M: Morten Brørup
> F: lib/mbuf/
> F: doc/guides/prog_guide/mbuf_lib.rst
> F: app/test/test_mbuf.c
> --
Acked-by: Konstantin Ananyev
> 2.43.0
> > >
> > > 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
> + const char *reason;
> +
> + if (rte_mbuf_raw_check(m, mp, &reason))
> + rte_panic("%s\n", reason);
Just as a thought: would it be usefull to add also mbuf ptr value to the panic
string?
Something like:
rte_panic("%s(%p): %
> The code for ethdev callbacks was using variable length arrays
> which is a feature not supported on MSVC and later C standards.
> Replace with alloca().
I am not a big fun of such mechanical replacement of vla with alloca()
Specially in that particular case, we can have internal function tha
API']
>
> -warning_disable_cflags = ['-Wno-format-truncation',
> '-Wno-address-of-packed-member']
> +warning_disable_cflags = ['-Wno-format-truncation',
> '-Wno-address-of-packed-member', '-Wno-comma']
> foreach cflag:warning_disable_cflags
> if cc.has_argument(cflag)
> default_cflags += cflag
> --
Acked-by: Konstantin Ananyev
> 2.47.2
ash.c b/app/test/test_thash.c
> index 33b0c6adac..398db71839 100644
> --- a/app/test/test_thash.c
> +++ b/app/test/test_thash.c
> @@ -910,7 +910,7 @@ test_adjust_tuple_mult_reta(void)
> {
> uint32_t i, j, np, nt;
>
> - nt = 0, np = 0;
> + nt = 0; np = 0;
> for (i = 0; i < CHAR_BIT; i++) {
> for (j = 6; j <= RTE_THASH_RETA_SZ_MAX - i; j++) {
> np += (test_adjust_tuple_mb(j, i) == 0);
> --
Acked-by: Konstantin Ananyev
> 2.47.2
the new struct cluster_node area */
> - cluster = RTE_PTR_ADD(stats, stats->sz),
> + cluster = RTE_PTR_ADD(stats, stats->sz);
> memset(cluster, 0, stats->cluster_node_size);
> memcpy(cluster->stat.name, graph_node->node->name, RTE_NODE_NAMESIZE);
> cluster->stat.id = graph_node->node->id;
> --
Acked-by: Konstantin Ananyev
> 2.47.2
>
atime.it_value.tv_nsec += US_PER_S * NS_PER_US;
> + }
>
> atime.it_value.tv_sec -= now.tv_sec;
> atime.it_value.tv_nsec -= now.tv_nsec;
> --
Acked-by: Konstantin Ananyev
> 2.47.2
> -Original Message-
> From: Stephen Hemminger
> Sent: Thursday, August 14, 2025 10:29 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger ; Konstantin Ananyev
> ; Vladimir
> Medvedkin
> Subject: [PATCH v2 2/6] ipsec: replace unnecessary comma operator
>
return;
> }
>
> - if (port->dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
> - port->dev_conf.txmode.offloads |=
> - RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
> /* Apply Tx offloads configuration */
> for (i = 0; i < port->dev_info.max_tx_queues; i++)
> port->txq[i].conf.offloads = port->dev_conf.txmode.offloads;
> --
Acked-by: Konstantin Ananyev
> 2.43.0
>
fine RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM RTE_BIT64(20)
> /**
> - * Device sends on time read from RTE_MBUF_DYNFIELD_TIMESTAMP_NAME
> + * Send on time read from RTE_MBUF_DYNFIELD_TIMESTAMP_NAME
> * if RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME is set in ol_flags.
> * The mbuf field and flag are registered when the offload is configured.
> */
> #define RTE_ETH_TX_OFFLOAD_SEND_ON_TIMESTAMP RTE_BIT64(21)
> /*
> - * If new Tx offload capabilities are defined, they also must be
> + * If new Tx offloads are defined, they also must be
> * mentioned in rte_tx_offload_names in rte_ethdev.c file.
> */
Acked-by: Konstantin Ananyev
> --
> 2.43.0
>
> > Hi Morten,
> >
> > Good patch. Please see below.
> >
> > On Sat, 26 Jul 2025, Morten Brørup wrote:
> >
> > > Added fast mbuf release, re-using the existing mbuf pool pointer
> > > in the queue structure.
> > >
> > > Signed-off-by: Morten Brørup
> > > ---
> > > v2:
> > > * Also announce the o
Hi,
> Hi, Konstantin
>
> To illustrate this issue, I made the following modifications to the test
> cases:
> Modify the “test_data” content of the function "test_acl.c:
> test_build_ports_range":
> delete the second test data, and leave only one test message data. This way,
> when
> the funct
Hi
> The node_array[RTE_ACL_DFA_SIZE] is assigned to
> RTE_ACL_IDLE_NODE and is used as a node of
> RTE_ACL_NODE_SINGLE type, but it is currently based
> on the implementation of idle arrays with a value of all
> 0 to point to itself, which is unsafe, if the value of the
> idle array is not 0, i
> >
> > > Array range initialization is non-standard and is not provided by
> > > all compilers. MSVC does not implement it and ends up emitting
> > > errors like the one below:
> > >
> > > drivers/net/r8169/r8169_phy.c(380):
> > > error C2143: syntax error: missing ':' before '...'
> > > ca
> Array range initialization is non-standard and is not provided by
> all compilers. MSVC does not implement it and ends up emitting
> errors like the one below:
>
> drivers/net/r8169/r8169_phy.c(380):
> error C2143: syntax error: missing ':' before '...'
> case CFG_METHOD_48 ... CFG_METHOD
_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
>
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
ust be set when the
> + ``RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE`` offload flag is set.
> --
Acked-by: Konstantin Ananyev
> 2.43.0
>
* 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
> -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:
>
> 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
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
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
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
> 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
> -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
> 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
> > 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[].
> 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
+ likely(txq->fast_free_mp != (void
> > *)UINTPTR_MAX) ?
> > > > + txq->fast_free_mp :
> > > > + (txq->fast_free_mp =
> > > > txep[0].mbuf->pool);
> > > > +
>
> Speakin
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 :
> +
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
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
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
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
].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
1 - 100 of 1247 matches
Mail list logo