[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