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.


Cache partitioning support
[palacios.git] / palacios / src / palacios / vm_guest.c
index acbb11e..7736e38 100644 (file)
@@ -36,6 +36,9 @@
 #ifdef V3_CONFIG_MEM_TRACK
 #include <palacios/vmm_mem_track.h>
 #endif
+#ifdef V3_CONFIG_CACHEPART
+#include <palacios/vmm_cachepart.h>
+#endif
 
 
 v3_cpu_mode_t v3_get_vm_cpu_mode(struct guest_info * info) {
@@ -318,6 +321,14 @@ int v3_free_vm_internal(struct v3_vm_info * vm) {
     v3_remove_hypercall(vm, GUEST_INFO_HCALL);
 
 
+#ifdef V3_CONFIG_HVM
+    v3_deinit_hvm_vm(vm);
+#endif
+
+#ifdef V3_CONFIG_MULTIBOOT
+    v3_deinit_multiboot_vm(vm);
+#endif
+
 
 #ifdef V3_CONFIG_SYMBIOTIC
     v3_deinit_symbiotic_vm(vm);
@@ -377,9 +388,6 @@ int v3_free_vm_internal(struct v3_vm_info * vm) {
     v3_deinit_telemetry(vm);
 #endif
 
-#ifdef V3_CONFIG_HVM
-    v3_deinit_hvm_vm(vm);
-#endif
 
     v3_deinit_events(vm);
 
@@ -389,6 +397,9 @@ int v3_free_vm_internal(struct v3_vm_info * vm) {
 
     v3_fw_cfg_deinit(vm);
 
+#ifdef V3_CONFIG_CACHEPART
+    v3_deinit_cachepart_vm(vm);
+#endif
 
     return 0;
 }
@@ -403,6 +414,12 @@ int v3_init_core(struct guest_info * core) {
     /*
      * Initialize the subsystem data strutures
      */
+
+
+#ifdef V3_CONFIG_CACHEPART
+    v3_init_cachepart_core(core);
+#endif
+
 #ifdef V3_CONFIG_TELEMETRY
     v3_init_core_telemetry(core);
 #endif
@@ -470,6 +487,14 @@ int v3_free_core(struct guest_info * core) {
     v3_deinit_symbiotic_core(core);
 #endif
 
+#ifdef V3_CONFIG_HVM
+    v3_deinit_hvm_core(core);
+#endif
+
+#ifdef V3_CONFIG_MULTIBOOT
+    v3_deinit_multiboot_core(core);
+#endif
+
     v3_deinit_decoder(core);
 
     v3_deinit_intr_controllers(core);
@@ -488,9 +513,7 @@ int v3_free_core(struct guest_info * core) {
     v3_deinit_core_telemetry(core);
 #endif
 
-#ifdef V3_CONFIG_HVM
-    v3_deinit_hvm_core(core);
-#endif
+
 
     switch (v3_mach_type) {
 #ifdef V3_CONFIG_SVM
@@ -517,6 +540,10 @@ int v3_free_core(struct guest_info * core) {
            return -1;
     }
 
+#ifdef V3_CONFIG_CACHEPART
+    v3_deinit_cachepart_core(core);
+#endif
+
     return 0;
 }