From patchwork Wed Sep 7 18:29:35 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Skidmore, Donald C" X-Patchwork-Id: 667129 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sTsSl4mvjz9s5g for ; Thu, 8 Sep 2016 04:29:43 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 1E90E8705A; Wed, 7 Sep 2016 18:29:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M88HRfG9kT63; Wed, 7 Sep 2016 18:29:40 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 386D586F7D; Wed, 7 Sep 2016 18:29:40 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 95B071CE769 for ; Wed, 7 Sep 2016 18:29:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 8E3EE8A5C3 for ; Wed, 7 Sep 2016 18:29:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fuBnU3QIeYA3 for ; Wed, 7 Sep 2016 18:29:37 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by hemlock.osuosl.org (Postfix) with ESMTPS id 258BF8A5A8 for ; Wed, 7 Sep 2016 18:29:37 +0000 (UTC) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP; 07 Sep 2016 11:29:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,296,1470726000"; d="scan'208,217";a="1026456397" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by orsmga001.jf.intel.com with ESMTP; 07 Sep 2016 11:29:36 -0700 Received: from orsmsx151.amr.corp.intel.com (10.22.226.38) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 7 Sep 2016 11:29:36 -0700 Received: from orsmsx116.amr.corp.intel.com ([169.254.7.187]) by ORSMSX151.amr.corp.intel.com ([169.254.7.179]) with mapi id 14.03.0248.002; Wed, 7 Sep 2016 11:29:35 -0700 From: "Skidmore, Donald C" To: "Jayakumar, Muthurajan" , "intel-wired-lan@lists.osuosl.org" , "Blevins, Christopher R" Thread-Topic: Dear Wired Lan Experts, kindly offer your guidance on customer's input please Thread-Index: AdIJIpGYnnvxQL/WTpCChRP2lbOm0gAEkYSw Date: Wed, 7 Sep 2016 18:29:35 +0000 Message-ID: References: <5D695A7F6F10504DBD9B9187395A21797E8F7782@ORSMSX112.amr.corp.intel.com> In-Reply-To: <5D695A7F6F10504DBD9B9187395A21797E8F7782@ORSMSX112.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzhlZGZjMTItMzJjZS00MzIyLWFhNzQtYjlhMmZkODQzMzJiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlJxTmdlZjFuME9DRkVxRzNoMmsxVFM1Q2NuSUtTV2UydGQrTEZ2bU5yR0E9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.22.254.139] MIME-Version: 1.0 Subject: Re: [Intel-wired-lan] Dear Wired Lan Experts, kindly offer your guidance on customer's input please X-BeenThere: intel-wired-lan@lists.osuosl.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@lists.osuosl.org Sender: "Intel-wired-lan" The limitation is due to interrupts limits of a VF. We only get four and since with two queues we need 3 interrupts (1 per queue and 1 for LSC among other events) we don't have enough to support a 4 queues VF and sharing interrupt would eliminate the advantages of the additional queues. :( Thanks, -Don From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On Behalf Of Jayakumar, Muthurajan Sent: Wednesday, September 07, 2016 9:13 AM To: intel-wired-lan@lists.osuosl.org; Blevins, Christopher R Subject: [Intel-wired-lan] Dear Wired Lan Experts, kindly offer your guidance on customer's input please Dear Wired Lan Experts, kindly offer your guidance on following customer's input below please Much appreciated. Best Regards, M Jay In the ixgbe driver (82599EB/X540/X550/X550EM_x), if RSS < 4 and we allocate VFs, the driver forces to use 2-queue (per VF) mode instead of 4-queue mode (see ixgbe_set_vmdq_queues function in ixgbe_lib.c) Is there any fundamental reason to do so? Is it possible to still use 4-queue mode (per VF) even when RSS=1 (i.e., a physical function uses only 1 TX/RX queue but all VFs use 4 TX/RX queues) The proposed change to use 4-queue mode is as follows (please double check if anything else needs to be changed): diff -urN src/ixgbe_lib.c src_new/ixgbe_lib.c --- src/ixgbe_lib.c 2016-07-12 13:11:56.976425563 -0700 +++ src_new/ixgbe_lib.c 2016-07-12 13:12:55.540425563 -0700 @@ -582,7 +582,7 @@ vmdq_i = min_t(u16, IXGBE_MAX_VMDQ_INDICES, vmdq_i); /* 64 pool mode with 2 queues per pool */ - if ((vmdq_i > 32) || (rss_i < 4)) { + if (vmdq_i > 32) { vmdq_m = IXGBE_82599_VMDQ_2Q_MASK; rss_m = IXGBE_RSS_2Q_MASK; rss_i = min_t(u16, rss_i, 2); @@ -590,7 +590,7 @@ } else { vmdq_m = IXGBE_82599_VMDQ_4Q_MASK; rss_m = IXGBE_RSS_4Q_MASK; - rss_i = 4; + rss_i = min_t(u16, rss_i, 4); } #if IS_ENABLED(CONFIG_FCOE) diff -urN src/ixgbe_main.c src_new/ixgbe_main.c --- src/ixgbe_main.c 2016-07-12 13:11:56.980425563 -0700 +++ src_new/ixgbe_main.c 2016-07-12 13:12:55.544425563 -0700 @@ -2883,7 +2883,7 @@ mtqc |= IXGBE_MTQC_RT_ENA | IXGBE_MTQC_8TC_8TQ; else if (tcs > 1) mtqc |= IXGBE_MTQC_RT_ENA | IXGBE_MTQC_4TC_4TQ; - else if (adapter->ring_feature[RING_F_RSS].indices == 4) + else if (adapter->ring_feature[RING_F_VMDQ].mask == IXGBE_82599_VMDQ_4Q_MASK) mtqc |= IXGBE_MTQC_32VF; else mtqc |= IXGBE_MTQC_64VF; @@ -3186,13 +3186,12 @@ mrqc = IXGBE_MRQC_RSSEN; } else { u8 tcs = netdev_get_num_tc(adapter->netdev); - if (adapter->flags & IXGBE_FLAG_VMDQ_ENABLED) { if (tcs > 4) mrqc = IXGBE_MRQC_VMDQRT8TCEN; /* 8 TCs */ else if (tcs > 1) mrqc = IXGBE_MRQC_VMDQRT4TCEN; /* 4 TCs */ - else if (adapter->ring_feature[RING_F_RSS].indices == 4) + else if (adapter->ring_feature[RING_F_VMDQ].mask == IXGBE_82599_VMDQ_4Q_MASK) mrqc = IXGBE_MRQC_VMDQRSS32EN; else mrqc = IXGBE_MRQC_VMDQRSS64EN;