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.


Merge branch 'devel' of ssh://palacios@newskysaw/home/palacios/palacios into devel
Jack Lange [Mon, 15 Nov 2010 20:11:04 +0000 (14:11 -0600)]
palacios/src/devices/Kconfig
palacios/src/palacios/svm.c
palacios/src/palacios/vmm.c
palacios/src/palacios/vmx.c

index ec2485a..b449d34 100644 (file)
@@ -265,6 +265,11 @@ config FILEDISK
        help
          Includes the file based disk backend
 
+config DEBUG_FILEDISK
+       bool "FILEDISK backend debugging"
+       depends on FILEDISK && DEBUG_ON
+       help 
+         Enable debugging for the file based disk backend      
 
 config NETDISK
        bool "NETDISK storage backend"
@@ -280,6 +285,11 @@ config RAMDISK
        help 
          Includes the RAM based disk backend
 
+config DEBUG_RAMDISK
+       bool "RAMDISK baskend debugging"
+       depends on RAMDISK && DEBUG_ON
+       help 
+         Enable debugging for the ram based disk backend       
 
 config TMPDISK
        bool "TMPDISK storage backend"
index 53b410e..975010f 100644 (file)
@@ -440,7 +440,6 @@ int v3_svm_enter(struct guest_info * info) {
     vmcb_saved_state_t * guest_state = GET_VMCB_SAVE_STATE_AREA((vmcb_t*)(info->vmm_data)); 
     addr_t exit_code = 0, exit_info1 = 0, exit_info2 = 0;
 
-    v3_update_timers(info);
     v3_adjust_time(info);
 
     // Conditionally yield the CPU if the timeslice has expired
@@ -493,6 +492,7 @@ int v3_svm_enter(struct guest_info * info) {
     }
 #endif
 
+    v3_update_timers(info);
     guest_ctrl->TSC_OFFSET = v3_tsc_host_offset(&info->time_state);
 
     //V3_Print("Calling v3_svm_launch\n");
index e10c9a3..14d1963 100644 (file)
@@ -208,7 +208,7 @@ int v3_start_vm(struct v3_vm_info * vm, unsigned int cpu_mask) {
     }
     
     if (vm->num_cores > avail_cores) {
-       PrintError("Attempted to start a VM with too many cores (MAX=%d)\n", MAX_CORES);
+       PrintError("Attempted to start a VM with too many cores (vm->num_cores = %d, avail_cores = %d, MAX=%d)\n", vm->num_cores, avail_cores, MAX_CORES);
        return -1;
     }
 
index 6ada30f..2d75065 100644 (file)
@@ -650,6 +650,10 @@ int v3_vmx_enter(struct guest_info * info) {
     // Conditionally yield the CPU if the timeslice has expired
     v3_yield_cond(info);
 
+    /* If this guest is frequency-lagged behind host time, wait 
+     * for the appropriate host time before resuming the guest. */
+    v3_adjust_time(info);
+
     // v3_print_guest_state(info);
 
     // disable global interrupts for vm state transition
@@ -674,10 +678,6 @@ int v3_vmx_enter(struct guest_info * info) {
 
     v3_update_timers(info);
 
-    /* If this guest is frequency-lagged behind host time, wait 
-     * for the appropriate host time before resuming the guest. */
-    v3_adjust_time(info);
-
     tsc_offset_high = (uint32_t)((v3_tsc_host_offset(&info->time_state) >> 32) & 0xffffffff);
     tsc_offset_low = (uint32_t)(v3_tsc_host_offset(&info->time_state) & 0xffffffff);
     check_vmcs_write(VMCS_TSC_OFFSET_HIGH, tsc_offset_high);