From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.mhcomputing.net (master.mhcomputing.net [74.208.46.186]) by dpdk.org (Postfix) with ESMTP id 5AC3E5963 for ; Sat, 18 Oct 2014 19:19:28 +0200 (CEST) Received: by mail.mhcomputing.net (Postfix, from userid 1000) id B159D80C50B; Sat, 18 Oct 2014 10:26:34 -0700 (PDT) Date: Sat, 18 Oct 2014 10:26:34 -0700 From: Matthew Hall To: "Pattan, Reshma" Message-ID: <20141018172634.GB16406@mhcomputing.net> References: <3AEA2BF9852C6F48A459DA490692831FE21954@IRSMSX109.ger.corp.intel.com> <3AEA2BF9852C6F48A459DA490692831FE240FC@IRSMSX109.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3AEA2BF9852C6F48A459DA490692831FE240FC@IRSMSX109.ger.corp.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH RFC] librte_reorder: new reorder library 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: Sat, 18 Oct 2014 17:19:29 -0000 On Fri, Oct 17, 2014 at 09:44:49AM +0000, Pattan, Reshma wrote: > [Reshma]: Library just takes care of packets what it has got. No waiting > mechanism is used for missing packets. > [Reshma]: This is dependent upon how frequently packets are enqueued and > dequeued from it. Packets which are in order and without gaps are dequeued > at the next call to the dequeue api. If there is a gap, the time taken to > skip over the gap will depend on the size of the reorder ring. I am not sure this library will help much if it can't handle missing / delayed packets in some way. When you're using a non-flow-aware distributor and moving packets around randomly / round robin / not using flows, you'll end up with some cases where a packet has some HOL blocking in some core and another later packet comes through faster on another core. Maybe I missed something here, but I think there's got to be some logic where you can tell it's not ready to dequeue something yet, because there's a gap it needs to fill, or flows will break a lot due to race conditions I suspect. Matthew.