I don’t think having a spice controller and video device is what the problem is. I have both in my machine along side my passed through gpu. I leave them attached for troubleshooting purposes. Sometimes I can only upgrade my gpu driver in my VM if I install via a qxl monitor. Because while installing the driver it will blank my hardware monitor and it won’t come back and I have to continue the install via the qxl/software monitor and reboot the machine.
Though it may be because the video model is using virtio
It certainly won’t hurt to remove them to help narrow down the issue. If it’s not staying deleted when you apply the changes it usually means something else relies on it. Try to delete the “hardware” from the virt-manager gui list, it will often tell you what the issue is or what’s preventing you from removing the device.
From what I see there are several related sections:
remove:
<channel type="spicevmc">
<target type="virtio" name="com.redhat.spice.0"/>
<address type="virtio-serial" controller="0" bus="0" port="1"/>
</channel>
remove:
<graphics type="spice">
<listen type="none"/>
<image compression="off"/>
<gl enable="no"/>
</graphics>
change:
<video>
<model type="virtio" heads="1" primary="yes"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
to:
<video>
<model type="none"/>
</video>
remove:
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="2"/>
</redirdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="3"/>
</redirdev>
change:
<input type="mouse" bus="usb">
<address type="usb" bus="0" port="4"/>
</input>
to: (use ls -l /dev/input/by-id
to find mouse and keyboard ID to replace appropriate spot.)
<input type="evdev">
<source dev="/dev/input/by-id/MOUSE_ID"/>
</input>
<input type="evdev">
<source dev="/dev/input/by-id/KEYBOARD_ID" grab="all" repeat="on"/>
</input>
(With evdev use LCTRL+RCTRL to swap mouse&keyboard between host&guest)
Unrelated:
@ajgringo619 What’s the point of setting those hyperv flags when you disable it? Typically disabling hypervisor reduces performance. Another potential performance killer is the shared mem, you should remove <source type='memfd'/> <access mode='shared'/>
unless you have a specific reason for it.
@ajgringo619 and @Zer0sVoid I see you both have memballoon enabled, it’s another performance killer unless you have a specific reason for it you should turn it off <memballoon model='none'/>
@Zer0sVoid topoext is important for the guest to recognize hyperthreading you should specify it under the cpu mode
with <feature policy='require' name='topoext'/>
. You also need to change the namespace at the very top <domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
Finally, you can get more assistance at the discord group: https://www.reddit.com/r/VFIO/comments/5b5znr/click_here_to_join_the_vfio_discord_server/