Laggy Windows 7 VM

Can anyone help point me in the right direction?

I currently have 2 VM’s setup on my arch desktop. One is windows 10, one is windows 7.

The spice interface is very laggy in windows 7 only; and pretty buttery smooth in windows 10, even though they are both pretty much identical XML files.

I did notice that it appears worse when there is a larger amount of things on screen (Such as opening a .net project; the lag gets significantly worse) so thought perhaps this was due to Win7 Ryzen compatability. I tried to follow guide to use a piece of software called ppmpanel to alter the power settings hidden in windows (apparently performance increases for Ryzen, though it had no effect & not really meant for VM’s)

I am using a Ryzen 1700x, and installed all virtio drivers, spice drivers, guest tools on both VM’s.

Any help much appreciated, XML below

<domain type="kvm">
  <name>win7-work</name>
  <uuid>d77704e3-1169-4af2-b053-962043f66010</uuid>
  <memory unit="KiB">8192000</memory>
  <currentMemory unit="KiB">8192000</currentMemory>
  <vcpu placement="static">8</vcpu>
  <iothreads>4</iothreads>
  <os>
    <type arch="x86_64" machine="pc-i440fx-4.2">hvm</type>
    <bootmenu enable="no"/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
      <vpindex state="on"/>
      <runtime state="on"/>
      <synic state="on"/>
      <stimer state="on"/>
      <reset state="on"/>
      <vendor_id state="on" value="other"/>
      <frequencies state="on"/>
      <reenlightenment state="on"/>
      <tlbflush state="on"/>
      <ipi state="off"/>
      <evmcs state="off"/>
    </hyperv>
    <vmport state="off"/>
    <ioapic driver="kvm"/>
  </features>
  <cpu mode="host-passthrough" check="none"/>
  <clock offset="utc">
    <timer name="hypervclock" present="yes"/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="raw" cache="none" io="native"/>
      <source file="/home/sarutael/Desktop/W7.raw"/>
      <target dev="vda" bus="virtio"/>
      <boot order="1"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
    </disk>
    <controller type="pci" index="0" model="pci-root"/>
    <controller type="virtio-serial" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0"/>
    </controller>
    <controller type="usb" index="0" model="ich9-ehci1">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
    </controller>
    <controller type="usb" index="0" model="ich9-uhci1">
      <master startport="0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    </controller>
    <controller type="usb" index="0" model="ich9-uhci2">
      <master startport="2"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
    </controller>
    <controller type="usb" index="0" model="ich9-uhci3">
      <master startport="4"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
    </controller>
    <controller type="sata" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x09" function="0x0"/>
    </controller>
    <interface type="direct">
      <mac address="00:50:56:3e:7d:1c"/>
      <source dev="enp6s0f0" mode="bridge"/>
      <model type="virtio"/>
      <link state="up"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x08" function="0x0"/>
    </interface>
    <channel type="spicevmc">
      <target type="virtio" name="com.redhat.spice.0"/>
      <address type="virtio-serial" controller="0" bus="0" port="1"/>
    </channel>
    <input type="tablet" bus="usb">
      <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <graphics type="spice" autoport="yes">
      <listen type="address"/>
      <image compression="off"/>
      <gl enable="no" rendernode="/dev/dri/by-path/pci-0000:0b:00.0-render"/>
    </graphics>
    <sound model="ich6">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>
    </sound>
    <video>
      <model type="qxl" ram="65536" vram="65536" vgamem="65536" heads="1" primary="yes"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/>
    </video>
    <redirdev bus="usb" type="spicevmc">
      <address type="usb" bus="0" port="2"/>
    </redirdev>
    <memballoon model="virtio">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x07" function="0x0"/>
    </memballoon>
  </devices>
</domain>

Have you tried a different display viewing interface, to make sure it’s spice and not windows itself?

If you have pro, try rdp to see if it still causes issues.

I have tried RDP and it seems much better to be fair; however there is certain applications that will not work if windows detects it is under RDP

I wasn’t suggesting a complete replacement, just to try to isolate the issue. Since the issue isn’t present with RDP, we can be more confident that spice is the culprit.

Now, I’m not super knowledgeable about the inner workings of spice, but if you give me some time to do some research, I’ll see if I can find anything to help you.

Appreciate the help, thank you.

That was my initial thought as well, given the good performance in RDP, however I wasn’t certain how that would present itself differently from W7 >W10. I was however around for all the problems with Ryzen originally when it came out; so thought perhaps it was due to that in some way

All that being said; CPU speed as far I’ve seen (Virus scanning etc) are actually very good in the W7

Unsure if you managed to find anything, but I did try a few things with no success.

Tried older versions of both Virtio drivers and previous versions of spice tools, without success. I did notice that QXL drivers changed from QXL > QXL-WDDM-DOD for windows 10? Perhaps with performance increases?

I have also tried a few others bits and found that at very low resolutions the performance is increased; and that VGA appears to be significantly smoother than QXL; though with it’s own set of problems