From: Stephen Hemminger <stephen@networkplumber.org>
To: Chris Ochs <chris@ochsnet.com>
Cc: users@dpdk.org
Subject: Re: Non eal registered thread flow
Date: Wed, 29 Nov 2023 14:50:55 -0800 [thread overview]
Message-ID: <20231129145055.4c25d5e3@hermes.local> (raw)
In-Reply-To: <CABJreosw0nkOuw5Mtc_pu3SyPEn5QP1KoPm2GHa8EEkVgeKGoQ@mail.gmail.com>
On Wed, 29 Nov 2023 14:21:55 -0800
Chris Ochs <chris@ochsnet.com> wrote:
> Trying to get a handle on the best way to integrate with my existing
> architecture.
>
> My main application is in Rust and it's a partitioned/batching flow. It's
> an end server. I basically send type erased streams between partitions
> using SPSC queues. Work scheduling is separate. Workers basically do work
> stealing of partitions. The important part is messaging is tied to
> partitions not threads.
>
> So what I think might work best here is I assign a partition per lcore. I
> already have a design where partitions can be designated as network
> partitions, and my regular workers can then ignore these partitions. With
> dpdk specific workers taking over. I designed the architecture for use
> with user space networking generally from the start.
>
> A partition in a networking flow consumes streams from other partitions
> like normal. In a dpdk flow what I think this looks like is for each stream
> call into C to transmit. Streams would be written mbuf aligned so I think
> this is just a single memcpy per stream into dpdk buffers. And then a
> single call to receive.
>
> Does anything stand out here as problematic? I read the known issues
> section and nothing there stood out as problematic.
Are your lcore's pinned and isolated?
Is your API per packet or batch?
Are these DPDK ring buffers or some other queuing mechanism?
next prev parent reply other threads:[~2023-11-29 22:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-29 22:21 Chris Ochs
2023-11-29 22:50 ` Stephen Hemminger [this message]
2023-11-29 23:35 ` Chris Ochs
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=20231129145055.4c25d5e3@hermes.local \
--to=stephen@networkplumber.org \
--cc=chris@ochsnet.com \
--cc=users@dpdk.org \
/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;
as well as URLs for NNTP newsgroup(s).