On Thu, Sep 18, 2014 at 03:53:33PM +0000, Richardson, Bruce wrote: > > -----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. >
Maybe codify that information as a macro, or with some documentation right above the setting, so people not using ixgbe don't have to wonder where that value came from? :) Neil > /Bruce > >