On Mon, Oct 03, 2016 at 02:32:01PM +0100, Daniel P. Berrange wrote:
On Mon, Oct 03, 2016 at 02:23:38PM +0100, Daniel P. Berrange wrote:
> On Mon, Oct 03, 2016 at 03:11:37PM +0200, Martin Kletzander wrote:
> > On Mon, Oct 03, 2016 at 03:02:38PM +0200, Peter Krempa wrote:
> > > On Mon, Oct 03, 2016 at 13:41:13 +0100, Daniel Berrange wrote:
> > > > The intel-iommu device has existed since QEMU 2.2.0, but
> > > > it was only possible to create it with -device since
> > > > QEMU 2.7.0, thanks to:
> > > >
> > > > commit 621d983a1f9051f4cfc3f402569b46b77d8449fc
> > > > Author: Marcel Apfelbaum <marcel(a)redhat.com>
> > > > Date: Mon Jun 27 18:38:34 2016 +0300
> > > >
> > > > hw/iommu: enable iommu with -device
> > > >
> > > > Use the standard '-device intel-iommu' to create the IOMMU
device.
> > > > The legacy '-machine,iommu=on' can still be used.
> > > >
> > > > The libvirt capability check & command line formatting code
> > > > is thus broken for all QEMU versions 2.2.0 -> 2.6.0 inclusive.
> > > >
> > > > This fixes it to use iommu=on instead.
> > > >
> > > > Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
> > > > ---
> > >
> > > Is there any value to make it work with older versions rather than just
> > > clearing it completely on the versions that don't support it with
> > > -device?
> > >
> >
> > I had one question as well. Are those invocations migration-compatible?
> > I can't try it right now, so I figured asking would be faster than
> > preparing two machines with different QEMU versions =) If they are not,
> > then I would just say clear it.
>
> Not sure, I'll investigate that.
The device is non-migratable
$ qemu-system-x86_64 -machine q35 -device intel-iommu -nodefaults -nodefconfig -S -monitor
stdio
QEMU 2.7.50 monitor - type 'help' for more information
(qemu) migrate "exec:dd of=machine.img"
State blocked by non-migratable device 'iommu-intel'
OK, then it's just a matter of deciding whether we allow the old
-machine iommu=on for older QEMU. Also we should disable the migration
of course, but that's not what you were trying to do in this patch, I know.