From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 1384710D59 for ; Thu, 22 Dec 2016 14:25:46 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP; 22 Dec 2016 05:25:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,388,1477983600"; d="scan'208";a="915171025" Received: from bricha3-mobl3.ger.corp.intel.com ([10.237.221.64]) by orsmga003.jf.intel.com with SMTP; 22 Dec 2016 05:25:43 -0800 Received: by (sSMTP sendmail emulation); Thu, 22 Dec 2016 13:25:42 +0000 Date: Thu, 22 Dec 2016 13:25:42 +0000 From: Bruce Richardson To: Royce Niu Cc: dev@dpdk.org, cristian.dumitrescu@intel.com Message-ID: <20161222132542.GA44940@bricha3-MOBL3.ger.corp.intel.com> References: <20161222111528.GA11104@bricha3-MOBL3.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Research and =?iso-8859-1?Q?De=ACvel?= =?iso-8859-1?Q?opment?= Ireland Ltd. User-Agent: Mutt/1.7.1 (2016-10-04) Subject: Re: [dpdk-dev] Why IP_PIPELINE is faster than L2FWD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Dec 2016 13:25:47 -0000 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