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 569fa0b..7736e38 100644 (file)
 #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) {
     struct cr0_32 * cr0;
@@ -317,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);
@@ -376,6 +388,7 @@ int v3_free_vm_internal(struct v3_vm_info * vm) {
     v3_deinit_telemetry(vm);
 #endif
 
+
     v3_deinit_events(vm);
 
 #ifdef V3_CONFIG_MEM_TRACK
@@ -384,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;
 }
@@ -398,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
@@ -465,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);
@@ -483,6 +513,8 @@ int v3_free_core(struct guest_info * core) {
     v3_deinit_core_telemetry(core);
 #endif
 
+
+
     switch (v3_mach_type) {
 #ifdef V3_CONFIG_SVM
        case V3_SVM_CPU:
@@ -508,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;
 }