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.


Minor cleanups on shadow paging build/debug
Peter Dinda [Tue, 18 Feb 2014 01:18:57 +0000 (19:18 -0600)]
Kconfig
palacios/src/palacios/mmu/Makefile
palacios/src/palacios/mmu/vmm_shdw_pg_cache.c
palacios/src/palacios/mmu/vmm_shdw_pg_cache_32.h

diff --git a/Kconfig b/Kconfig
index 63d9eb7..a099526 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -266,6 +266,12 @@ source "Kconfig.stdlibs"
 
 menu "Virtual Paging"
 
+config NESTED_PAGING
+       bool "Enable nested paging"
+        default y 
+        help
+           Enable nested paging (should always be on)
+
 config SHADOW_PAGING
        bool "Enable shadow paging"
        default y
@@ -288,13 +294,34 @@ config DEBUG_SHDW_PG_VTLB
        help
          Enables debugging messages for VTLB implementation
 
-config SHADOW_PAGING_CACHE1
-       bool "Shadow Page Cache (1)"
-       default y
-       depends on SHADOW_PAGING
+config SHADOW_PAGING_CACHE
+       bool "Shadow Page Cache"
+       default n
+       depends on SHADOW_PAGING && EXPERIMENTAL
        help 
-          Enables caching implemenation for shadow paging
+          Enables caching implementation of shadow paging
 
+config DEBUG_SHADOW_PAGING_CACHE
+       bool "Enable Shadow Page Cache Debugging"
+        default n
+        depends on SHADOW_PAGING_CACHE
+        help
+           Enables debugging messages for the VTLB + Caching implementation
+
+#config SHADOW_PAGING_KVM
+#      bool "KVM-style Shadow Pager"
+#      default n
+#      depends on SHADOW_PAGING && EXPERIMENTAL
+#      help 
+#         Enables shadow pager derived from KVM 
+#           You probably do not want this and it will probably not compile!
+#
+#config DEBUG_SHADOW_PAGING_KVM 
+#      bool "Enable KVM-style Shadow Pager Debugging"
+#        default n
+#        depends on SHADOW_PAGING_KVM
+#        help
+#           Enables debugging messages for the KVM-style shadow pager
 
 endmenu
 
index 7b3a3ef..c49b0f5 100644 (file)
@@ -1,3 +1,6 @@
 obj-$(V3_CONFIG_SHADOW_PAGING_VTLB) += vmm_shdw_pg_tlb.o
 obj-$(V3_CONFIG_SWAPBYPASS) += vmm_shdw_pg_swapbypass.o
-obj-$(V3_CONFIG_SHADOW_PAGING_CACHE1) += vmm_shdw_pg_cache.o
+obj-$(V3_CONFIG_SHADOW_PAGING_CACHE) += vmm_shdw_pg_cache.o
+
+
+#obj-$(V3_CONFIG_SHADOW_PAGING_KVM) += vmm_shdw_pg_kvm.o
index cf60c86..d2b6cce 100644 (file)
@@ -31,7 +31,7 @@
 
 #define V3_CACHED_PG 0x1
 
-#ifndef V3_CONFIG_DEBUG_SHDW_PG_CACHE
+#ifndef V3_CONFIG_DEBUG_SHADOW_PAGING_CACHE
 #undef PrintDebug
 #define PrintDebug(fmt, ...)
 #endif
index 6e26d73..85deaaa 100644 (file)
@@ -24,7 +24,7 @@ static inline int activate_shadow_pt_32(struct guest_info * core) {
     addr_t gpa = BASE_TO_PAGE_ADDR_4KB(guest_cr3->pdt_base_addr);
     struct shdw_pg_data * shdw_pg = NULL;
 
-    PrintDebug(info->vm_info, info, "Activating 32 Bit cacheable page tables\n");
+    PrintDebug(core->vm_info, core, "Activating 32 Bit cacheable page tables\n");
     shdw_pg = find_shdw_pt(core->vm_info, gpa, PAGE_PD32);
     
     PrintError(core->vm_info, core, "shdw_pg returned as %p for CR3:%p\n", shdw_pg, (void *)gpa);