Hello, I'm running a Windows XP guest under a Windows XP host. Sometimes the clock in the XP guest starts running too fast, up to about twice as fast as it should. This is under VMware 4.0.5 build 6030. This happens irrespective of whether I enable the clock sync function.
Is there a fix for this problem?
Some additional info - I'm running on a Pentium M chipset and the "maximum" CPU speed reported by MSINFO32 is 598MHz - it should be 1700MHz
Hi
the clock-sync option in vmware-tools tells the virtual-machine only the daytime, date .... You can edit this in BIOS.
CPU-timings is another story.
Please try to change your HostOSType settings to Windows2000 or FreeBSD and check if this changes anything.
Before you make any experiments with this take a snapshot or set diskmode to nonpersistent.
Do you have any lines in your log that do repeat very often?
I think your problem is beyond my skills - if you want that someone with more technical background gets interested in this you have to supply all necessary information in your question at once. These guys don't like having to ask before answering anything.
Ulli Hankeln
I can confirm this. On my laptop with Pentium M clock also runs almost twice as fast. It doesn't matter which guest OS I run. Tested it with Win98 and Linux (Knoppix).
Seems that with the latest build 6030 the pentium M is not correctly emulated.
I do not recall that this happened under the previous build.
VMware please do something otherwise 4.05 is useless to me.
Cheers,
Jocky
PS: I run VMware under WinXP Pro and it doesn't matter whether the VMware tools are installed or not
the "maximum" CPU speed reported by
MSINFO32 is 598MHz - it should be 1700MHz.
That's the problem: your CPU is sometimes running faster than VMware Workstation expects it to be running. See Knowledge Base article 709 for one workaround.
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=709
There is also a workaround that doesn't require you to lock the CPU speed to a constant value: put the correct maximum CPU speed in your global config file. On Linux hosts this file is /etc/vmware/config. On Windows hosts, it is normally C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\config.ini. In both cases, the file may not exist; if so, create it. Be sure to create it as a plain text file. On Windows, you can use Notepad, but be careful when saving the file that Notepad does not add an extra .txt extension to the filename.
If your machine is 1700 MHz maximum speed, the lines to add to this file are as follows. The first line is the most important one.
host.cpukHz = 1700000
hostinfo.noTSC = TRUE
tools.syncTime = TRUE
host.cpukHz = 1700000
hostinfo.noTSC = TRUE
tools.syncTime = TRUE
Thanks Tim! I'll try those settings in config.ini. Are they documented anywhere? The first obviously tells VMware what the cpu speed is and I guess the third tells VMware tools to synch the time. What is hostinfo.noTSC?
Guess I owe you some points!
\- Bill
host.cpukHz = 1700000
hostinfo.noTSC = TRUE
tools.syncTime = TRUE
I guessed above that tools.syncTime tells VMware tools to synch the time, but it doesn't seem to set that flag - I have an existing VM without the synchtime option on, when I updated the config.ini as above the synchtime was still off as indicated by the VMware tools system tray program.
What am I missing? Thanks,
\- Bill
OK so I found this info on TSC: http://www.paradicesoftware.com/specs/cpuid/note_tsc.htm
So, why do you recommend telling the VM that there is no time stamp counter?
Those settings aren't documented, but we will be adding them into a knowledge base article soon.
hostinfo.noTSC basically tells the VM that you have SpeedStep, so the TSC won't be running at a constant speed and we should avoid using it as much as possible. Unfortunately we can't completely avoid using it, which is why we still need a good estimate of the speed.
I put tools.syncTime there in an attempt to turn on tools time sync for you, but maybe that doesn't work properly in the global config file. I'll check on that.
Thanks for reporting back on your results!
Re: tools.syncTime - the value in my .vmx file must be over-riding the flag in the global config file.
Did you recommend turning syncTime on so that the guset clock keeps up with the host clock? My thinking goes like this: by telling VMware the max CPU speed, you ensure that the guest clock runs no faster than the host clock. However, it could get behind when the CPU slows down. So syncTime is turned on to sync it back up. Right?
I played around a bit with host.cpuKhz - set it to 200mhz and boy did that clock run fast!
Thanks Tim.
From my understanding of the problem, the Tools can synch time if the VM time lags behind the host system, but not if the VM gets ahead of the host.
Which is why you want to specify the max processor speed in the config file.
tools.syncTime = TRUE in the VM config file causes the time synchronization feature to be turned on. If you want your guest to check and catch up now and then to the host clock, you would want this turned on.
Tim, please clarify where I've misunderstood the facts, but I think I got it right.
-Daryll
My thinking goes like this: by telling VMware the max
CPU speed, you ensure that the guest clock runs no
faster than the host clock.
That's right.
However, it could get behind when the CPU slows down.
So syncTime is turned on to sync it back up. Right?
That's partly right. There is actually another mechanism that gets turned on by host.noTSC=true (or which can also turn itself on automatically) that tries to keep the guest clock accurate even when the TSC is slow. But it's still good to turn on tools.syncTime as a further backstop.