[{"id":1779219,"web_url":"http://patchwork.ozlabs.org/comment/1779219/","msgid":"<20171003193341.GF25517@bhelgaas-glaptop.roam.corp.google.com>","list_archive_url":null,"date":"2017-10-03T19:33:41","subject":"Re: [PATCH 1/2] pci: Cache the VF device ID in the SR-IOV structure","submitter":{"id":67298,"url":"http://patchwork.ozlabs.org/api/people/67298/","name":"Bjorn Helgaas","email":"helgaas@kernel.org"},"content":"On Mon, Aug 28, 2017 at 03:38:49PM +0200, Filippo Sironi wrote:\n> ... and use it instead of reading it over and over from the PF config\n> space capability.\n> \n> Signed-off-by: Filippo Sironi <sironi@amazon.de>\n> Cc: linux-pci@vger.kernel.org\n> Cc: linux-kernel@vger.kernel.org\n\nApplied to pci/virtualization for v4.15.\n\nI renamed vf_did to vf_device for consistency with other existing fields.\n\n> ---\n>  drivers/pci/iov.c | 5 +++--\n>  drivers/pci/pci.h | 1 +\n>  2 files changed, 4 insertions(+), 2 deletions(-)\n> \n> diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c\n> index 120485d6f352..e8f7eafaba6a 100644\n> --- a/drivers/pci/iov.c\n> +++ b/drivers/pci/iov.c\n> @@ -134,7 +134,7 @@ int pci_iov_add_virtfn(struct pci_dev *dev, int id, int reset)\n>  \n>  \tvirtfn->devfn = pci_iov_virtfn_devfn(dev, id);\n>  \tvirtfn->vendor = dev->vendor;\n> -\tpci_read_config_word(dev, iov->pos + PCI_SRIOV_VF_DID, &virtfn->device);\n> +\tvirtfn->device = iov->vf_did;\n>  \trc = pci_setup_device(virtfn);\n>  \tif (rc)\n>  \t\tgoto failed0;\n> @@ -448,6 +448,7 @@ static int sriov_init(struct pci_dev *dev, int pos)\n>  \tiov->nres = nres;\n>  \tiov->ctrl = ctrl;\n>  \tiov->total_VFs = total;\n> +\tpci_read_config_word(dev, pos + PCI_SRIOV_VF_DID, &iov->vf_did);\n>  \tiov->pgsz = pgsz;\n>  \tiov->self = dev;\n>  \tiov->drivers_autoprobe = true;\n> @@ -723,7 +724,7 @@ int pci_vfs_assigned(struct pci_dev *dev)\n>  \t * determine the device ID for the VFs, the vendor ID will be the\n>  \t * same as the PF so there is no need to check for that one\n>  \t */\n> -\tpci_read_config_word(dev, dev->sriov->pos + PCI_SRIOV_VF_DID, &dev_id);\n> +\tdev_id = dev->sriov->vf_did;\n>  \n>  \t/* loop through all the VFs to see if we own any that are assigned */\n>  \tvfdev = pci_get_device(dev->vendor, dev_id, NULL);\n> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h\n> index 22e061738c6f..a7270e11e1ef 100644\n> --- a/drivers/pci/pci.h\n> +++ b/drivers/pci/pci.h\n> @@ -262,6 +262,7 @@ struct pci_sriov {\n>  \tu16 num_VFs;\t\t/* number of VFs available */\n>  \tu16 offset;\t\t/* first VF Routing ID offset */\n>  \tu16 stride;\t\t/* following VF stride */\n> +\tu16 vf_did;\t\t/* VF device ID */\n>  \tu32 pgsz;\t\t/* page size for BAR alignment */\n>  \tu8 link;\t\t/* Function Dependency Link */\n>  \tu8 max_VF_buses;\t/* max buses consumed by VFs */\n> -- \n> 2.7.4\n>","headers":{"Return-Path":"<linux-pci-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","mail.kernel.org;\n\tdmarc=none (p=none dis=none) header.from=kernel.org","mail.kernel.org;\n\tspf=none smtp.mailfrom=helgaas@kernel.org"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y68NC69G4z9t5C\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  4 Oct 2017 06:33:47 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751148AbdJCTdq (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 3 Oct 2017 15:33:46 -0400","from mail.kernel.org ([198.145.29.99]:33866 \"EHLO mail.kernel.org\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751111AbdJCTdp (ORCPT <rfc822;linux-pci@vger.kernel.org>);\n\tTue, 3 Oct 2017 15:33:45 -0400","from localhost (173-25-0-147.client.mchsi.com [173.25.0.147])\n\t(using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits))\n\t(No client certificate requested)\n\tby mail.kernel.org (Postfix) with ESMTPSA id 36BA12188A;\n\tTue,  3 Oct 2017 19:33:43 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mail.kernel.org 36BA12188A","Date":"Tue, 3 Oct 2017 14:33:41 -0500","From":"Bjorn Helgaas <helgaas@kernel.org>","To":"Filippo Sironi <sironi@amazon.de>","Cc":"linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org","Subject":"Re: [PATCH 1/2] pci: Cache the VF device ID in the SR-IOV structure","Message-ID":"<20171003193341.GF25517@bhelgaas-glaptop.roam.corp.google.com>","References":"<1503927530-26076-1-git-send-email-sironi@amazon.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<1503927530-26076-1-git-send-email-sironi@amazon.de>","User-Agent":"Mutt/1.5.21 (2010-09-15)","Sender":"linux-pci-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-pci.vger.kernel.org>","X-Mailing-List":"linux-pci@vger.kernel.org"}},{"id":1782359,"web_url":"http://patchwork.ozlabs.org/comment/1782359/","msgid":"<1507504151-16179-1-git-send-email-sironi@amazon.de>","list_archive_url":null,"date":"2017-10-08T23:09:10","subject":"[PATCH v2] pci: Expose offset, stride, and VF device ID via sysfs","submitter":{"id":72242,"url":"http://patchwork.ozlabs.org/api/people/72242/","name":"Filippo Sironi","email":"sironi@amazon.de"},"content":"Testing done:\n\n$ ls -l /sys/bus/pci/devices/0000\\:03\\:00.0/\ntotal 0\n-rw-r--r-- 1 root root    4096 Oct  9 00:48 broken_parity_status\n-r--r--r-- 1 root root    4096 Oct  9 00:48 class\n-rw-r--r-- 1 root root    4096 Oct  9 00:46 config\n-r--r--r-- 1 root root    4096 Oct  9 00:48 consistent_dma_mask_bits\n-r--r--r-- 1 root root    4096 Oct  9 00:48 current_link_speed\n-r--r--r-- 1 root root    4096 Oct  9 00:48 current_link_width\n-rw-r--r-- 1 root root    4096 Oct  9 00:48 d3cold_allowed\n-r--r--r-- 1 root root    4096 Oct  9 00:46 device\n-r--r--r-- 1 root root    4096 Oct  9 00:48 dma_mask_bits\nlrwxrwxrwx 1 root root       0 Oct  9 00:46 driver -> ../../../../bus/pci/drivers/igb\n-rw-r--r-- 1 root root    4096 Oct  9 00:48 driver_override\n-rw-r--r-- 1 root root    4096 Oct  9 00:48 enable\nlrwxrwxrwx 1 root root       0 Oct  9 00:48 firmware_node -> ../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:4b/device:4c\n-r--r--r-- 1 root root    4096 Oct  9 00:46 irq\n-r--r--r-- 1 root root    4096 Oct  9 00:48 local_cpulist\n-r--r--r-- 1 root root    4096 Oct  9 00:48 local_cpus\n-r--r--r-- 1 root root    4096 Oct  9 00:48 max_link_speed\n-r--r--r-- 1 root root    4096 Oct  9 00:48 max_link_width\n-r--r--r-- 1 root root    4096 Oct  9 00:48 modalias\n-rw-r--r-- 1 root root    4096 Oct  9 00:48 msi_bus\ndrwxr-xr-x 2 root root       0 Oct  9 00:48 msi_irqs\ndrwxr-xr-x 3 root root       0 Oct  9 00:46 net\n-rw-r--r-- 1 root root    4096 Oct  9 00:48 numa_node\ndrwxr-xr-x 2 root root       0 Oct  9 00:48 power\ndrwxr-xr-x 3 root root       0 Oct  9 00:46 ptp\n--w--w---- 1 root root    4096 Oct  9 00:48 remove\n--w--w---- 1 root root    4096 Oct  9 00:48 rescan\n--w------- 1 root root    4096 Oct  9 00:48 reset\n-r--r--r-- 1 root root    4096 Oct  9 00:46 resource\n-rw------- 1 root root  131072 Oct  9 00:48 resource0\n-rw------- 1 root root 4194304 Oct  9 00:48 resource1\n-rw------- 1 root root      32 Oct  9 00:48 resource2\n-rw------- 1 root root   16384 Oct  9 00:48 resource3\n-r--r--r-- 1 root root    4096 Oct  9 00:48 revision\n-rw-rw-r-- 1 root root    4096 Oct  9 00:48 sriov_drivers_autoprobe\n-rw-rw-r-- 1 root root    4096 Oct  9 00:48 sriov_numvfs\n-r--r--r-- 1 root root    4096 Oct  9 00:48 sriov_offset\n-r--r--r-- 1 root root    4096 Oct  9 00:48 sriov_stride\n-r--r--r-- 1 root root    4096 Oct  9 00:48 sriov_totalvfs\n-r--r--r-- 1 root root    4096 Oct  9 00:48 sriov_vf_device\nlrwxrwxrwx 1 root root       0 Oct  9 00:46 subsystem -> ../../../../bus/pci\n-r--r--r-- 1 root root    4096 Oct  9 00:48 subsystem_device\n-r--r--r-- 1 root root    4096 Oct  9 00:48 subsystem_vendor\n-rw-r--r-- 1 root root    4096 Oct  9 00:46 uevent\n-r--r--r-- 1 root root    4096 Oct  9 00:46 vendor\n$ cat /sys/bus/pci/devices/0000\\:03\\:00.0/sriov_offset\n128\n$ cat /sys/bus/pci/devices/0000\\:03\\:00.0/sriov_stride\n2\n$ cat /sys/bus/pci/devices/0000\\:03\\:00.0/sriov_vf_device \n10ca\n\nFilippo Sironi (1):\n  pci: Expose offset, stride, and VF device ID via sysfs\n\n drivers/pci/pci-sysfs.c | 33 +++++++++++++++++++++++++++++++++\n 1 file changed, 33 insertions(+)","headers":{"Return-Path":"<linux-pci-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=amazon.de header.i=@amazon.de\n\theader.b=\"mM1lYY3h\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y9Jwv4fkkz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon,  9 Oct 2017 10:09:35 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751489AbdJHXJd (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tSun, 8 Oct 2017 19:09:33 -0400","from smtp-fw-9101.amazon.com ([207.171.184.25]:17213 \"EHLO\n\tsmtp-fw-9101.amazon.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750820AbdJHXJd (ORCPT\n\t<rfc822;linux-pci@vger.kernel.org>); Sun, 8 Oct 2017 19:09:33 -0400","from sea3-co-svc-lb6-vlan3.sea.amazon.com (HELO\n\temail-inbound-relay-2c-579b7f5b.us-west-2.amazon.com)\n\t([10.47.22.38]) by smtp-border-fw-out-9101.sea19.amazon.com with\n\tESMTP/TLS/DHE-RSA-AES256-SHA; 08 Oct 2017 23:09:31 +0000","from uf8b156e456a5587c9af4.ant.amazon.com\n\t(pdx2-ws-svc-lb17-vlan2.amazon.com [10.247.140.66])\n\tby email-inbound-relay-2c-579b7f5b.us-west-2.amazon.com\n\t(8.14.7/8.14.7) with ESMTP id v98N9R6J115294\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);\n\tSun, 8 Oct 2017 23:09:28 GMT","from uf8b156e456a5587c9af4.ant.amazon.com (localhost [127.0.0.1])\n\tby uf8b156e456a5587c9af4.ant.amazon.com (8.15.2/8.15.2/Debian-3)\n\twith ESMTP id v98N9QMY016423; Mon, 9 Oct 2017 01:09:26 +0200","(from sironi@localhost)\n\tby uf8b156e456a5587c9af4.ant.amazon.com (8.15.2/8.15.2/Submit) id\n\tv98N9QSB016420; Mon, 9 Oct 2017 01:09:26 +0200"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209;\n\tt=1507504172; x=1539040172;\n\th=from:to:cc:subject:date:message-id:in-reply-to: references;\n\tbh=tGjyANwmh3CxoSAWhoi9aMQLQxwUD1TsDkitoe2ezzc=;\n\tb=mM1lYY3hjJ4OrqZfo5bdbuLKvEFMSG8iiMSFzkLQg8AT2yKMcXcLHMBf\n\tBvZ68iVRovXsQhKjZjIp22LLJzY1+k63EwPzEyPub4dKqjZ/QmwbWa+TV\n\thBKHgrMDfjWZhBDI0bW63CmMoq5p1lkwrPEn5V+A9jyd57eJl0CwxUsm3 g=;","X-IronPort-AV":"E=Sophos;i=\"5.42,497,1500940800\"; d=\"scan'208\";a=\"707477952\"","From":"Filippo Sironi <sironi@amazon.de>","To":"helgaas@kernel.org, linux-pci@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org","Cc":"Filippo Sironi <sironi@amazon.de>","Subject":"[PATCH v2] pci: Expose offset, stride, and VF device ID via sysfs","Date":"Mon,  9 Oct 2017 01:09:10 +0200","Message-Id":"<1507504151-16179-1-git-send-email-sironi@amazon.de>","X-Mailer":"git-send-email 2.7.4","In-Reply-To":"<1503927530-26076-1-git-send-email-sironi@amazon.de>","References":"<1503927530-26076-1-git-send-email-sironi@amazon.de>","Sender":"linux-pci-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-pci.vger.kernel.org>","X-Mailing-List":"linux-pci@vger.kernel.org"}}]