[libvirt] [PATCH 00/10] conf: Clean up virDomain*Def creation

Andrea Bolognani abologna at redhat.com
Fri Jun 30 08:48:36 UTC 2017

On Thu, 2017-06-29 at 20:03 +0200, Andrea Bolognani wrote:
> This series is required to solve a known limitation in the
> current incarnation of device isolation support[1], namely
> the inability to isolate host devices coming from IOMMU
> group 0.
> The issue lies in the fact that virDomainDeviceInfo, and
> all virDomain*Def that embed it, are usually allocated
> through VIR_ALLOC(), which result in all their fields being
> initialized to zero.
> That's worked out just fine so far, because zero was a
> sensible default value for all existing fields; however,
> when implementing isolation groups, we add a new
> virDomainDeviceInfo::isolationGroup field which we need
> to be initialized to -1 instead so that it doesn't overlap
> with IOMMU group 0 mentioned above.

Or we could just, you know, do the sensible thing and
store (IOMMU group + 1) instead of (IOMMU group) in
virDomainDeviceInfo::isolationGroup and avoid the issue
altogether? I'm actually quite embarassed I didn't think
of that earlier :/

> Solving the issue involves creating twenty or so
> virDomain*DefNew() functions and using them instead of
> VIR_ALLOC() every time a virDomain*Def needs to be created,
> which is arguably a pretty good idea regardless.

We could still merge this series, though, or at least
parts of it. It improves upon some questionable code.

Andrea Bolognani / Red Hat / Virtualization

More information about the libvir-list mailing list