{"id":812297,"url":"http://patchwork.ozlabs.org/api/patches/812297/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/150512485953.8642.2754721062817370406.stgit@bahia.lan/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<150512485953.8642.2754721062817370406.stgit@bahia.lan>","list_archive_url":null,"date":"2017-09-11T10:14:19","name":"[2/2] spapr_pci: don't create 64-bit MMIO window if we don't need to","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c2e5163df24661f3ba9f9551c418b1b4abbd4789","submitter":{"id":69178,"url":"http://patchwork.ozlabs.org/api/people/69178/?format=json","name":"Greg Kurz","email":"groug@kaod.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/150512485953.8642.2754721062817370406.stgit@bahia.lan/mbox/","series":[{"id":2468,"url":"http://patchwork.ozlabs.org/api/series/2468/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2468","date":"2017-09-11T10:13:56","name":"spapr_pci: some more cleanup","version":1,"mbox":"http://patchwork.ozlabs.org/series/2468/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/812297/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/812297/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrP1w25zRz9s7f\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 11 Sep 2017 20:15:16 +1000 (AEST)","from localhost ([::1]:56505 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drLkI-0000ES-AY\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 06:15:14 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:57065)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1drLjW-0008V0-Mf\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 06:14:27 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1drLjT-0002lY-Hu\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 06:14:26 -0400","from 12.mo1.mail-out.ovh.net ([87.98.162.229]:44411)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <groug@kaod.org>) id 1drLjT-0002kZ-BP\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 06:14:23 -0400","from player169.ha.ovh.net (b9.ovh.net [213.186.33.59])\n\tby mo1.mail-out.ovh.net (Postfix) with ESMTP id F1EB99308D\n\tfor <qemu-devel@nongnu.org>; Mon, 11 Sep 2017 12:14:21 +0200 (CEST)","from bahia.lan (gar31-1-82-66-74-139.fbx.proxad.net [82.66.74.139])\n\t(Authenticated sender: groug@kaod.org)\n\tby player169.ha.ovh.net (Postfix) with ESMTPA id B9548580079;\n\tMon, 11 Sep 2017 12:14:19 +0200 (CEST)"],"From":"Greg Kurz <groug@kaod.org>","To":"qemu-devel@nongnu.org","Date":"Mon, 11 Sep 2017 12:14:19 +0200","Message-ID":"<150512485953.8642.2754721062817370406.stgit@bahia.lan>","In-Reply-To":"<150512483616.8642.15831240906912354238.stgit@bahia.lan>","References":"<150512483616.8642.15831240906912354238.stgit@bahia.lan>","User-Agent":"StGit/0.17.1-46-g6855-dirty","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","X-Ovh-Tracer-Id":"7060799793917761875","X-VR-SPAMSTATE":"OK","X-VR-SPAMSCORE":"-100","X-VR-SPAMCAUSE":"gggruggvucftvghtrhhoucdtuddrfeelledrgedtgddvjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"87.98.162.229","Subject":"[Qemu-devel] [PATCH 2/2] spapr_pci: don't create 64-bit MMIO window\n\tif we don't need to","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-ppc@nongnu.org, David Gibson <david@gibson.dropbear.id.au>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"When running a pseries-2.2 or older machine type, we get the following\nlines in info mtree:\n\naddress-space: memory\n...\nffffffffffffffff-ffffffffffffffff (prio 0, i/o): alias\n pci@800000020000000.mmio64-alias @pci@800000020000000.mmio\n  ffffffffffffffff-ffffffffffffffff\n\naddress-space: cpu-memory\n...\nffffffffffffffff-ffffffffffffffff (prio 0, i/o): alias\n pci@800000020000000.mmio64-alias @pci@800000020000000.mmio\n  ffffffffffffffff-ffffffffffffffff\n\nThe same thing occurs when running a pseries-2.7 with\n\n    -global spapr-pci-host-bridge.mem_win_size=2147483648\n\nThis happens because we always create a 64-bit MMIO window, even if\nwe didn't explicitely requested it (ie, mem64_win_size == 0) and the\n32-bit window is below 2GiB. It doesn't seem to have an impact on the\nguest though because spapr_populate_pci_dt() doesn't advertise the\nbogus windows when mem64_win_size == 0.\n\nSince these memory regions don't induce any state, we can safely\nchoose to not create them when their address is equal to -1,\nwithout breaking migration from existing setups.\n\nSigned-off-by: Greg Kurz <groug@kaod.org>\n---\n hw/ppc/spapr_pci.c |   20 +++++++++++++-------\n 1 file changed, 13 insertions(+), 7 deletions(-)","diff":"diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c\nindex 7d84b9766ed2..cf54160526fa 100644\n--- a/hw/ppc/spapr_pci.c\n+++ b/hw/ppc/spapr_pci.c\n@@ -1622,13 +1622,19 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp)\n     memory_region_add_subregion(get_system_memory(), sphb->mem_win_addr,\n                                 &sphb->mem32window);\n \n-    namebuf = g_strdup_printf(\"%s.mmio64-alias\", sphb->dtbusname);\n-    memory_region_init_alias(&sphb->mem64window, OBJECT(sphb),\n-                             namebuf, &sphb->memspace,\n-                             sphb->mem64_win_pciaddr, sphb->mem64_win_size);\n-    g_free(namebuf);\n-    memory_region_add_subregion(get_system_memory(), sphb->mem64_win_addr,\n-                                &sphb->mem64window);\n+    if (sphb->mem64_win_pciaddr != (hwaddr)-1) {\n+        namebuf = g_strdup_printf(\"%s.mmio64-alias\", sphb->dtbusname);\n+        memory_region_init_alias(&sphb->mem64window, OBJECT(sphb),\n+                                 namebuf, &sphb->memspace,\n+                                 sphb->mem64_win_pciaddr, sphb->mem64_win_size);\n+        g_free(namebuf);\n+\n+        if (sphb->mem64_win_addr != (hwaddr)-1) {\n+            memory_region_add_subregion(get_system_memory(),\n+                                        sphb->mem64_win_addr,\n+                                        &sphb->mem64window);\n+        }\n+    }\n \n     /* Initialize IO regions */\n     namebuf = g_strdup_printf(\"%s.io\", sphb->dtbusname);\n","prefixes":["2/2"]}