I think I've read about this on this mailing list, because when playing
Crysis 3, my VM kept crashing (more precise: the game didn't even
start), until I set 'options kvm ignore_msrs=1' in modprobe.d .conf file.
When switching to Win8, will the performance be better?
Thanks,
Marius
Am 06.01.2017 um 14:52 schrieb Quentin Deldycke:
For adding a bit on this subjects, some games (blizzard games, tomb
raider at it's launch) use a lot of msrs during run.
It seems this is made for their anti-cheat / hack systems.
Heroes of the storm, SC2 are spamming these msrs. This reduce
performance quite hardly.
Funny thing: This "bug" does not apply to win8 / win7 :)
For reference we spoke about such in this thread a long time ago:
https://www.redhat.com/archives/vfio-users/2016-May/msg00134.html
The kernel spam of such error at Heroes of the storm login screen:
[136995.284205] kvm [6799]: vcpu2, guest rIP: 0xfffff8016e757733
kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
[136995.284217] kvm [6799]: vcpu2, guest rIP: 0xfffff8016e757733
kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
[137000.285330] kvm_get_msr_common: 302015 callbacks suppressed
[137000.285337] kvm [6799]: vcpu5, guest rIP: 0xfffff8016e75779c
ignored rdmsr: 0x1c9
[137000.285342] kvm [6799]: vcpu5, guest rIP: 0xfffff8016e7577aa
ignored rdmsr: 0x680
[137000.285344] kvm [6799]: vcpu5, guest rIP: 0xfffff8016e7577c1
ignored rdmsr: 0x6c0
--
Deldycke Quentin
On 6 January 2017 at 14:07, Thomas Lindroth <thomas.lindr...@gmail.com
<mailto:thomas.lindr...@gmail.com>> wrote:
On 01/06/2017 01:00 PM, Marius Steffen wrote:
> Is there anything I can do to a) find the cause of this bad performance
> b) make my VM perform better?
One thing you can try is to run the game with poor performance and
at the
same time run "perf kvm --host stat live" on the host. This will
show how
many VM-EXIT kvm performs. VM-EXIT means the guest has done
something the
hardware virtualisation can't handle, like accessing MSR or
virtual IO.
Some workloads will perform badly because they cause a lot of VM-EXIT.
Perf will tell you why a VM-EXIT was performed. The more common
causes are
IO_INSTRUCTION and EPT_MISCONFIG. IO_INSTRUCTION means the guest
tried to
access an x86 ioport and EPT_MISCONFIG seems to be an odd name for
access
to memory mapped io. Sometimes a lot of time is spent in HLT but
that's
normal. It only means the guest OS has nothing to do and goes idle.
By running "perf kvm --host stat live --event=ioport" you can
check which
ioport is accessed and "perf kvm --host stat live --event=mmio" shows
which address was accessed for memory mapped io.
If you see that an mmio address is accessed a lot and want to find
out what
it is you can run "virsh qemu-monitor-command <nameofvm> --hmp
'info mtree'"
to get a list of the memory layout of the VM. Unfortunately I
don't know
of any way to get a similar list of ioports.
As an example on my system some games like Rise of the Tomb Raider and
Assassin's Creed Unity will access ioport 0xb008 more than 200,000
times/sec
and those games will have poor performance compared to native. Qemu
hardcode the acpi timer to ioport 0xb008 and those games
excessively read
the hardware timer. I haven't figured out any way to work around
the problem
but I run games with vsync on and even with the decreased
performance I get
60fps in those titles.
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com <mailto:vfio-users@redhat.com>
https://www.redhat.com/mailman/listinfo/vfio-users
<https://www.redhat.com/mailman/listinfo/vfio-users>
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users