On Fri, Jan 06, 2017 at 06:34:29PM +0100, Andrea Bolognani wrote:
[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.
Umm.. why?
> 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.
Exactly. Well, whether it's PHB model specific or machine type
specific is up to you really. We can only have PAPR PHBs on a PAPR
machine type, so it's kind of arbitrary.
> * 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.
Right. Maybe we'd best get started with it, in the hopes of finishing
it in the forseeable future.
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.
Yes, that was my conclusion as well.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson