From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0BH6-00050b-G8 for qemu-devel@nongnu.org; Wed, 03 Jun 2015 12:12:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z0BH2-0005Kg-Cq for qemu-devel@nongnu.org; Wed, 03 Jun 2015 12:12:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54336) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0BH2-0005KN-6P for qemu-devel@nongnu.org; Wed, 03 Jun 2015 12:12:12 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 6825FC9B26 for ; Wed, 3 Jun 2015 16:12:11 +0000 (UTC) Message-ID: <556F2757.20706@redhat.com> Date: Wed, 03 Jun 2015 18:12:07 +0200 From: Laszlo Ersek MIME-Version: 1.0 References: <1433244192-27624-1-git-send-email-marcel@redhat.com> In-Reply-To: <1433244192-27624-1-git-send-email-marcel@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V8 00/17] hw/pc: implement multiple primary busses for pc machines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcel Apfelbaum , qemu-devel@nongnu.org Cc: mst@redhat.com On 06/02/15 13:22, Marcel Apfelbaum wrote: > The series is fully functional. > - Limitations: > - Pxb's bus does not support hotplug. It will be addressed on top of this series > because is already getting to big. > - Pxb devices work only for i440fx and can be attached only to bus 0. > - You are more than welcome to try using: > -device pxb,id=pxb,bus_nr=4,numa_node=1 -device e1000,bus=pxb,addr=0x1 > > v7->v8: > - rebased on latest pci branch > - aml patches already taken > - added a fix for one of the aml patches > > v6->v7: > - This version includes some refactoring requested by Michael S. Tsirking, > but no new functionality: > - Removed TYPE_PCI_MAIN_HOST_BRIDGE interface and scan only pc/q35 host-bridges when > needed, see patch 11/24. > - Removed TYPE_PCI_HOST_BRIDGE_SNOOPED interface and added PXB buses as child buses > of i440fx. The pci configuration is changed to support PXBs, see patch 12/24. > - Removed patch "hw/pci: move pci bus related code to separate files" and refactor > all patches that touched the new file. > - Addressed Paolo's review: > - Changed documentation to always use numa policy "bind". > > v5->v6: > - This version includes a lot of refactoring requested by Michael S. Tsirking, > but no new/different functionality: > - Removed the HOST_BRIDGE_FOR_EACH loop because it too generic > - Reduced the generic "extra pci roots" aproach to a more "non-generic" > root bus having snooping buses listening to its configuration space. > Instead of going over all host bridges, we go only over the snooping > host bridges associated with the main host bridge. > - The current implementation made i440fx the only a "snooped" host bridge > - Addressed Michael S. Tsirkin's review: > - Replaced qmp queries with native pci ones. > - Squashed later patches into their places > - Tweaked a few comments > - Addressed Shannon Zhao's review: > - Used build_append_byte instead of build_append_int > - Addressed Gerd's review: > - Reduced the "Line over 80" warnings. > - Rebased on pci branch, tree: git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git > - a few days before, I hope is enough > - Changed some patches order > > v4->v5: > - Rebased on pci branch, tree: git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git > - Added PXB documentation (patch 28/28) > - Addressed Gerd Hoffmann's review: > - fix PXB behaviour if used with unsupported BIOS (patch 27/28) > - Addressed Michael S. Tsirkin's review: > - Removed assert in aml_index (patch 5/28) > - Renamed pci_ functions to crs_ (patch 12/28) > - used uint64_t variables instead of signed ones (patch 12/28) > - Emit MEM/IO AML only for PXBs and i440fx (patch 26/28) > - Addressed Shannon Zhao's review: > - Changed build_append_int to build_append_byte in aml_or (patch 2/25) > - Thanks to Igor and Kevin for reviews > > v3->v4: > - Addressed Michael S. Tsirkin's review: > - refactored build_prt method (patch 11/25) > hw/apci: add _PRT method for extra PCI root busses > - Addressed Igor Mammedov's reiew > - add assert to aml_index (patch 5/25) > - Fixed aml_equal implementation (patch 1/25) > > v2->v3: > - Rebased on Michael S. Tsirkin's pci branch (that includes now all the dependencies) > - Refactored acpi terms patch into multiple patches to match Igor's design. > > v1->v2: > - Add support for multiple pxb devices. > - Attach pxb's bus to specific NUMA node. > - Got rid of the hacks from prev version. > - Tested also for Win7 and Fedora 20, and for virtio blk devices. > - Several bug-fixes resulting in a stable version ready for submission. > > Reasoning: > We need multiple primary busess for a few reasons, the most important one > is to be able to associate a pass-trough device with a guest NUMA node. > The OS-es are able to associate a NUMA node only to a primary bus, not to > a specific PCI device or a pci-2-pci bridge. > PC machines support multiple NUMA nodes for CPUs and memory, however the IO > was not yet supported. > > > Marcel Apfelbaum (17): > acpi: add implementation of aml_while() term > hw/pci: made pci_bus_is_root a PCIBusClass method > hw/pci: made pci_bus_num a PCIBusClass method > hw/i386: query only for q35/pc when looking for pci host bridge > hw/pci: extend PCI config access to support devices behind PXB > hw/acpi: add support for i440fx 'snooping' root busses > hw/apci: add _PRT method for extra PCI root busses > hw/acpi: add _CRS method for extra root busses > hw/acpi: remove from root bus 0 the crs resources used by other buses. > hw/pci: removed 'rootbus nr is 0' assumption from qmp_pci_query > hw/pci: introduce PCI Expander Bridge (PXB) > hw/pci: inform bios if the system has extra pci root buses > hw/pxb: add map_irq func > hw/pci: add support for NUMA nodes > hw/pxb: add numa_node parameter > apci: fix PXB behaviour if used with unsupported BIOS > docs: Add PXB documentation > > docs/pci_expander_bridge.txt | 58 ++++++ > hw/acpi/aml-build.c | 8 + > hw/i386/acpi-build.c | 396 ++++++++++++++++++++++++++++++++++-- > hw/i386/pc.c | 20 ++ > hw/pci-bridge/Makefile.objs | 1 + > hw/pci-bridge/pci_expander_bridge.c | 231 +++++++++++++++++++++ > hw/pci/pci.c | 78 +++++-- > include/hw/pci/pci.h | 4 + > include/hw/pci/pci_bus.h | 10 + > include/sysemu/sysemu.h | 1 + > 10 files changed, 776 insertions(+), 31 deletions(-) > create mode 100644 docs/pci_expander_bridge.txt > create mode 100644 hw/pci-bridge/pci_expander_bridge.c > series Acked-by: Laszlo Ersek