DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: "Polehn, Mike A" <mike.a.polehn@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [Patch 1/2] i40e RX Bulk Alloc: Larger list size (33 to 128) throughput optimization
Date: Wed, 28 Oct 2015 11:15:06 +0000	[thread overview]
Message-ID: <20151028111506.GA11220@bricha3-MOBL3> (raw)
In-Reply-To: <745DB4B8861F8E4B9849C970520ABBF14974C1EB@ORSMSX102.amr.corp.intel.com>

On Tue, Oct 27, 2015 at 08:56:36PM +0000, Polehn, Mike A wrote:
> Combined 2 subroutines of code into one subroutine with one read operation followed by 
> buffer allocate and load loop.
> 
> Eliminated the staging queue and subroutine, which removed extra pointer list movements 
> and reduced number of active variable cache pages during for call.
> 
> Reduced queue position variables to just 2, the next read point and last NIC RX descriptor 
> position, also changed to allowing NIC descriptor table to not always need to be filled.
> 
> Removed NIC register update write from per loop to one per driver write call to minimize CPU 
> stalls waiting of multiple SMB synchronization points and for earlier NIC register writes that 
> often take large cycle counts to complete. For example with an input packet list of 33, with 
> the default loops size of 32, the second NIC register write will occur just after RX processing 
> for just 1 packet, resulting in large CPU stall time.
> 
> Eliminated initial rx packet present test before rx processing loop that also checks, since less 
> free time is generally available when packets are present than when not processing any input 
> packets. 
> 
> Used some standard variables to help reduce overhead of non-standard variable sizes.
> 
> Reduced number of variables, reordered variable structure to put most active variables in 
> first cache line, better utilize memory bytes inside cache line, and reduced active cache line 
> count to 1 cache line during processing call. Other RX subroutine sets might still use more 
> than 1 variable cache line.
> 
> Signed-off-by: Mike A. Polehn <mike.a.polehn@intel.com>

Hi Mike,

Thanks for the contribution.

However, this patch seems to contain a lot of changes to the i40e code. Since you have
multiple optimizations listed above in the description it would be good if you
could submit this patch as multiple patches, one for each optimization. That
would make it far easier for us to review and test. The same would apply to
patch 2 of this set, which looks to have multiple changes in a single patch too.
Also, each patch should have a unique title stating very briefly what the one
change in that patch is.

Regards,
/Bruce

      reply	other threads:[~2015-10-28 11:15 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-27 20:56 Polehn, Mike A
2015-10-28 11:15 ` Bruce Richardson [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=20151028111506.GA11220@bricha3-MOBL3 \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=mike.a.polehn@intel.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).