From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id 5468468A1 for ; Tue, 20 May 2014 12:38:42 +0200 (CEST) Received: from hmsreliant.think-freely.org ([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63) (envelope-from ) id 1WmhRX-0000fD-IU; Tue, 20 May 2014 06:38:50 -0400 Date: Tue, 20 May 2014 06:38:45 -0400 From: Neil Horman To: Bruce Richardson Message-ID: <20140520103845.GA6648@hmsreliant.think-freely.org> References: <1400580057-30155-1-git-send-email-bruce.richardson@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1400580057-30155-1-git-send-email-bruce.richardson@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: -2.9 (--) X-Spam-Status: No Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 0/4] New library: rte_distributor 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: Tue, 20 May 2014 10:38:42 -0000 On Tue, May 20, 2014 at 11:00:53AM +0100, Bruce Richardson wrote: > This adds a new library to the Intel DPDK whereby a set of packets can be distributed one-at-a-time to a set of worker cores, with dynamic load balancing being done between those workers. Flows are identified by a tag within the mbuf (currently the RSS hash field, 32-bit value), which is used to ensure that no two packets of the same flow are processed in parallel, thereby preserving ordering. > > Bruce Richardson (4): > eal: add tailq for new distributor component > distributor: new packet distributor library > distributor: add distributor library to build > distributor: add unit tests for distributor lib > > app/test/Makefile | 2 + > app/test/commands.c | 7 +- > app/test/test.h | 2 + > app/test/test_distributor.c | 582 +++++++++++++++++++++++++ > app/test/test_distributor_perf.c | 274 ++++++++++++ > config/defconfig_i686-default-linuxapp-gcc | 5 + > config/defconfig_i686-default-linuxapp-icc | 5 + > config/defconfig_x86_64-default-bsdapp-gcc | 6 + > config/defconfig_x86_64-default-linuxapp-gcc | 5 + > config/defconfig_x86_64-default-linuxapp-icc | 5 + > lib/Makefile | 1 + > lib/librte_distributor/Makefile | 50 +++ > lib/librte_distributor/rte_distributor.c | 417 ++++++++++++++++++ > lib/librte_distributor/rte_distributor.h | 173 ++++++++ > lib/librte_eal/common/include/rte_tailq_elem.h | 2 + > mk/rte.app.mk | 4 + > 16 files changed, 1539 insertions(+), 1 deletion(-) > create mode 100644 app/test/test_distributor.c > create mode 100644 app/test/test_distributor_perf.c > create mode 100644 lib/librte_distributor/Makefile > create mode 100644 lib/librte_distributor/rte_distributor.c > create mode 100644 lib/librte_distributor/rte_distributor.h > > -- > 1.9.0 > > This sounds an awful lot like the team and bonding drivers. Why implement this as a separate application accessible api, rather than a stacked PMD? If you do the latter then existing applications could concievably change their configurations to use this technology and gain the benefit of load distribution without having to alter the application to use a new api. Neil