Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


enabled stopping a VM before the secondary cores have been initialized
[palacios-OLD.git] / palacios / src / palacios / vmm_time.c
index fa8f5cd..781bae7 100644 (file)
@@ -172,21 +172,21 @@ static int skew_guest_time(struct guest_info * info) {
     guest_time = v3_get_guest_time(time_state);
 
     if (guest_time < target_guest_time) {
-       sint64_t max_skew, desired_skew, skew;
+       uint64_t max_skew, desired_skew, skew;
 
        if (time_state->enter_time) {
            /* Limit forward skew to 10% of the amount the guest has
             * run since we last could skew time */
-           max_skew = ((sint64_t)guest_time - (sint64_t)time_state->enter_time) / 10;
+           max_skew = (guest_time - time_state->enter_time) / 10;
        } else {
            max_skew = 0;
        }
 
-       desired_skew = (sint64_t)target_guest_time - (sint64_t)guest_time;
+       desired_skew = target_guest_time - guest_time;
        skew = desired_skew > max_skew ? max_skew : desired_skew;
-       PrintDebug("Guest %lld cycles behind where it should be.\n",
+       PrintDebug("Guest %llu cycles behind where it should be.\n",
                   desired_skew);
-       PrintDebug("Limit on forward skew is %lld. Skewing forward %lld.\n",
+       PrintDebug("Limit on forward skew is %llu. Skewing forward %llu.\n",
                   max_skew, skew); 
        
        v3_offset_time(info, skew);
@@ -228,10 +228,10 @@ v3_time_enter_vm( struct guest_info * info )
     struct vm_time * time_state = &(info->time_state);
     uint64_t guest_time, host_time;
 
-    host_time = v3_get_host_time(time_state);
     guest_time = v3_get_guest_time(time_state);
+    host_time = v3_get_host_time(time_state);
     time_state->enter_time = host_time;
-    time_state->guest_host_offset = (sint64_t)guest_time - (sint64_t)host_time;
+    time_state->guest_host_offset = guest_time - host_time;
 
     return 0;
 }