From patchwork Sat Mar 31 17:54:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 893850 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.b="AiCxB7N6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40D5kZ4DCMz9s1S for ; Sun, 1 Apr 2018 03:55:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753340AbeCaRzs (ORCPT ); Sat, 31 Mar 2018 13:55:48 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:36062 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753221AbeCaRzI (ORCPT ); Sat, 31 Mar 2018 13:55:08 -0400 Received: by mail-pf0-f194.google.com with SMTP id g14so7369122pfh.3 for ; Sat, 31 Mar 2018 10:55:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GT5GDIk82wtZR8g0Ol0XCv5Rpo2B+G8u5VPvhUzIk0c=; b=AiCxB7N6mrOnNfQSN4/8cMXpV2N2ekEPEEyahWn9HxftjFM9E+XxE4GwhRND0P26VP +tB+2g4HQFiA5q0oNcEO5n9Zf+UTLy6pZc0wOYhQYtgyzPYGlPwlF4kzv+d4iEbqd3pv m/da6wLxscXhYI5HUWEobiSHHRlgwWUcypQoI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GT5GDIk82wtZR8g0Ol0XCv5Rpo2B+G8u5VPvhUzIk0c=; b=KknYw7fMAsUzUzJztqQsEPvA5R81xji5iBb3ZBs1DvTo4rWCO/LOFMDmhA1AqoS8o0 mCDT//YSWJmKHA4W9CWNZ+e+9ity6DH+/VHd5vj+l87tK6WgUg24hOMbEE+glxagEsxW 1ULD7XbYqBv+IrQx+AOeEij0M/WbGrm/ZRn6sVxIw28O5wpCIrIC5lOyR5Pc8Tldh5ml MsIHyHpZygzqxb52ZglR22gPDbzrkKjbOJweu9tdtvTlSX9989jLtd0/gHPr4X8/I0Ld OvBUTE2O/+lrg/hXAzw5uOM7RwjLbKhK/TxobwkHdIgesfNm9Ya+dZGvyz30vFewQkPq QYzg== X-Gm-Message-State: AElRT7FxuWj3m+TGtw89CZeiKh5r6kvXO8uea7kcTOjKuBnlTuJjoJ08 2YSAYL4U5uqMbyfSST40MxP4+YtC+ok= X-Google-Smtp-Source: AIpwx49Q03aDF7KA0ck2gOW/twePUwBjelVBb/YZNK4OjSig16hUZtmSXaXEE9RzWuajzw5ztZp5vw== X-Received: by 2002:a17:902:2e:: with SMTP id 43-v6mr3742129pla.282.1522518907467; Sat, 31 Mar 2018 10:55:07 -0700 (PDT) Received: from localhost.dhcp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id l80sm25512831pfk.73.2018.03.31.10.55.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 31 Mar 2018 10:55:06 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 09/16] bnxt_en: Improve resource accounting for SRIOV. Date: Sat, 31 Mar 2018 13:54:14 -0400 Message-Id: <1522518861-9845-10-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522518861-9845-1-git-send-email-michael.chan@broadcom.com> References: <1522518861-9845-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When VFs are created, the current code subtracts the maximum VF resources from the PF's pool. This under-estimates the resources remaining in the PF pool. Instead, we should subtract the minimum VF resources. The VF minimum resources are guaranteed to the VFs and only these should be subtracted from the PF's pool. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c index a3d368e..4fa4761 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c @@ -510,18 +510,16 @@ static int bnxt_hwrm_func_vf_resc_cfg(struct bnxt *bp, int num_vfs) } mutex_unlock(&bp->hwrm_cmd_lock); if (pf->active_vfs) { - u16 n = 1; + u16 n = pf->active_vfs; - if (pf->vf_resv_strategy != BNXT_VF_RESV_STRATEGY_MINIMAL) - n = pf->active_vfs; - - hw_resc->max_tx_rings -= vf_tx_rings * n; - hw_resc->max_rx_rings -= vf_rx_rings * n; - hw_resc->max_hw_ring_grps -= vf_ring_grps * n; - hw_resc->max_cp_rings -= vf_cp_rings * n; + hw_resc->max_tx_rings -= le16_to_cpu(req.min_tx_rings) * n; + hw_resc->max_rx_rings -= le16_to_cpu(req.min_rx_rings) * n; + hw_resc->max_hw_ring_grps -= le16_to_cpu(req.min_hw_ring_grps) * + n; + hw_resc->max_cp_rings -= le16_to_cpu(req.min_cmpl_rings) * n; hw_resc->max_rsscos_ctxs -= pf->active_vfs; - hw_resc->max_stat_ctxs -= vf_stat_ctx * n; - hw_resc->max_vnics -= vf_vnics * n; + hw_resc->max_stat_ctxs -= le16_to_cpu(req.min_stat_ctx) * n; + hw_resc->max_vnics -= le16_to_cpu(req.min_vnics) * n; rc = pf->active_vfs; }