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.


fixes to allow stopping a paused guest
Jack Lange [Fri, 10 Feb 2012 23:46:59 +0000 (18:46 -0500)]
palacios/src/palacios/vmm.c
palacios/src/palacios/vmm_barrier.c

index 48df285..d2d01fb 100644 (file)
@@ -452,6 +452,11 @@ int v3_stop_vm(struct v3_vm_info * vm) {
 
     vm->run_state = VM_STOPPED;
 
+    // Sanity check to catch any weird execution states
+    if (v3_wait_for_barrier(vm, NULL) == 0) {
+       v3_lower_barrier(vm);
+    }
+    
     // XXX force exit all cores via a cross call/IPI XXX
 
     while (1) {
index f887a05..961b894 100644 (file)
@@ -93,6 +93,10 @@ int v3_wait_for_barrier(struct v3_vm_info * vm_info, struct guest_info * local_c
     int all_blocked = 0;
     int i = 0;
 
+    if (barrier->active == 0) {
+       return -1;
+    }
+
     // wait for barrier catch on all cores
     while (all_blocked == 0) {
        all_blocked = 1;