[vfio-users] BSOD occuring with 1 game in VM

Abdulla Bubshait darkstego at gmail.com
Sat May 14 01:20:59 UTC 2016


So for the people having problem with Heroes of the Storm or
StarCraft2 on Windows 10,
here is what I have been able to piece together.

Those two games use a ton of branch tracing code. Specifically, they
enable and access
LBR registers (part of the Intel MSRs). The windows 10 code portion
for these games
seems to include a ton of LBR reads. Since these branch traces are
mainly for code
debugging purposes I personally believe that they were used to debug
win10 code for
these games and were forgotten. LBRs themselves don't hurt performance
much, although
having all those needless register reads can't be that beneficial.

KVM does not support LBR. So without the ignore_msrs the game would
just crash. But
even if KVM simply returned 0 that is still a relatively expensive
process when compared
to a simple register read in native. Even if KVM were to implement LBR
that would only
make things worse because any implementation would cost more than a
simple return 0.

With my limited knowledge of how KVM works I do not see how one can make a host
respond to guests hammering LBR requests without taking a performance
hit, even if
they don't give the correct response.

So it seems the only way to fix this performance issue is to have
Blizzard take out the
offending code in an upcoming patch. I feel the code was left in there
in error as at the
end of the day it's main purpose is debugging and shouldn't be active
in a game where
performance really matters. The question is how likely it is that
Blizzard will actually fix
this problem seeing as it really effects only a tiny subset of their user base.

I really wish I had a proper fix to the problem, but it seems that
getting these games to
run in VM preperly means avoiding win10.




More information about the vfio-users mailing list