[vfio-users] Switching to Q35

Patrick O'Callaghan poc at usb.ve
Fri Jan 4 12:01:59 UTC 2019


On Sun, 2018-12-30 at 13:13 +0000, Patrick O'Callaghan wrote:
> On Sat, 2018-12-29 at 08:31 -0700, Alex Williamson wrote:
> > On Sat, 29 Dec 2018 11:51:57 +0000
> > "Patrick O'Callaghan" <poc at usb.ve> wrote:
> > 
> > > I'm interested in switching to Q35 but it isn't entirely trivial.
> > > Simply editing the machine-type line in the XML file doesn't do it:
> > > 
> > > If I change:
> > > 
> > >    <type arch='x86_64' machine='pc-i440fx-3.0'>hvm</type>
> > > 
> > > to:
> > > 
> > >    <type arch='x86_64' machine='Q35'>hvm</type>
> > > 
> > > I get:
> > > 
> > >    Error: unsupported configuration: IDE controllers are unsupported
> > > for this QEMU binary or machine type
> > > 
> > > I created the VM using Virtual Machine Manager under Fedora over a year
> > > ago, so most of the settings were defaults at the time. Is there a
> > > Dummy's Guide to changing this, or would it be easier to just create a
> > > new VM (keeping the existing storage of course)? The man pages are
> > > pretty unhelpful.
> > 
> > Use virtual machine manager again to create a Q35 VM and re-use your
> > disk image.  Note that this is the same as moving your disk from one
> > machine to another with potentially different disk and network
> > controllers.  If you're using virtio for both, you're probably fine
> > otherwise you might need to go back to the 440fx machine type and
> > install extra drivers to make it work.  Also be sure to maintain the
> > same firmware type in the VM, SeaBIOS or OVMF.  Switching between the
> > two for an existing VM image is non-trivial.  Thanks,
> 
> Thanks Alex. I use virtio and OVMF so hopefully it should be
> straightforward. I have a separate physical drive for this VM, so under
> 'storage' in VMM I gave the full drive rather than a partition. However
> I immediately ran into this bug:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1644848
> 
> The suggested fix is to delete .osxsave from the XML, but there is no
> such string in the file.

I found it in /usr/share/libvirt/cpu_map/x86_features.xml but am now
getting an internal error from libvirt when trying to create the VM.
I'll attach it here in case I'm missing something obvious. Otherwise
I'll report it to BZ.

poc
-------------- next part --------------
Unable to complete install: 'internal error: process exited while connecting to monitor: mouse,id=input1,bus=usb.0,port=3 -device virtio-keyboard-pci,id=input2,bus=pci.10,addr=0x0 -spice port=5901,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 -device intel-hda,id=sound0,bus=pci.3,addr=0x1 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=4 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=5 -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.7,addr=0x0 -device vfio-pci,host=01:00.1,id=hostdev1,bus=pci.8,addr=0x0 -device usb-host,hostbus=1,hostaddr=5,id=hostdev2,bus=usb.0,port=1 -device virtio-balloon-pci,id=balloon0,bus=pci.9,addr=0x0 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=o'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 2559, in _do_async_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 465, in start_install
    doboot, transient)
  File "/usr/share/virt-manager/virtinst/guest.py", line 401, in _create_guest
    domain = self.conn.createXML(install_xml or final_xml, 0)
  File "/usr/lib64/python3.7/site-packages/libvirt.py", line 3718, in createXML
    if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirt.libvirtError: internal error: process exited while connecting to monitor: mouse,id=input1,bus=usb.0,port=3 -device virtio-keyboard-pci,id=input2,bus=pci.10,addr=0x0 -spice port=5901,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 -device intel-hda,id=sound0,bus=pci.3,addr=0x1 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=4 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=5 -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.7,addr=0x0 -device vfio-pci,host=01:00.1,id=hostdev1,bus=pci.8,addr=0x0 -device usb-host,hostbus=1,hostaddr=5,id=hostdev2,bus=usb.0,port=1 -device virtio-balloon-pci,id=balloon0,bus=pci.9,addr=0x0 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=o


More information about the vfio-users mailing list