Received: by 10.192.165.148 with SMTP id m20csp1367065imm; Thu, 10 May 2018 09:35:10 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo5lmPk5hMo31/5JEW+orQi4VnZa4wqfmqKQiUmEcCgYH0ZGCKinMrV8Nv1LRyOfqu5LIrq X-Received: by 2002:a17:902:bd0a:: with SMTP id p10-v6mr2045839pls.69.1525970110897; Thu, 10 May 2018 09:35:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525970110; cv=none; d=google.com; s=arc-20160816; b=I3dN/JODOoN+NNyKDAOZ+jf/yid/AQy8MYn8CcLFSf+Acej16NRnDhyfT9VMbiwdxI 89Y/GLvwBE+HbvpytprS8wIWBo6ukwyCzQ8N9Orgcwn96cyzDVVkVCx3ZqSxKh24QOM+ JglRpw0acJJWF+OkJIOM4MQeYI6M6kF0L8sGe9/HlriwgcvgMW2kFe2DBlS7uxi+cdPk naVNz/yUvBVG/YMOv43/11EYuXcFZcHqPdGkSfRXac+WMKrlhnFzGfNvJg6MbSYHHRhx TrRJxbGE3qyXS2TDnuWKp5QxQTaMKINeNfmRXUmq+tPmI6zAGU2Mj43SdzU2NsA2thdY X5Eg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=1jK2RMJIIkhkvRkgewuURYPJlkdFHBLgxjsSdaB/YtY=; b=HpWlax/mvuOlnp/ObO0sLt5EWa5JnjgdkekNvJ8B+4Z81+9hTUuPxGYa6HesYi+2tL WcfmiFalH/inFFzzqxsNVfwlYK9NZPk6iso4cJB3aayAY/iSawNFYXV1Xx5tDMwJ6zt2 fegDLq4/eV8/qWJ7WVEj6XS00REaR3MajRm+IQ/JL41bp7eSRef7UgFJ3lcGUZDWtgNR zvMVkJkm/z5T2LHuf+2p16Ic+5qJMc2N1Smf1dhZoL3yGriibaTFnLlLsGLHX0kbkFv5 oAeWE9/UylhjetR5QnMLoMpXGgZGDzmJfDaFDVy9/wiRm6Y26WdxTs6jCb3odYi67MMM WKUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=lrURlshp; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 30-v6si1158099plf.104.2018.05.10.09.34.55; Thu, 10 May 2018 09:35:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=lrURlshp; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966492AbeEJQeC (ORCPT + 99 others); Thu, 10 May 2018 12:34:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:57542 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965017AbeEJQeA (ORCPT ); Thu, 10 May 2018 12:34:00 -0400 Received: from localhost (unknown [69.55.156.246]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2247E21784; Thu, 10 May 2018 16:34:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1525970040; bh=g+m55EG2GCKk1Jqu/rE8Q+wwlIZ4cheqVYKX5pdL3XM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=lrURlshpb04C8Kg/svSiUXcGN0RJMGX1MnchH/eWCxtXUMAykjKgh2pyUwwi/yAeP mcvxDR1lYWSwiNPvJ9Q0IBs93QRxVlY5jmoFZxxZ4PAle7vRItTDgaOyoqqUn+SxF7 MMg04QLguclATlLfXxXXBQl20kLMYxYpnMe1oZgE= Date: Thu, 10 May 2018 11:33:57 -0500 From: Bjorn Helgaas To: Jeff Kirsher , Ganesh Goudar , Michael Chan , Ariel Elior Cc: linux-pci@vger.kernel.org, everest-linux-l2@cavium.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Gilboa , Tariq Toukan , Jacob Keller , Jakub Kicinski Subject: Re: [PATCH v6 5/5] PCI: Remove unused pcie_get_minimum_link() Message-ID: <20180510163357.GB190385@bhelgaas-glaptop.roam.corp.google.com> References: <152537719056.62474.2571390812509425478.stgit@bhelgaas-glaptop.roam.corp.google.com> <152537764322.62474.552711932384023140.stgit@bhelgaas-glaptop.roam.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <152537764322.62474.552711932384023140.stgit@bhelgaas-glaptop.roam.corp.google.com> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 03, 2018 at 03:00:43PM -0500, Bjorn Helgaas wrote: > From: Bjorn Helgaas > > In some cases pcie_get_minimum_link() returned misleading information > because it found the slowest link and the narrowest link without > considering the total bandwidth of the link. > > For example, consider a path with these two links: > > - 16.0 GT/s x1 link (16.0 * 10^9 * 128 / 130) * 1 / 8 = 1969 MB/s > - 2.5 GT/s x16 link ( 2.5 * 10^9 * 8 / 10) * 16 / 8 = 4000 MB/s > > The available bandwidth of the path is limited by the 16 GT/s link to about > 1969 MB/s, but pcie_get_minimum_link() returned 2.5 GT/s x1, which > corresponds to only 250 MB/s. > > Callers should use pcie_print_link_status() instead, or > pcie_bandwidth_available() if they need more detailed information. > > Remove pcie_get_minimum_link() since there are no callers left. > > Signed-off-by: Bjorn Helgaas Hi Jeff, I got your note that you applied this to dev-queue. I assume that means you also applied the preceding patches that removed all the users. I got a note about ixgbe, but not the others, so I'm just double-checking. > --- > drivers/pci/pci.c | 43 ------------------------------------------- > include/linux/pci.h | 2 -- > 2 files changed, 45 deletions(-) > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index e597655a5643..4bafa817c40a 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -5069,49 +5069,6 @@ int pcie_set_mps(struct pci_dev *dev, int mps) > } > EXPORT_SYMBOL(pcie_set_mps); > > -/** > - * pcie_get_minimum_link - determine minimum link settings of a PCI device > - * @dev: PCI device to query > - * @speed: storage for minimum speed > - * @width: storage for minimum width > - * > - * This function will walk up the PCI device chain and determine the minimum > - * link width and speed of the device. > - */ > -int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed, > - enum pcie_link_width *width) > -{ > - int ret; > - > - *speed = PCI_SPEED_UNKNOWN; > - *width = PCIE_LNK_WIDTH_UNKNOWN; > - > - while (dev) { > - u16 lnksta; > - enum pci_bus_speed next_speed; > - enum pcie_link_width next_width; > - > - ret = pcie_capability_read_word(dev, PCI_EXP_LNKSTA, &lnksta); > - if (ret) > - return ret; > - > - next_speed = pcie_link_speed[lnksta & PCI_EXP_LNKSTA_CLS]; > - next_width = (lnksta & PCI_EXP_LNKSTA_NLW) >> > - PCI_EXP_LNKSTA_NLW_SHIFT; > - > - if (next_speed < *speed) > - *speed = next_speed; > - > - if (next_width < *width) > - *width = next_width; > - > - dev = dev->bus->self; > - } > - > - return 0; > -} > -EXPORT_SYMBOL(pcie_get_minimum_link); > - > /** > * pcie_bandwidth_available - determine minimum link settings of a PCIe > * device and its bandwidth limitation > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 73178a2fcee0..230615620a4a 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -1079,8 +1079,6 @@ int pcie_get_readrq(struct pci_dev *dev); > int pcie_set_readrq(struct pci_dev *dev, int rq); > int pcie_get_mps(struct pci_dev *dev); > int pcie_set_mps(struct pci_dev *dev, int mps); > -int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed, > - enum pcie_link_width *width); > u32 pcie_bandwidth_available(struct pci_dev *dev, struct pci_dev **limiting_dev, > enum pci_bus_speed *speed, > enum pcie_link_width *width); >