Netdev List
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Shannon Nelson <shannon.nelson@oracle.com>,
	netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
	jogreene@redhat.com, Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 01/15] i40e: limit lan queue count in large CPU count machine
Date: Mon,  2 Oct 2017 12:48:38 -0700	[thread overview]
Message-ID: <20171002194852.71970-2-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <20171002194852.71970-1-jeffrey.t.kirsher@intel.com>

From: Shannon Nelson <shannon.nelson@oracle.com>

When a machine has more CPUs than queue pairs, e.g. 512 cores, the
counting gets a little funky and turns off Flow Director with the
message:
  not enough queues for Flow Director. Flow Director feature is disabled

This patch limits the number of lan queues initially allocated to
be sure we have some left for FD and other features.

Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 47f71d7c3ae0..387f0863f794 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -11093,6 +11093,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit)
 static void i40e_determine_queue_usage(struct i40e_pf *pf)
 {
 	int queues_left;
+	int q_max;
 
 	pf->num_lan_qps = 0;
 
@@ -11139,10 +11140,12 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
 					I40E_FLAG_DCB_ENABLED);
 			dev_info(&pf->pdev->dev, "not enough queues for DCB. DCB is disabled.\n");
 		}
-		pf->num_lan_qps = max_t(int, pf->rss_size_max,
-					num_online_cpus());
-		pf->num_lan_qps = min_t(int, pf->num_lan_qps,
-					pf->hw.func_caps.num_tx_qp);
+
+		/* limit lan qps to the smaller of qps, cpus or msix */
+		q_max = max_t(int, pf->rss_size_max, num_online_cpus());
+		q_max = min_t(int, q_max, pf->hw.func_caps.num_tx_qp);
+		q_max = min_t(int, q_max, pf->hw.func_caps.num_msix_vectors);
+		pf->num_lan_qps = q_max;
 
 		queues_left -= pf->num_lan_qps;
 	}
-- 
2.14.2

  reply	other threads:[~2017-10-02 19:49 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-02 19:48 [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2017-10-02 Jeff Kirsher
2017-10-02 19:48 ` Jeff Kirsher [this message]
2017-10-02 19:48 ` [net-next 02/15] i40e: remove logically dead code Jeff Kirsher
2017-10-02 19:48 ` [net-next 03/15] i40e: Fix a potential NULL pointer dereference Jeff Kirsher
2017-10-02 19:48 ` [net-next 04/15] i40e: Fix reporting of supported link modes Jeff Kirsher
2017-10-02 19:48 ` [net-next 05/15] i40e: Add support for 'ethtool -m' Jeff Kirsher
2017-10-02 19:48 ` [net-next 06/15] i40e: use admin queue for setting LEDs behavior Jeff Kirsher
2017-10-02 19:48 ` [net-next 07/15] i40e: don't hold spinlock while resetting VF Jeff Kirsher
2017-10-02 19:48 ` [net-next 08/15] i40e: drop i40e_pf *pf from i40e_vc_disable_vf() Jeff Kirsher
2017-10-02 19:48 ` [net-next 09/15] i40e: make use of i40e_vc_disable_vf Jeff Kirsher
2017-10-02 19:48 ` [net-next 10/15] i40e: ensure reset occurs when disabling VF Jeff Kirsher
2017-10-02 19:48 ` [net-next 11/15] i40evf: Enable VF to request an alternate queue allocation Jeff Kirsher
2017-10-02 20:50   ` Yuval Mintz
2017-10-02 21:35     ` Brady, Alan
2017-10-02 19:48 ` [net-next 12/15] i40e: make i40evf_map_rings_to_vectors void Jeff Kirsher
2017-10-02 19:48 ` [net-next 13/15] i40e: fix handling of vf_states variable Jeff Kirsher
2017-10-02 19:48 ` [net-next 14/15] i40e: fix client notify of VF reset Jeff Kirsher
2017-10-02 19:48 ` [net-next 15/15] i40e: Stop dropping 802.1ad tags - eth proto 0x88a8 Jeff Kirsher
2017-10-02 22:17 ` [net-next 00/15][pull request] 40GbE Intel Wired LAN Driver Updates 2017-10-02 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171002194852.71970-2-jeffrey.t.kirsher@intel.com \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=davem@davemloft.net \
    --cc=jogreene@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@redhat.com \
    --cc=sassmann@redhat.com \
    --cc=shannon.nelson@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox