All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Marcel Apfelbaum <marcel@redhat.com>, qemu-devel@nongnu.org
Cc: mst@redhat.com
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	[thread overview]
Message-ID: <556F2757.20706@redhat.com> (raw)
In-Reply-To: <1433244192-27624-1-git-send-email-marcel@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 <lersek@redhat.com>

      parent reply	other threads:[~2015-06-03 16:12 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-02 11:22 [Qemu-devel] [PATCH V8 00/17] hw/pc: implement multiple primary busses for pc machines Marcel Apfelbaum
2015-06-02 11:22 ` [Qemu-devel] [PATCH V8 01/17] acpi: add implementation of aml_while() term Marcel Apfelbaum
2015-06-02 11:22 ` [Qemu-devel] [PATCH V8 02/17] hw/pci: made pci_bus_is_root a PCIBusClass method Marcel Apfelbaum
2015-06-02 11:22 ` [Qemu-devel] [PATCH V8 03/17] hw/pci: made pci_bus_num " Marcel Apfelbaum
2015-06-02 11:22 ` [Qemu-devel] [PATCH V8 04/17] hw/i386: query only for q35/pc when looking for pci host bridge Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 05/17] hw/pci: extend PCI config access to support devices behind PXB Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 06/17] hw/acpi: add support for i440fx 'snooping' root busses Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 07/17] hw/apci: add _PRT method for extra PCI " Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 08/17] hw/acpi: add _CRS method for extra " Marcel Apfelbaum
2015-06-02 11:23 ` [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 11:23 ` [Qemu-devel] [PATCH V8 10/17] hw/pci: removed 'rootbus nr is 0' assumption from qmp_pci_query Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 11/17] hw/pci: introduce PCI Expander Bridge (PXB) Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 12/17] hw/pci: inform bios if the system has extra pci root buses Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 13/17] hw/pxb: add map_irq func Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 14/17] hw/pci: add support for NUMA nodes Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 15/17] hw/pxb: add numa_node parameter Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 16/17] apci: fix PXB behaviour if used with unsupported BIOS Marcel Apfelbaum
2015-06-02 11:23 ` [Qemu-devel] [PATCH V8 17/17] docs: Add PXB documentation Marcel Apfelbaum
2015-06-03 16:12 ` Laszlo Ersek [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=556F2757.20706@redhat.com \
    --to=lersek@redhat.com \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.