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 compile warning fixup and error checks
[palacios.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 9c9dfe2..5288b22 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -75,6 +75,7 @@ config VMX
          Compile with support for Intel VMX
 
 
+
 config FRAME_POINTER
        bool "Compile with Frame pointers"
        default n
@@ -144,6 +145,49 @@ config MAX_CPUS
 endmenu
 
 source "palacios/src/interfaces/Kconfig"
+
+menu "Virtual core specialization"
+
+config CUSTOM_CPUID
+       bool "Use custom CPU information (vendor, etc)"
+       default n
+       help 
+          If set, the CPU information will be for a special V3VEE vendor.
+         This should result in identical guest kernel setup, regardless
+          of the underlying hardware, but it also means that the guest kernel
+          has no chance of employing CPU-specific bug fixes.
+
+config STRICT_MSR_SEMANTICS
+       bool "Use strict RDMSR/WRMSR semantics"
+       default n
+       help
+         Use strict MSR semantics - when an unhandled MSR is read or written,
+         a GPF is generated.  This is typically usd with CUSTOM_CPU_TYPE on.
+
+config FP_SWITCH
+       bool "Floating point context switching"
+        default n
+        help
+          If set, floating point is handled for context switches 
+          (VM1->VM2->VM1 and/or VM->HOST->VM).   This can be disabled
+          for environments where a single VM is the only user of FP.
+          Note that even if disabled, FP save/restore code is included
+          for support of checkpoint/restore.
+
+config LAZY_FP_SWITCH
+       bool "Use host-based lazy floating point context switching"
+        depends on FP_SWITCH && HOST_LAZY_FPU_SWITCH
+       default y
+       help
+         When true,  the host's lazy floating point save/restore 
+          mechanism is notified on each exit and entry.  If false,
+          the floating point state is explicitly saved on each exit
+          and restored on each entry---this save/restore is entirely
+          done in Palacios.
+          
+
+endmenu
+
 source "palacios/src/extensions/Kconfig"
 
 config TELEMETRY
@@ -222,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
@@ -235,6 +285,7 @@ config SHADOW_PAGING_VTLB
        depends on SHADOW_PAGING
        help 
           Enables Virtual TLB implemenation for shadow paging
+           Virtual TLB now uses PAE so there are no 4 GB restrictions
 
 
 config DEBUG_SHDW_PG_VTLB
@@ -244,13 +295,63 @@ 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
+
+
+config SWAPPING
+        bool "Enable swapping"
+        default n
+        depends on (SHADOW_PAGING || NESTED_PAGING) && FILE
+        help
+           Enables swapping of regions of guest physical memory to a file 
+
+config DEBUG_SWAPPING
+        bool "Enable swapping debugging"
+       default n
+        depends on SWAPPING
+        help
+           Provides debugging output from the swapping system
+
+config MEM_TRACK
+        bool "Enable memory access tracking"
+       default n
+       depends on SHADOW_PAGING || NESTED_PAGING
+       help
+          Allows tracking of memory accesses on a page granularity
+
+config DEBUG_MEM_TRACK
+        bool "Enable memory access tracking debugging" 
+       default n
+       depends on MEM_TRACK
+       help
+          Provides debugging output for memory access tracking
 
 endmenu
 
@@ -315,6 +416,28 @@ endmenu
 
 source "palacios/src/gears/Kconfig"
 
+
+menu "HVM" 
+
+config HVM
+       bool "Support Hybrid Virtual Machines"
+       default n
+       help 
+          If set, it is possible to make VMs that are partitioned
+          (cores, memory, devices, hardware access, etc) into 
+          a part ("the ROS") that supports normal VM operation and
+          a part ("the HRT") that supports Hybrid Run-Times,
+          for example Nautilus-based HRTs for parallel languages.
+
+config DEBUG_HVM
+        depends on HVM
+        bool "Enable HVM debugging in Palacios"
+        default n
+        help
+          Enable HVM debugging output
+
+endmenu
+
 menu "Debug configuration"
 
 ## Is unwind information useful