Opened 16 years ago
Last modified 10 years ago
#2526 closed defect
Non-uniform internal timer in guest OS — at Initial Version
Reported by: | Konstantin Vlasov | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 2.0.4 |
Keywords: | Cc: | ||
Guest type: | Linux | Host type: | Windows |
Description
Host machine: Core 2 Duo 6600, 2 GB RAM.
Host OS: WinXP SP3
Guest OS: SUSE Linux Enterprise Server 10 SP2
GA installed
Partially the problem is mentioned in the forum threads:
http://forums.virtualbox.org/viewtopic.php?t=10396
http://forums.virtualbox.org/viewtopic.php?t=1335
and probably here:
http://forums.virtualbox.org/viewtopic.php?t=10745
However, I could find some more details which may be of use for reproducing and fixing the problem.
Problem description
The internal timer inside VM sometimes runs non-uniformly. It looks like following:
- At first the guest OS looks somewhat slow in every aspect (including system clock which shows seconds passing more slowly than on the host clock). So, as time passes, the guest clock become more and more mistimed with the host one.
- Then suddenly the virtual machine starts to catch up the host clock: guest OS works much faster than before, keyboard delays are extremely low (so when I try to type e.g. "grep", I get something like "ggggggrrrrrreeeeeppppp"), the guest clock are running very fast (several seconds pass within only one "host second").
- When guest timer equals to the host one, the speed returns back to normal, then again slows down, and then speeds up, and so on.
Lengths of the periods described can be different. Sometimes, it is slow for couple of minutes, then fast for 7-10 seconds; sometimes it's slow for several seconds, then fast for 0,5-1 second.
Additional factors
I wanted to record a video with this behaviour. However, each time I run video recorder (I'm using UVScreenCamera), the problem became unreproducable. Finally, I noticed that UVScreenCamera's recording process performs something that forces VirtualBox's guest clock catch up the host clock. And the more frames per second I set in the recorder's options, the more smoothly runs VirtualBox. So, it seems that each additional redraw operation (or something like that) makes VB forcibly perform that "catch up" operation, which otherwise would be delayed for the future.