lolhaha
Enthusiast
Enthusiast

VMPlayer behaves like a jealous child

VMPlayer is very frustrating because whenever any other process on the host increases the CPU load, VMPlayer (vmware-vmx.exe) immediately spikes to match it. It is like a jealous child jumping up and down screaming look at me, look at me!

Here’s some observations:

  • The guest’s CPU load spikes whenever this occurs
  • This happens regardless of the guest’s previous CPU load (it happens even if the guest was completely idle at ~1%)
  • This happens in Unity mode and non-Unity mode alike
  • The guest’s CPU load returns to normal once the host’s CPU load returns to normal (e.g., the spiking process ends)
  • Altering the affinity of the spiking process on the host and/or vmware-vmx.exe can cause the load on the guest system to drop, but vmware-vmx.exe remains high on the host
  • (I haven’t tested, but I’m sure that if multiple guests were running and one did something to use the CPU, then all of the others would spike to match.)

This is very annoying because it renders VMPlayer useless in many cases since the host system can no longer be used for any tasks that put a load on the CPU because then VMPlayer’s load jumps to match which reduces the host’s CPU to half—for no reason.

This is a pretty critical bug that needs to be fixed.

0 Kudos
4 Replies
lolhaha
Enthusiast
Enthusiast

The problem seems to be a defect in the vmx86.sys driver. You can see this in the Task Manager when the show-kernel-times option is checked because VMPlayer spikes the red line. If you then use Process Explorer or something to view vmxware-vmx.exe’s stack, you’ll see the driver in the call-stack, and if you suspend that thread, the red-line in Task Manager drops back to normal and the CPU cycles go to the other CPU-intensive process.

Using Process Explorer to suspend one of VMPlayer’s threads just so that it doesn’t hog (waste!) CPU cycles for nothing is really annoying and obviously no good since the VM gets frozen until you un-pause the thread.

This bug definitely needs to be fixed (or even acknowledged).

0 Kudos
admin
Immortal
Immortal

From the host's perspective, all time spent in the virtual machine monitor and the guest is spent in vmx86.sys.

Can you provide more details on how to reproduce this behavior? 

Please upload the vmware.log file for the guest (as an attachment).

0 Kudos
lolhaha
Enthusiast
Enthusiast

To reproduce, just run a VM (I run XP), then run a process on the host that uses a lot of CPU (like a game or something). The VM’s process will spike in CPU load to match that of the other process. If you then end the other process, the VM’s process will drop back down to normal. Repeat as necessary until link proven.

0 Kudos
admin
Immortal
Immortal

I don't see the behavior you describe...

TM.jpg

Perhaps there is some other factor involved in reproducing this?

0 Kudos