[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V8 00/17] hw/pc: implement multiple primary buss
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH V8 00/17] hw/pc: implement multiple primary busses for pc machines |
Date: |
Wed, 03 Jun 2015 18:12:07 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
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 <address@hidden>
- [Qemu-devel] [PATCH V8 08/17] hw/acpi: add _CRS method for extra root busses, (continued)
- [Qemu-devel] [PATCH V8 08/17] hw/acpi: add _CRS method for extra root busses, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 10/17] hw/pci: removed 'rootbus nr is 0' assumption from qmp_pci_query, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 09/17] hw/acpi: remove from root bus 0 the crs resources used by other buses., Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 12/17] hw/pci: inform bios if the system has extra pci root buses, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 13/17] hw/pxb: add map_irq func, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 11/17] hw/pci: introduce PCI Expander Bridge (PXB), Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 14/17] hw/pci: add support for NUMA nodes, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 15/17] hw/pxb: add numa_node parameter, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 16/17] apci: fix PXB behaviour if used with unsupported BIOS, Marcel Apfelbaum, 2015/06/02
- [Qemu-devel] [PATCH V8 17/17] docs: Add PXB documentation, Marcel Apfelbaum, 2015/06/02
- Re: [Qemu-devel] [PATCH V8 00/17] hw/pc: implement multiple primary busses for pc machines,
Laszlo Ersek <=