From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eilon Greenstein" Subject: Re: [RFC net-next 00/14] default maximal number of RSS queues in mq drivers Date: Tue, 19 Jun 2012 19:17:12 +0300 Message-ID: <1340122632.2486.17.camel@lb-tlvb-eilong.il.broadcom.com> References: <1340118848-30978-1-git-send-email-yuvalmin@broadcom.com> Reply-To: eilong@broadcom.com Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit To: "Yuval Mintz" , netdev@vger.kernel.org, davem@davemloft.net, "Or Gerlitz" , "Divy Le Ray" , "Jitendra Kalsaria" , "Ron Mercer" , "Anirban Chakraborty" , "Jeff Kirsher" , "Jon Mason" , "Andrew Gallatin" , "Jon Mason" , "Subbu Seetharaman" , "Sathya Perla" , "Matt Carlson" , "Ajit Khaparde" , "Michael Chan" Return-path: Received: from mms2.broadcom.com ([216.31.210.18]:1721 "EHLO mms2.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750982Ab2FSQRc (ORCPT ); Tue, 19 Jun 2012 12:17:32 -0400 In-Reply-To: <1340118848-30978-1-git-send-email-yuvalmin@broadcom.com> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, 2012-06-19 at 18:13 +0300, Yuval Mintz wrote: > Different vendors support different number of RSS queues by default. Today, > there exists an ethtool API through which users can change the number of > channels their driver supports; This enables us to pursue the goal of using > a default number of RSS queues in various multi-queue drivers. > > This RFC intendeds to achieve the above default, by upper-limiting the number > of interrupts multi-queue drivers request (by default, not via the new API) > with correlation to the number of cpus on the machine. > > After examining multi-queue drivers that call alloc_etherdev_mq[s], > it became evident that most drivers allocate their devices using hard-coded > values. Changing those defaults directly will most likely cause a regression. > > However, (most) multi-queue driver look at the number of online cpus when > requesting for interrupts. We assume that the number of interrupts the > driver manages to request is propagated across the driver, and the number > of RSS queues it configures is based upon it. > > This RFC modifies said logic - if the number of cpus is large enough, use > a smaller default value instead. This serves 2 main purposes: > 1. A step forward unity in the number of RSS queues of various drivers. > 2. It prevents wasteful requests for interrupts on machines with many cpus. > > Notice no testing was made on this RFC (other than on the bnx2x driver) > except for compilation test. > > Drivers identified as multi-queue, handled in this RFC: > > * mellanox mlx4 > * neterion vxge > * qlogic qlge > * intel igb, igbxe, igbxevf > * chelsio cxgb3, cxgb4 > * myricom myri10ge > * emulex benet > * broadcom tg3, bnx2, bnx2x > > Driver identified as multi-queue, no reference to number of online cpus found, > and thus unhandled in this RFC: > > * neterion s2io > * marvell mv643xx > * freescale gianfar > * ibm ehea > * ti cpmac > * sun niu > * sfc efx > * chelsio cxgb4vf > > Cheers, > Yuval Mintz > > Cc: Divy Le Ray > Cc: Or Gerlitz > Cc: Jon Mason > Cc: Anirban Chakraborty > Cc: Jitendra Kalsaria > Cc: Ron Mercer > Cc: Jeff Kirsher > Cc: Jon Mason > Cc: Andrew Gallatin > Cc: Sathya Perla > Cc: Subbu Seetharaman > Cc: Ajit Khaparde > Cc: Matt Carlson > Cc: Michael Chan Obviously we need to make the subject line more self-explanatory and start with the component name followed by colon. We will fix it in the next version of the patch, but please comment on the content. Thanks, Eilon