From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 12268C316 for ; Mon, 15 Jun 2015 20:34:33 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP; 15 Jun 2015 11:34:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,620,1427785200"; d="scan'208";a="711402313" Received: from irsmsx110.ger.corp.intel.com ([163.33.3.25]) by orsmga001.jf.intel.com with ESMTP; 15 Jun 2015 11:34:15 -0700 Received: from irsmsx155.ger.corp.intel.com (163.33.192.3) by irsmsx110.ger.corp.intel.com (163.33.3.25) with Microsoft SMTP Server (TLS) id 14.3.224.2; Mon, 15 Jun 2015 19:34:14 +0100 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.73]) by irsmsx155.ger.corp.intel.com ([169.254.14.49]) with mapi id 14.03.0224.002; Mon, 15 Jun 2015 19:34:13 +0100 From: "Ananyev, Konstantin" To: "Richardson, Bruce" Thread-Topic: [dpdk-dev] rte_mbuf.next in 2nd cacheline Thread-Index: AQHQo8caRiJzxo5OE0esWvWQH/eOLp2tg74AgAAGpYCAABHI0P//9BKAgAACMwCAAAUGAIAAFgVg///3iYCAAAE0AIAAEVcw///zHoAAAn6f8P//8lCA///uq6CAABcoAP//zWYg Date: Mon, 15 Jun 2015 18:34:13 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725836A0AA03@irsmsx105.ger.corp.intel.com> References: <20150615141258.GA580@bricha3-MOBL3> <557EE1A0.609@6wind.com> <2601191342CEEE43887BDE71AB97725836A0A8A8@irsmsx105.ger.corp.intel.com> <557EECFF.3090402@6wind.com> <20150615152346.GC580@bricha3-MOBL3> <2601191342CEEE43887BDE71AB97725836A0A8FB@irsmsx105.ger.corp.intel.com> <20150615153943.GD580@bricha3-MOBL3> <2601191342CEEE43887BDE71AB97725836A0A91C@irsmsx105.ger.corp.intel.com> <20150615160208.GE580@bricha3-MOBL3> <2601191342CEEE43887BDE71AB97725836A0A952@irsmsx105.ger.corp.intel.com> <20150615162259.GA384@bricha3-MOBL3> In-Reply-To: <20150615162259.GA384@bricha3-MOBL3> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" , "Damjan Marion \(damarion\)" Subject: Re: [dpdk-dev] rte_mbuf.next in 2nd cacheline X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jun 2015 18:34:34 -0000 > -----Original Message----- > From: Richardson, Bruce > Sent: Monday, June 15, 2015 5:23 PM > To: Ananyev, Konstantin > Cc: Olivier MATZ; dev@dpdk.org; Damjan Marion (damarion) > Subject: Re: [dpdk-dev] rte_mbuf.next in 2nd cacheline >=20 > On Mon, Jun 15, 2015 at 05:10:44PM +0100, Ananyev, Konstantin wrote: > > > > > > > -----Original Message----- > > > From: Richardson, Bruce > > > Sent: Monday, June 15, 2015 5:02 PM > > > To: Ananyev, Konstantin > > > Cc: Olivier MATZ; dev@dpdk.org; Damjan Marion (damarion) > > > Subject: Re: [dpdk-dev] rte_mbuf.next in 2nd cacheline > > > > > > On Mon, Jun 15, 2015 at 04:59:55PM +0100, Ananyev, Konstantin wrote: > > > > > > > > > > > > > > > > As I can see, vector TX is the only one that calls __rte_pktmbuf_pr= efree_seg() directly. > > > > All others use rte_pktmbuf_free_seg(), that does ' m->next =3D NULL= ' anyway. > > > > For vector TX - yes, need to verify that it would not introduce a s= lowdown. > > > > Konstantin > > > > > > > > > > But if the function is only directly called from one place, and that = doesn't > > > have a problem, why would we bother making any change at all? > > > > > > For future usages? > > But sure, if you believe that we can safely remove 'm->next =3D NULL' a= t RX path, > > without any changes in the __rte_pktmbuf_prefree_seg() - > > that seems fine to me. > > Konstantin > > >=20 > If we find it's not safe, we can add in the change to __rte_pktmbuf_prefr= ee_seg > as you suggest. >=20 > One other question: based on this, do you think it's safe to also remove = the > assignment to NULL from the pktmbuf_alloc function? I suspect it should b= e safe, and > that should help any traffic-generator type applications that use that fu= nction > extensively. So it will be setup to NULL, either by: - mbuf constructor. - TX full-path free descriptors code. - upper layer code that uses 'next' pointer explicitly. ? I can't come-up with some breakage scenario off-hand. But that means that we have to should avoid resetting tx_offload in pktmbuf= _alloc() too, right? Otherwise there probably wouldn't be any real gain. Konstantin >=20 > /Bruce