DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Morten Brørup" <mb@smartsharesystems.com>
To: "Stephen Hemminger" <stephen@networkplumber.org>,
	"Maxime Coquelin" <maxime.coquelin@redhat.com>
Cc: <dev@dpdk.org>
Subject: RE: RFC - Tap io_uring PMD
Date: Sun, 29 Dec 2024 11:45:17 +0100	[thread overview]
Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F97B@smartserver.smartshare.dk> (raw)
In-Reply-To: <20241111212116.28090881@hermes.local>

> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Tuesday, 12 November 2024 06.21
> 
> On Wed, 6 Nov 2024 08:46:55 +0100
> Maxime Coquelin <maxime.coquelin@redhat.com> wrote:
> >
> > Why not just use Virtio-user PMD with Vhost-kernel backend [0]?
> > Are there any missing features that io_uring can address?
> >
> > Regards,
> > Maxime
> >
> > [0]:
> http://doc.dpdk.org/guides/howto/virtio_user_as_exception_path.html
> >
> 
> Yes, I looked at that but:
>   - virtio user ends up with a busy kernel thread which is not
> acceptable
>     in SOC environment where all resources are locked down. In the SOC
> I was working
>     on DPDK was limited to 4 polling isolated CPU's and 1 sleeping main
> thread.
>     The rest of the CPU resources were hard constrained by cgroups. The
> virtio user
>     thread was a problem.

I suppose the Kernel needs to schedule CPU resources to process the packets at some point anyway.
So how does the ioring driver improve the situation with the virtio-user thread? I.e. what's the difference in the way the Kernel handles these two types of drivers?

And a slightly related question: Are there any differences in throughput, latency or other performance metrics? (At very high bandwidth, scheduling latency matters; the "latency" parameter of the BDP becomes dominant.)

Overall, I'm trying to figure out when to use the virtio-user PMD, and when to use the ioring PMD.
Eventually, this should be described in the driver documentation or a user guide.

> 
>   - virtio user device is not persistent. If DPDK is being used a
> dataplane, need to
>     be able to quickly restart and not disturb applications and routing
> in the kernel
>     while the tap device is unavailable.  I.e having device present but
> in no carrier
>     state is better than having to teach applications about hot plug or
> play around
>     with multiple addresses on loopback device (which is what Cisco
> routers do).

virtio-user device persistence can probably be achieved in some other way.
(E.g. a persistent user space daemon could be used as a middle man for allocation. Just an idea; probably better solutions are available, if given more brain cycles.)


      reply	other threads:[~2024-12-29 10:45 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-30 21:56 Stephen Hemminger
2024-10-31 10:27 ` Morten Brørup
2024-11-01  0:34   ` Stephen Hemminger
2024-11-02 22:28     ` Morten Brørup
2024-11-05 18:58       ` Stephen Hemminger
2024-11-05 23:22         ` Morten Brørup
2024-11-05 23:25           ` Stephen Hemminger
2024-11-05 23:54             ` Morten Brørup
2024-11-06  0:52               ` Igor Gutorov
2024-11-07 16:30                 ` Stephen Hemminger
2024-11-06 10:30           ` Konstantin Ananyev
2024-11-06  0:46 ` Varghese, Vipin
2024-11-06  7:46 ` Maxime Coquelin
2024-11-07 21:51   ` Morten Brørup
2024-11-12  5:21   ` Stephen Hemminger
2024-12-29 10:45     ` Morten Brørup [this message]

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=98CBD80474FA8B44BF855DF32C47DC35E9F97B@smartserver.smartshare.dk \
    --to=mb@smartsharesystems.com \
    --cc=dev@dpdk.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=stephen@networkplumber.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).