qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [0/10] Clean up PCI code to allow for multiple root buses (v2)
@ 2013-06-06  8:48 David Gibson
  2013-06-06  8:48 ` [Qemu-devel] [PATCH 01/10] pci: Cleanup configuration for pci-hotplug.c David Gibson
                   ` (11 more replies)
  0 siblings, 12 replies; 18+ messages in thread
From: David Gibson @ 2013-06-06  8:48 UTC (permalink / raw)
  To: aliguori, mst; +Cc: bonzini, qemu-devel

The current PCI subsystem has kind of half-hearted support for
multiple independent root buses - aka PCI domains - in the form of the
PCIHostBus structure and its domain field.  However, it doesn't quite
work because pci_host_bus_register() is always called with a domain of
0.

Worse, though, the whole concept of numbered domains isn't general
enough.  Many platforms can have independent root buses (usually on
wholly independent host bridges), but only x86 gives them a
hardware-significant domain number, essentially as a hack to allow all
the separate config spaces to be accessed via the same IO ports.
Linux guests on other platforms will show domain numbers in lspci, but
these are purely guest assigned, so qemu won't know about them.

This patch series, therefore, removes the broken-as-is domain concept
from qemu, and replaces it with a different way of handling multiple
root buses, based on a host bridge class method to provide a
identifier for the root bus.  This hook is designed in such a way as
to allow a single bridge object to support mutiple root buses with
future changes, which will allow future implementations of x86 north
bridges with multiple domains to be supported correctly, and in way
that matches the existing practice for all external interfaces.

v2:
  * Rework concept of "primary" bus in response to Michael Tsirkin's
    comments.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-06-17 21:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-06  8:48 [Qemu-devel] [0/10] Clean up PCI code to allow for multiple root buses (v2) David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 01/10] pci: Cleanup configuration for pci-hotplug.c David Gibson
2013-06-06  9:57   ` Michael S. Tsirkin
2013-06-06  8:48 ` [Qemu-devel] [PATCH 02/10] pci: Move pci_read_devaddr to pci-hotplug-old.c David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 03/10] pci: Abolish pci_find_root_bus() David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 04/10] pci: Use helper to find device's root bus in pci_find_domain() David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 05/10] pci: Replace pci_find_domain() with more general pci_root_bus_path() David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 06/10] pci: Add root bus argument to pci_get_bus_devfn() David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 07/10] pci: Add root bus parameter to pci_nic_init() David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 08/10] pci: Simpler implementation of primary PCI bus David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 09/10] pci: Remove domain from PCIHostBus David Gibson
2013-06-06  8:48 ` [Qemu-devel] [PATCH 10/10] pci: Fold host_buses list into PCIHostState functionality David Gibson
2013-06-06 10:01 ` [Qemu-devel] [0/10] Clean up PCI code to allow for multiple root buses (v2) Michael S. Tsirkin
2013-06-06 15:04   ` Anthony Liguori
2013-06-07  0:45     ` David Gibson
2013-06-12  7:18   ` Alexey Kardashevskiy
2013-06-12 19:14     ` Michael S. Tsirkin
2013-06-17 21:37 ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).