[issue995] DFly doesnt work on Vmware and Virtualbox

Jordan Gordeev jgordeev at dir.bg
Sat May 24 12:52:42 PDT 2008


Today, after a session of colaborative debugging, Antonio "have no clue" 
Huete, Jordan "doesn't run VirtualBox" Gordeev and Samuel Greear found 
out that the primary problem that DragonFly had on VirtualBox was caused 
by a non-terminating loop.
The loop is in sys/platform/pc32/isa/clock.c and starts at line 411 (on 
HEAD).
Forcing the loop to terminate after at most 1000 iterations causes 
DragonFly to successfully run with UP kernel with ACPI turned on. UP 
kernels with ACPI turned off and SMP kernels remain to be fixed.
In revision 1.11 of clock.c (diff to revision 1.10 at 
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/isa/clock.c.diff?r1=1.10&r2=1.1), 
the case in the loop body when delta < 0 was simplified, which 
apparently affected the loop termination condition.
The change from revision 1.10 to revision 1.11 includes the following 
strange change, too:

-		delta = prev_tick - tick;
+		delta = tick - prev_tick;
The FreeBSD code handling the delta values looks confused, and as the 
current DragonFly code fails at least on VirtualBox, I think a closer 
examination of the actually occurring delta values is merited.






More information about the Bugs mailing list