From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id ECB7D1BBB6 for ; Thu, 12 Apr 2018 15:56:37 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Apr 2018 06:56:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,441,1517904000"; d="scan'208";a="41477688" Received: from irsmsx110.ger.corp.intel.com ([163.33.3.25]) by FMSMGA003.fm.intel.com with ESMTP; 12 Apr 2018 06:56:35 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.164]) by irsmsx110.ger.corp.intel.com ([169.254.15.211]) with mapi id 14.03.0319.002; Thu, 12 Apr 2018 14:56:25 +0100 From: "Ananyev, Konstantin" To: "Richardson, Bruce" , "Zhang, Qi Z" CC: "Chen, Junjie J" , "Xing, Beilei" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/i40e: update tx_free_threshold to improve zero copy performance Thread-Index: AQHT0iYYVrCxvZVcBE+mc2yjuzKcgaP9BHYA///3qYCAAA6FgIAAGsuQ Date: Thu, 12 Apr 2018 13:56:25 +0000 Message-ID: <2601191342CEEE43887BDE71AB977258AE914557@IRSMSX102.ger.corp.intel.com> References: <20180412053226.295226-1-junjie.j.chen@intel.com> <2601191342CEEE43887BDE71AB977258AE9143FC@IRSMSX102.ger.corp.intel.com> <039ED4275CED7440929022BC67E7061153190506@SHSMSX103.ccr.corp.intel.com> <20180412131205.GA49540@bricha3-MOBL.ger.corp.intel.com> In-Reply-To: <20180412131205.GA49540@bricha3-MOBL.ger.corp.intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOGZlOWU0NGQtYTVmNi00NDYwLTg5NTYtMjI1YjU3NDdiNTNmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ikh6VEJcL01taW9ralA0U1dOQ0lJMGVJN2dySnMzU0lxVUNvcEc5VzZMUlRVPSJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/i40e: update tx_free_threshold to improve zero copy performance X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Apr 2018 13:56:38 -0000 > -----Original Message----- > From: Richardson, Bruce > Sent: Thursday, April 12, 2018 2:12 PM > To: Zhang, Qi Z > Cc: Ananyev, Konstantin ; Chen, Junjie J ; Xing, Beilei ; > dev@dpdk.org; Chen@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] net/i40e: update tx_free_threshold to imp= rove zero copy performance >=20 > On Thu, Apr 12, 2018 at 12:20:07PM +0000, Zhang, Qi Z wrote: > > Hi Junjie: > > > > > -----Original Message----- > > > From: Ananyev, Konstantin > > > Sent: Thursday, April 12, 2018 7:52 PM > > > To: Chen, Junjie J ; Xing, Beilei > > > ; Zhang, Qi Z > > > Cc: dev@dpdk.org; Chen, Junjie J ; Chen@dpdk= .org > > > Subject: RE: [dpdk-dev] [PATCH] net/i40e: update tx_free_threshold to > > > improve zero copy performance > > > > > > > > > > > > > -----Original Message----- > > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Junjie Chen > > > > Sent: Thursday, April 12, 2018 6:32 AM > > > > To: Xing, Beilei ; Zhang, Qi Z > > > > > > > > Cc: dev@dpdk.org; Chen, Junjie J ; > > > > Chen@dpdk.org > > > > Subject: [dpdk-dev] [PATCH] net/i40e: update tx_free_threshold to > > > > improve zero copy performance > > > > > > > > From: "Chen, Junjie" > > > > > > > > When vhost backend works in dequeue zero copy mode, nic locks virti= o's > > > > buffer until there is less or equal than tx_free_threshold buffer > > > > remain and then free number of tx burst buffer. This causes packets > > > > drop in virtio side and impacts zero copy performance. So we need t= o > > > > increase the tx_free_threshold to let nic free virtio's buffer as s= oon as > > > possible. > > > > Also we keep the upper limit to tx max burst size to ensure least > > > > performance impact on non zero copy. > > > > > > Ok but why vhost app can't just use tx_queue_setup() to specify desir= ed value > > > for tx_free_thresh? > > > Why instead we have to modify PMD to satisfy needs of one app? > > > Konstantin > > > > I think the commit log could include the explanation that this change i= s proved not impact > > driver's performance and it reduce total memory be locked by PMD Tx, so= basically it benefit > > application that share the same mem pool overall, vhost dequeue zero co= py is one of the example. > > > > > > > > > > > > > Signed-off-by: Chen, Junjie > > > > --- > > > > drivers/net/i40e/i40e_rxtx.c | 2 ++ > > > > 1 file changed, 2 insertions(+) > > > > > > > > diff --git a/drivers/net/i40e/i40e_rxtx.c > > > > b/drivers/net/i40e/i40e_rxtx.c index 56a854cec..d9569bdc9 100644 > > > > --- a/drivers/net/i40e/i40e_rxtx.c > > > > +++ b/drivers/net/i40e/i40e_rxtx.c > > > > @@ -2039,6 +2039,8 @@ i40e_dev_tx_queue_setup(struct rte_eth_dev > > > *dev, > > > > tx_conf->tx_rs_thresh : DEFAULT_TX_RS_THRESH); > > > > tx_free_thresh =3D (uint16_t)((tx_conf->tx_free_thresh) ? > > > > tx_conf->tx_free_thresh : DEFAULT_TX_FREE_THRESH); > > > > + if (tx_free_thresh < nb_desc - I40E_TX_MAX_BURST) > > > > + tx_free_thresh =3D nb_desc - I40E_TX_MAX_BURST; > > > > I think we'd better still allow application to set tx_free_thresh, sinc= e a small tx_free_thresh may still have benefit to let driver handle the > first strike after device restarted > > So, nb_desc - I40E_TX_MAX_BURST can only be set when tx_conf->tx_rs_thr= esh =3D 0 > > > > Regards > > Qi > > > +1 for just changing in this case. >=20 Basically you suggest to change DEFAULT_TX_FREE_THRESH. Are you sure that it wouldn't impact any application on any platform (IA, a= rm, etc.)? As I remember we already had similar conversation few years ago. Again if memory serves me right - one of the contr-arguments about setting = that value too high was that PMD might start to check DD bit inside TXD too often - and will co= llide with HW updating it more often. As I remember it was suggested to use 1/2 or 3/4 of nb_desc as default one. Though I still don't see what is wrong with setting tx_free_thresh vi queue= _setup() for that particular case. In that case we can be sure that no other stuff will be affected. After all - that's why it is configurable. Konstantin