FSX is the game that I play the most in my Xen gaming setup. So after upgrading to Xen 4.5, I was completely bummed that FSX started stuttering and became unplayable. It wasn’t that my frame rates were low, but more like the simulation would cut out frequently.
Unfortunately, I didn’t just upgrade Xen, so I couldn’t make a direct cause-effect link. I also increased the available RAM pool and upgraded my AMD Catalyst driver. But I knew that Xen changed schedulers and the Xen wiki indicates that Hyperthreading might cause problems.
I already knew that FSX is very finicky; apparently it’s a 32-bit program and can only take advantage of 2GB memory, and apparently doesn’t handle multiple cores or hyper threading very well. It also doesn’t play well with AMD video cards.
I used this guide form help with FSX settings: https://kostasfsworld.wordpress.com/fsx-software-and-hardware-guide/
After experimenting with schedulers and Dom0 and DomU priorities to no avail, I reduced my DomU vcpu count to 2, and that fixed things.
Mystified, I ran the following experiment varying domU VCPUs, hyperthreading, and the AffinityMask setting in my fsx.cfg. I qualitatively measured my FSX results as either “Good” or “Bad”, since there was no middle ground, and I used the PassMark CPU benchmark as a second point of comparison. Here are my results:
|DomU VCPUs||Hyperthreading||FSX AffinityMask||FSX Performance||CPU PassMark|
So in conclusion, I decided to go with 4 cores and AffinityMask of 84, since I want hyper threading to be on.
There are still two open mysteries, in my opinion:
- The data indicates that Xen had nothing to do with my poor FSX performance… but my gut tells me Xen has something to do with it, since I see some weird things. For example: changing the number of VCPUs influences windows boot time. During windows boot, qemu uses 99% CPU on one core on dom0. Also, I can’t consistently get windows to boot with 8 cores; only 4 cores are recognized,and the other 4 are paused.
- When I run FSX, task manager shows all of the CPU load on only one core. I don’t really understand this, but I didn’t bother to follow up since FSX now runs perfectly for me.