From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Horman Subject: Re: [PATCH v2 3/5] testpmd: Change rxfreet default to 32 Date: Tue, 23 Sep 2014 13:02:31 -0400 Message-ID: <20140923170231.GC12884@hmsreliant.think-freely.org> References: <1410948102-12740-1-git-send-email-bruce.richardson@intel.com> <1411470497-10209-1-git-send-email-bruce.richardson@intel.com> <1411470497-10209-4-git-send-email-bruce.richardson@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev-VfR2kkLFssw@public.gmane.org To: Bruce Richardson Return-path: Content-Disposition: inline In-Reply-To: <1411470497-10209-4-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" On Tue, Sep 23, 2014 at 12:08:15PM +0100, Bruce Richardson wrote: > To improve performance by using bulk alloc or vectored RX routines, we > need to set rx free threshold (rxfreet) value to 32, so make this the > testpmd default. > > Thirty-two is the minimum setting needed to enable either the > bulk alloc or vector RX routines inside the ixgbe driver, so it's > best made the default for that reason. Please see > "check_rx_burst_bulk_alloc_preconditions()" in ixgbe_rxtx.c, and > RX function assignment logic in "ixgbe_dev_rx_queue_setup()" in > the same file. > > The difference in IO performance for testpmd when called without any > optional parameters, and using 10G NICs using the ixgbe driver, can be > significant - approx 25% or more. > > Updates in V2: > * Updated commit message with additional details > > Signed-off-by: Bruce Richardson > --- > app/test-pmd/testpmd.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 9f6cdc4..f76406f 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -225,7 +225,9 @@ struct rte_eth_thresh tx_thresh = { > /* > * Configurable value of RX free threshold. > */ > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */ > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets, > + This setting is needed for ixgbe to enable bulk alloc or vector > + receive functionality. */ I thought we were talking about making this a pmd private selectable item, or allowing a reserved "let the pmd decide" setting. Or are we saving that for a later time? Neil > > /* > * Configurable value of RX drop enable. > -- > 1.9.3 > >