[vbox-dev] fUpdateStuff flag never set in trunk/src/VBox/VMM/TM.cpp ?

Knut St. Osmundsen bird at sun.com
Mon Dec 7 16:18:27 GMT 2009

Mark Cranness wrote:
> I'm debugging a time sync / TSC problem and noted the following, which
> looks like a bug:
> TM.cpp > function tmR3TimerQueueRunVirtualSync lines 1953 and 1986
> declare and use a variable fUpdateStuff.
> It is initialised to false (line 1953) and tested for true (line
> 1986), BUT NEVER set to true.
> http://www.virtualbox.org/browser/trunk/src/VBox/VMM/TM.cpp#L1953

This is a genuine bug, thanks for spotting it.  I've fixed it internally
and it should show up externally soon.

> Won't this cause the TSC catchup to always fail (because the catch-up
> calculation is not written back)?

No, it's stopped further down in the same function after we've done the
timeout callouts.  I'm not actually sure if it's necessary to make these
updates before we do the callouts - it's been a while since I worked on
the code last.

> There may be other functions that do this update instead, but a quick
> look indicates that they might not.
> AND the behaviour of my VM indicates that the catch-up is not
> happening as expected (or I am confused...).
> I set:
> VBoxManage setextradata Server "VBoxInternal/TM/CatchUpStopThreshold" 30000000
> and
> ... "VBoxInternal/TM/CatchUpStartThreshold3" 30000000
> ... "VBoxInternal/TM/CatchUpPrecentage3" 100
> So CatchUpStopThreshold is 30ms, and has a catch-up percent of +100%
> and yet the catch-up fails with a "Giving up catch-up attempt at ..."
> message, with timing that indicates NO catch-up is being applied at
> all.

The small parameter adjustment you did there won't help much on its own.
And there are known issues with the catch-up not working correctly on
certain setups.  We're looking into the latter and there should
eventually be fixed once we have it figured out...

Thanks again for spotting the bug.


Kind regards / Mit freundlichen Gruessen / Vennlig hilsen,


Sun Microsystems GmbH        Knut St. Osmundsen
Werkstrasse 24               Senior Staff Engineer, VirtualBox
71384 Weinstadt, Germany     mailto:bird at sun.com

Sitz der Gesellschaft: Sun Microsystems GmbH,
Sonnenallee 1, 85551 Kirchheim-Heimstetten
Amtsgericht Muenchen: HRB 161028
Geschaeftsfuehrer: Thomas Schroeder,
Wolfgang Engels, Wolf Frenkel
Vorsitzender des Aufsichtsrates: Martin Haering

More information about the vbox-dev mailing list