[Added Laine to CC, fixed qemu-devel address]
On Thu, 2017-01-05 at 16:46 +1100, David Gibson wrote:
[...]
* To allow for hotplugged devices, libvirt should also add a
number
of additional, empty vPHBs (the PAPR spec allows for hotplug of
PHBs, but this is not yet implemented in qemu).
"A number" here will have to mean "one", same number of
empty PCIe Root Ports libvirt will add to a newly-defined
q35 guest.
When hotplugging
a new device (or PE) libvirt should locate a vPHB which doesn't
currently contain anything.
This will need to be a PHB-specific behavior, because at the
moment libvirt will happily pick one of the empty slots in
an existing PHB.
* libvirt should only (automatically) add PHBs - never root ports
or
other PCI to PCI bridges
In order to handle migration, the vPHBs will need to be represented in
the domain XML, which will also allow the user to override this
topology if they want.
We'll have to decide how to represent them in the XML, but
that's basically your average bikeshedding.
Overall, the plan seems entirely reasonable to me.
It's pretty clear at this point that pseries guest are
different enough in their handling of PCI that none of
the address allocation algorithms currently implemented
in libvirt could be quite adapted to work with it, so
a custom one is in order.
--
Andrea Bolognani / Red Hat / Virtualization