DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Igor Gutorov <igootorov@gmail.com>
Cc: "Morten Brørup" <mb@smartsharesystems.com>, dev@dpdk.org
Subject: Re: RFC - Tap io_uring PMD
Date: Thu, 7 Nov 2024 08:30:40 -0800	[thread overview]
Message-ID: <20241107083040.6baee56b@hermes.local> (raw)
In-Reply-To: <CAL7bPf050D89d6qxgdYkye1ZJd+HpOBE0DqPM8WM6quWfBx+3w@mail.gmail.com>

On Wed, 6 Nov 2024 03:52:51 +0300
Igor Gutorov <igootorov@gmail.com> wrote:

> On Wed, Nov 6, 2024 at 2:54 AM Morten Brørup <mb@smartsharesystems.com> wrote:
> >  
> > > From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> > > Sent: Wednesday, 6 November 2024 00.26
> > >
> > > On Wed, 6 Nov 2024 00:22:19 +0100
> > > Morten Brørup <mb@smartsharesystems.com> wrote:
> > >  
> > > > From what I understand, the TAP io_uring PMD only supports one RX  
> > > queue per port and one TX queue per port (i.e. per TAP interface). We
> > > can take advantage of this:
> > >
> > >
> > > No kernel tap support multi queue and we need to use that.  
> >
> > Maybe I got it wrong then... I thought you said fanout (of kernel->TAP packets) would affect all fds associated with the TAP interface.
> > How can the application then use multiple queues?
> >
> > Another thing is:
> > For which purposes do applications need multi queue support for TAP, considering the interface is for management traffic only?  
> 
> I've previously used net_pcap as well as net_af_packet PMDs for
> debugging/testing and even benchmarking purposes. I'd set up a
> software interface, then feed test traffic via `tcpreplay`.
> Some of the limitations I've encountered are:
> 
> - net_af_packet does not report received/missed packet counters
> - net_pcap does not have multi queue support (AFAIK)
> 
> As an example, non symmetric RSS configurations may cause 2-way TCP
> packets to be steered to different queues. If your application is a
> worker-per-queue application with no shared state, you might want to
> have these packets to be steered to the same queue instead. Without
> multi queue, you can't easily test against scenarios like that.
> 
> Though, as you've said, if TAP is for management only, perhaps I was
> trying to use the wrong tool for the wrong job.
> In the end, I ended up getting a real two port NIC (feeding traffic
> from one port to the other) because software PMDs are not similar
> enough to the actual hardware.

DPDK interactions with kernel devices is complicated, there are overlapping
drivers:
	- TAP  - uses Linux tap device
	- PCAP - uses libpcap which ends up using af_packet
        - AF_PACKET - uses af_packet
        - AF_XDP - uses XDP
        - Virtio user - relies on vhost in kernel

There are lots of differences in performance, control usage, and other
details between these.

The proposal is to do simpler faster version of the TAP.
Will also do some comparisons and detail (maybe presentation or document)
on all the others later.

So far, have a basic driver that does setup and basic management operations;
still working on details of the ring stuff.

  reply	other threads:[~2024-11-07 16:30 UTC|newest]

Thread overview: 14+ 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 [this message]
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

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=20241107083040.6baee56b@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=igootorov@gmail.com \
    --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;
as well as URLs for NNTP newsgroup(s).