> -----Original Message-----
> From: Neil Horman [mailto:nhorman at tuxdriver.com]
> Sent: Wednesday, September 17, 2014 4:30 PM
> To: Richardson, Bruce
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32
> 
> On Wed, Sep 17, 2014 at 11:01:40AM +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.
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> > ---
> >  app/test-pmd/testpmd.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> > index 9f6cdc4..5751607 100644
> > --- a/app/test-pmd/testpmd.c
> > +++ b/app/test-pmd/testpmd.c
> > @@ -225,7 +225,7 @@ 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
> */
> >
> 
> Why 32?  Was that an experimentally determined value?  Does it hold true for 
> all
> PMD's?
This is primarily for the ixgbe PMD, which is right now the most highly tuned 
driver, but it works fine for all other ones too, as far as I'm aware. 
Basically, this 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. 

/Bruce

Reply via email to