{"id":807997,"url":"http://patchwork.ozlabs.org/api/patches/807997/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20170831033412.1971-1-aik@ozlabs.ru/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/","list_archive_url":"https://lore.kernel.org/linuxppc-dev/","list_archive_url_format":"https://lore.kernel.org/linuxppc-dev/{}/","commit_url_format":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"},"msgid":"<20170831033412.1971-1-aik@ozlabs.ru>","list_archive_url":"https://lore.kernel.org/linuxppc-dev/20170831033412.1971-1-aik@ozlabs.ru/","date":"2017-08-31T03:34:12","name":"[kernel] powerpc/powernv: Update comment about shifting IOV BAR","commit_ref":null,"pull_url":null,"state":"superseded","archived":true,"hash":"ea03b75b0bb288d590121c24bbd2a79cc0f58000","submitter":{"id":7621,"url":"http://patchwork.ozlabs.org/api/people/7621/?format=json","name":"Alexey Kardashevskiy","email":"aik@ozlabs.ru"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20170831033412.1971-1-aik@ozlabs.ru/mbox/","series":[{"id":731,"url":"http://patchwork.ozlabs.org/api/series/731/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=731","date":"2017-08-31T03:34:12","name":"[kernel] powerpc/powernv: Update comment about shifting IOV BAR","version":1,"mbox":"http://patchwork.ozlabs.org/series/731/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/807997/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/807997/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xjSgd1nsSz9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 13:35:25 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xjSgc67z6zDqXv\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 13:35:24 +1000 (AEST)","from ozlabs.ru (ozlabs.ru [107.173.13.209])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xjSfL5V5WzDqF4\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 31 Aug 2017 13:34:18 +1000 (AEST)","from vpl1.ozlabs.ibm.com (localhost [IPv6:::1])\n\tby ozlabs.ru (Postfix) with ESMTP id 320673A60023;\n\tWed, 30 Aug 2017 23:35:23 -0400 (EDT)"],"From":"Alexey Kardashevskiy <aik@ozlabs.ru>","To":"Benjamin Herrenschmidt <benh@kernel.crashing.org>","Subject":"[PATCH kernel] powerpc/powernv: Update comment about shifting IOV\n\tBAR","Date":"Thu, 31 Aug 2017 13:34:12 +1000","Message-Id":"<20170831033412.1971-1-aik@ozlabs.ru>","X-Mailer":"git-send-email 2.11.0","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"Alexey Kardashevskiy <aik@ozlabs.ru>,\n\tAlistair Popple <alistair@popple.id.au>,\n\tBjorn Helgaas <helgaas@kernel.org>, \n\tshan.gavin@gmail.com, Paul Mackerras <paulus@samba.org>,\n\tlinuxppc-dev@lists.ozlabs.org, David Gibson <david@gibson.dropbear.id.au>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"},"content":"From: Benjamin Herrenschmidt <benh@kernel.crashing.org>\n\nFrom: Alexey Kardashevskiy <aik@ozlabs.ru>\n\nThis updates the comment about creating a hole in /proc/iomem which\nshould not be normally happening but it does in the powernv platform\ndue the way MMIO M64 BARs are organised in the IODA2-capable hardware.\n\nSigned-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>\n---\n\nIt has been mentioned multiple times (last one -\nhttps://www.spinics.net/lists/linux-pci/msg64084.html ) that the comment\nis not informative enough for people not particularly familiar with\nthe POWER8 IO hardware.\n\nThis attempt aims to:\n1. explain why we shift the resource\n2. explain why nothing can use that hole as a resource while it is \"free\"\n(I am not sure that this is the case actually)\n\nPlease comment, everyone, let's have this very well documented while\nI remember these bits :) Thanks.\n---\n arch/powerpc/platforms/powernv/pci-ioda.c | 10 +++++++---\n 1 file changed, 7 insertions(+), 3 deletions(-)","diff":"diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c\nindex 48de308224d6..c4a36ae78c95 100644\n--- a/arch/powerpc/platforms/powernv/pci-ioda.c\n+++ b/arch/powerpc/platforms/powernv/pci-ioda.c\n@@ -1002,9 +1002,13 @@ static int pnv_pci_vf_resource_shift(struct pci_dev *dev, int offset)\n \t}\n \n \t/*\n-\t * After doing so, there would be a \"hole\" in the /proc/iomem when\n-\t * offset is a positive value. It looks like the device return some\n-\t * mmio back to the system, which actually no one could use it.\n+\t * Since M64 BAR shares segments among all possible 256 PEs,\n+\t * we have to shift the beginning of PF IOV BAR to make it start from\n+\t * the segment which belongs to the PE number assigned to the first VF.\n+\t * This creates a \"hole\" in the /proc/iomem which could be used for\n+\t * allocating other resources, however this is not expected to happen\n+\t * on IODA as the only possibility would be a PCI hotplug and IODA\n+\t * hardware only allows it on a slot with dedicated PHB.\n \t */\n \tfor (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {\n \t\tres = &dev->resource[i + PCI_IOV_RESOURCES];\n","prefixes":["kernel"]}