DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Royce Niu <royceniu@gmail.com>
Cc: dev@dpdk.org, cristian.dumitrescu@intel.com
Subject: Re: [dpdk-dev] Why IP_PIPELINE is faster than L2FWD
Date: Thu, 22 Dec 2016 13:25:42 +0000	[thread overview]
Message-ID: <20161222132542.GA44940@bricha3-MOBL3.ger.corp.intel.com> (raw)
In-Reply-To: <CAOwUCNtJPX9wn_0heWkOtYW3e932sG_OJP-55+9dg3SBk05aXQ@mail.gmail.com>

On Thu, Dec 22, 2016 at 08:48:50PM +0800, Royce Niu wrote:
> But, actually, L3FWD of IP_PIPELINE is also faster than stock L2FWD, which
> also modifies mac addr. How can explain this?
> 
> Actually, I want to know why IP_PIPELINE is much faster and I can learn
> from IP_PIPELINE and make our own program.
> 
> But, the documentation of that is not detailed enough. if it is possible,
> could you tell me where is the key to boost? Thanks!
>

Adding Cristian as IP Pipeline maintainer.

A lot of tuning work went into IP Pipeline and the table and port
libraries it uses, so I'm not sure that there is just one or two key
changes which give it such good performance. L2 forward just hasn't had
the same level of tuning and, while performing well, is also simplified
to make it understandable as an example. Contrast the code in l2fwd
against equivalent vector code in l3fwd-lpm* files e.g. l3fwd_lpm_sse.h.
The latter is very high performing, the former is more readable.

Regards,
/Bruce

> On Thu, Dec 22, 2016 at 7:15 PM, Bruce Richardson <
> bruce.richardson@intel.com> wrote:
> 
> > On Thu, Dec 22, 2016 at 12:18:12AM +0800, Royce Niu wrote:
> > > Hi all,
> > >
> > > I tested default L2FWD and IP_PIPELINE (pass-through). The throughput of
> > > IP_PIPELINE is higher immensely.
> > >
> > > There are only two virtual NICs in KVM. The experiment is just moving
> > > packet from vNIC0  to vNIC1. I think the function is so simple. Why L2FWD
> > > is much slower?
> > >
> > > How can I improve L2FWD, to make L2FWD faster?
> > >
> > Is IP_PIPELINE in passthrough mode modifying the packets? L2FWD swaps
> > the mac addresses on each packet as it processes them, which can slow it
> > down. L2FWD is also more an example of how the APIs work than anything
> > else. For fastest possible port-to-port forwarding, testpmd should give
> > the highest performance.
> >
> > /Bruce
> >
> 
> 
> 
> -- 
> Regards,
> 
> Royce

  reply	other threads:[~2016-12-22 13:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-21 16:18 Royce Niu
2016-12-22 11:15 ` Bruce Richardson
2016-12-22 12:48   ` Royce Niu
2016-12-22 13:25     ` Bruce Richardson [this message]
2016-12-22 13:36       ` Royce Niu
2016-12-23  1:34         ` Xu, Qian Q
2016-12-23  1:41           ` Royce Niu

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=20161222132542.GA44940@bricha3-MOBL3.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=royceniu@gmail.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).