From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net-next 00/18] net: mvpp2: add RSS support Date: Thu, 12 Jul 2018 17:31:07 -0700 (PDT) Message-ID: <20180712.173107.1123272614896683104.davem@davemloft.net> References: <20180712115427.27375-1-maxime.chevallier@bootlin.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, antoine.tenart@bootlin.com, thomas.petazzoni@bootlin.com, gregory.clement@bootlin.com, miquel.raynal@bootlin.com, nadavh@marvell.com, stefanc@marvell.com, ymarkman@marvell.com, mw@semihalf.com To: maxime.chevallier@bootlin.com Return-path: In-Reply-To: <20180712115427.27375-1-maxime.chevallier@bootlin.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Maxime Chevallier Date: Thu, 12 Jul 2018 13:54:09 +0200 > This series adds support for RSS on PPv2. There already was some code to > handle the RSS tables, but the driver was missing all the classification > steps required to actually use these tables. > > RSS is used through the classifier, using at least 2 lookups : > - One using the C2 engine, a TCAM engine that match the packet based on > some header extracted fields, assigns the default rx queue for that > packet and tag it for RSS > - One using the C3Hx engine, which computes the hash that's used to perform > the lookup in the RSS table. > > Since RSS spreads the load across CPUs, we need to make sure that packets > from the same flow are always assigned the same rx queue, to prevent > re-ordering. > > This series therefore adds a classification step based on the Header Parser, > that separate ingress traffic into 52 flows, based on some L2, L3 and L4 > parameters. > > Patches 1 and 2 fix some header issues, from the driver splitting > > Patches 3 to 7 make sure the correct receive queue setup is used for RSS > > Patches 8 to 14 deal with the way we handle the RSS tables > > Patch 15 implement basic classifier configuration, by using it to assign the > default receive queue > > Patch 16 implement the ingress traffic splitting into multiple flows > > Patch 17 adds RSS support, by using the needed classification steps > > Patch 18 adds the required ethtool ops to configure the flow hash parameters > > This was tested on MacchiatoBin, giving some nice performance improvements > using ip forwarding (going from 5Gbps to 9.6Gbps total throughput). > > RSS is disabled by default. Series applied, thank you.