I recently created a Windows VM for gaming in Linux. I’ve fixed most of the problems but one area where I think there could be an issue is CPU performance. I have an i7 8700 and ran cinebench r20 in the VM and got a single core score slightly above an R7 1700 which seemed very low for this CPU. I then tested the CPU again in Windows on baremetal and the exact scores I got are:
VM - Cinebench
CPU: 2391
CPU (Single Core): 393
BM - Cinebench
CPU: 2703
CPU (Single Core): 446
The CPU multi-core score seems reasonable considering that I’m only using 5C/10T in the VM and the lower single core score. However the single core score itself is ~13.5% faster on bare metal than in the VM, I was expecting a performance drop of 10% at the worst going from bare metal to VM. Is this normal? Is there anything I can do to improve the performance in my VM? I have copied the CPU related data in the XML document for my VM in virt-manager below, thanks in advance for any help you can give me:
<vcpu placement="static">10</vcpu>
<os>
<type arch="x86_64" machine="pc-q35-4.2">hvm</type>
<loader readonly="yes" type="pflash">/usr/share/ovmf/x64/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/Win10_VARS.fd</nvram>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
<vendor_id state="on" value="GenuineIntel"/>
</hyperv>
<kvm>
<hidden state="on"/>
</kvm>
<vmport state="off"/>
<ioapic driver="kvm"/>
</features>
<cpu mode="host-model" check="partial">
<topology sockets="1" cores="5" threads="2"/>
</cpu>