[libvirt] [PATCH 4/4] conf: permit auto-assignment of controller indexes

Cole Robinson crobinso at redhat.com
Sun May 15 18:38:13 UTC 2016

On 05/15/2016 02:30 PM, Laine Stump wrote:
> On 05/14/2016 10:56 AM, Cole Robinson wrote:
>> I agree with the goal of the patch, but I think all the index assignment code
>> should be moved to somewhere in the PostParse call path. The fact that the
>> controller ParseXML now needs to act on the entire domain def is a giveaway
>> that it's in the wrong place.
> I originally did it that way, but there was some problem with it, either
> actual or imagined/potential. I *think* possibly the problem was that
> auto-added controllers (which is done in the driver-specific postparse, called
> prior to the common postparse) are added when an existing controller of the
> desired index can't be found, but if an index was added in postparse, I would
> want it to be done in the common postparse (since it is a requirement for
> *all* drivers);

Hmm. Most implicit controllers are added in common code actually, however
there are some added in qemu code it seems, for PCI, which is probably what
you were referring to. In that case we may need to do two passes of index
assignment, or when adding a PCI controller outside common code we just
informally require the hv driver to assign the index themselves.

Unfortunately these types of ordering problems are basically unavoidable in
certain cases... there's no one size fits all ordering for validation, setting
defaults, adding default devices, and assigning addresses.

also is the potential problem that PCI controller indexes must
> be in place in order for the PCI address auto-assignment to work, and you had
> previously expressed a desire to move that up into one of the postparse
> functions rather than having it be a separate function that must be
> independently called - if that happened, it would also be done in the
> driver-specific postparse.

I posted patches yesterday adding address assignment to PostParse, but it
comes at the very end of the common PostParse usage, to match how
qemuDomainAssignAddresses is presently used. So at least that bit shouldn't
interfere with index assignment in generic code

- Cole

More information about the libvir-list mailing list