DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: "Morten Brørup" <mb@smartsharesystems.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"Bruce Richardson" <bruce.richardson@intel.com>
Subject: RE: [PATCH v3 1/2] stack: introduce pile
Date: Mon, 31 Aug 2026 08:50:14 +0000	[thread overview]
Message-ID: <ec4ba9b4d8f34eb78e86a5ccc2a01a89@huawei.com> (raw)
In-Reply-To: <20260827135556.522443-2-mb@smartsharesystems.com>



> Added a new high-performance lock-free "pile", using the Stack API.
> The pile behaves roughly like a stack, but is not strictly LIFO.
> 
> The pile is optimized for pushing/popping bulks of objects, which
> it does significantly faster than the lock-free stack.
> 
> Pushing/popping a number of objects not divisible by the compile time
> configurable bulk size is handled gracefully, but not as fast as
> complete bulks.
> 
> Performance examples, stack_pile_perf_autotest vs. stack_lf_autotest:
> 
> On a single core, pushing/popping 1 or 8 objects is similar speed.
> On a single core, pushing/popping 32 objects is 2x faster.
> On a single core, pushing/popping 512 objects is 10x faster.
> 
> On four cores, pushing/popping 1, 8 or 32 objects is slightly faster.
> On four cores, pushing/popping 512 objects is 4x faster.

Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>

The code itself looks ok to me, thought I still think it is worth to consider
moving lf_pile (and lf_stack) DP implementation in .c, to avoid each rte_stack_pus/pop
to inline all three of them.
My speculation is that the perf diff for bulk enqueue/dequeue because of
that would be negligible, while both are quite big for inlining them always
(specially lf_pile).

> Signed-off-by: Morten Brørup <mb@smartsharesystems.com>
> ---

  reply	other threads:[~2026-08-31  8:50 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-12 13:47 [PATCH] stack: introduce pile Morten Brørup
2026-08-12 14:34 ` Bruce Richardson
2026-08-12 16:01   ` Morten Brørup
2026-08-12 16:15     ` Bruce Richardson
2026-08-12 16:28       ` Morten Brørup
2026-08-13 11:50         ` Bruce Richardson
2026-08-17 13:10 ` Bruce Richardson
2026-08-18  8:11   ` Konstantin Ananyev
2026-08-18  8:50     ` Morten Brørup
2026-08-25  7:05 ` Konstantin Ananyev
2026-08-25  9:21   ` Morten Brørup
2026-08-25 11:29     ` Konstantin Ananyev
2026-08-26  8:13 ` Konstantin Ananyev
2026-08-27 13:55 ` [PATCH v3 0/2] introduce pile stack and mempool driver Morten Brørup
2026-08-27 13:55   ` [PATCH v3 1/2] stack: introduce pile Morten Brørup
2026-08-31  8:50     ` Konstantin Ananyev [this message]
2026-08-31  9:05       ` Morten Brørup
2026-08-31  9:38         ` Konstantin Ananyev
2026-08-31 10:09           ` Morten Brørup
2026-08-31 16:06     ` Stephen Hemminger
2026-08-31 16:37       ` Morten Brørup
2026-08-27 13:55   ` [PATCH v3 2/2] mempool: introduce pile driver Morten Brørup
2026-09-01  6:43 ` [PATCH v4 0/2] introduce pile stack and mempool driver Morten Brørup
2026-09-01  6:43   ` [PATCH v4 1/2] stack: introduce pile Morten Brørup
2026-09-01  6:43   ` [PATCH v4 2/2] mempool: introduce pile driver Morten Brørup
2026-09-02 16:00     ` Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ec4ba9b4d8f34eb78e86a5ccc2a01a89@huawei.com \
    --to=konstantin.ananyev@huawei.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=mb@smartsharesystems.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox