From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bruce.richardson@intel.com>
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by dpdk.org (Postfix) with ESMTP id EB0B7B3BD
 for <dev@dpdk.org>; Thu, 18 Sep 2014 17:49:17 +0200 (CEST)
Received: from orsmga002.jf.intel.com ([10.7.209.21])
 by orsmga102.jf.intel.com with ESMTP; 18 Sep 2014 08:48:26 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.04,548,1406617200"; d="scan'208";a="604881239"
Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155])
 by orsmga002.jf.intel.com with ESMTP; 18 Sep 2014 08:54:36 -0700
Received: from irsmsx109.ger.corp.intel.com (163.33.3.23) by
 IRSMSX102.ger.corp.intel.com (163.33.3.155) with Microsoft SMTP Server (TLS)
 id 14.3.195.1; Thu, 18 Sep 2014 16:53:34 +0100
Received: from irsmsx103.ger.corp.intel.com ([169.254.3.112]) by
 IRSMSX109.ger.corp.intel.com ([169.254.13.200]) with mapi id 14.03.0195.001;
 Thu, 18 Sep 2014 16:53:34 +0100
From: "Richardson, Bruce" <bruce.richardson@intel.com>
To: Neil Horman <nhorman@tuxdriver.com>
Thread-Topic: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32
Thread-Index: AQHP0l5oUFb5FU7UokiprGez8jDZ8pwFYuqAgAASbWA=
Date: Thu, 18 Sep 2014 15:53:33 +0000
Message-ID: <59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>
References: <1410948102-12740-1-git-send-email-bruce.richardson@intel.com>
 <1410948102-12740-4-git-send-email-bruce.richardson@intel.com>
 <20140917152945.GF4213@localhost.localdomain>
In-Reply-To: <20140917152945.GF4213@localhost.localdomain>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [163.33.239.180]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Sep 2014 15:49:18 -0000

> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: Wednesday, September 17, 2014 4:30 PM
> To: Richardson, Bruce
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32
>=20
> 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@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 =3D {
> >  /*
> >   * Configurable value of RX free threshold.
> >   */
> > -uint16_t rx_free_thresh =3D 0; /* Immediately free RX descriptors by d=
efault. */
> > +uint16_t rx_free_thresh =3D 32; /* Refill RX descriptors once every 32=
 packets
> */
> >
>=20
> 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 tun=
ed driver, but it works fine for all other ones too, as far as I'm aware. B=
asically, this is the minimum setting needed to enable either the bulk allo=
c or vector RX routines inside the ixgbe driver, so it's best made the defa=
ult 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.=20

/Bruce