Flight Simulator X: Steam Edition w/ Xen 4.5, an i7-4770 CPU and AMD R9 270X

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 VCPUsHyperthreadingFSX AffinityMaskFSX PerformanceCPU PassMark
2Off14Good4510
4Off14Bad7024
2On14Good4528
4On14Bad6884
4On15Bad6884
4On84Good6884
8On14BadNo data

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:

  1. 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.
  2. 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.