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 time code to allow virtualization to hide costs of running in the
[palacios.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 246c640..0eb9692 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -21,6 +21,7 @@ config LINUX
        bool "Linux 2.6"
        select BUILT_IN_STDLIB
        select BUILT_IN_ATOI
+       select FILE
        help
          This enables the necessary options to compile Palacios with Linux 2.6
           Currently, this is in development, and only 2.6.32 is verified to work
@@ -56,6 +57,13 @@ config VMX
          Compile with support for Intel VMX
 
 
+config DEBUG_INFO
+       bool "Compile with Debug Information"
+       default n
+       help
+         Compiles the Palacios library with debugging symbols
+
+
 menu "Supported host OS features"
       
 config MULTITHREAD_OS
@@ -81,6 +89,12 @@ config MAX_CPUS
          Specifies the maximum number of hardware CPUs supported by the OS
          For uniprocessor environments, set this to 1
 
+config FILE
+       bool "Host Support for file operations"
+       default n
+       help
+         Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
+
 
 config CONSOLE
        bool "Host Support for VM console"
@@ -88,13 +102,20 @@ config CONSOLE
        help 
          Select this if you want to forward a guest console interface to some host OS service
 
+config SOCKET
+        bool "Host support for Network Sockets"
+        default y
+        help
+          Select this if you host OS implements a socket API that is available to Palacios. This is required
+          to support the internal networking features of Palacios.
 
 
-config SOCKET
-       bool "Host support for Network Sockets"
-       default y
+config PACKET
+       bool "Host support for Raw Packet Transmision"
+       depends on EXPERIMENTAL
+       default n
        help 
-         Select this if you host OS implements a socket API that is available to Palacios. This is required 
+         Select this if you host OS implements a raw packet network API that is available to Palacios. This is required 
          to support the internal networking features of Palacios.
 
 endmenu
@@ -121,13 +142,6 @@ config SHADOW_PAGING_TELEMETRY
          Enable telemetry information for shadow paging 
 
 
-config INSTRUMENT_VMM
-       bool "Enable VMM instrumentation"
-       default n
-       help 
-         Enable the instrumentation framework
-         --------
-         This is much heavier weight than profiling
 
 config EXPERIMENTAL
        bool "Enable Experimental options"
@@ -155,13 +169,6 @@ config DEBUG_VNET
         help
           Enable the Vnet debug in Palacios
 
-config VNET_PROFILE
-       depends on EXPERIMENTAL && VNET
-       bool "Enable Vnet Profiling in Palacios"
-       default n
-       help
-          Enable the Vnet performance profiling in Palacios
-
 config LINUX_VIRTIO_VNET
         bool "Enable Virtio VNET interface"
         default n
@@ -170,11 +177,11 @@ config LINUX_VIRTIO_VNET
           Enable the Virtio VNET interface
 
 config DEBUG_LINUX_VIRTIO_VNET
-        bool "VNET Virtio Device Debugging"
+        bool "Virtio VNET Interface Debugging"
         default n
         depends on LINUX_VIRTIO_VNET && DEBUG_ON
         help
-          Enable debugging for the VNET Virtio Device
+          Enable debugging for the VNET Virtio interface
 
 endmenu
 
@@ -182,7 +189,6 @@ endmenu
 source "Kconfig.stdlibs"
 
 
-
 menu "Virtual Paging"
 
 config SHADOW_PAGING
@@ -207,9 +213,55 @@ 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
+       help 
+          Enables caching implemenation for shadow paging
+
+
 endmenu
 
 
+menu "Time Management"
+
+config TIME_HIDE_VM_COST
+        bool "Hide VMM Run Cost"
+       default n
+       help
+           Offset guest time from host time sufficiently to hide the cost of
+           running in the virtual machine. This can aid the consistency of
+           time between multiple timers, but can cause the guest to run 
+           slightly slower than the host.
+
+config TIME_HIDE_EXIT_COST
+        bool "Hide VMM Exit Cost"
+       default n
+       depends on TIME_HIDE_VM_COST
+       help
+           Add additional TSC offset to hide VMM exit costs from the guest.
+
+config TIME_EXIT_COST_ADJUST
+       int "Exit cost adjustment for hiding VM exits"
+       default 2000
+       depends on TIME_HIDE_EXIT_COST
+       help
+           Amount to adjust the time to hide the exit cost of fully virtualizing
+          the timestamp counter. Used to hide the cost of fully virtualizing 
+          the TSC for OSes that assume that reading the TSC is inexpensive 
+          (e.g. Linux TSC-based timer calibration).
+
+config TIME_VIRTUALIZE_TSC
+       bool "Fully virtualize guest TSC"
+       default n
+       help
+           Virtualize the processor time stamp counter in the guest, 
+           generally increasing consistency between various time sources 
+           but also potentially making guest time run slower than real time.
+        
+endmenu
+
 menu "Symbiotic Functions"
 
 config SYMBIOTIC
@@ -317,7 +369,12 @@ config DEBUG_INTERRUPTS
        help 
          This turns on debugging for the interrupt system
 
-
+config DEBUG_TIME
+       bool "Timing"
+       default n
+       depends on DEBUG_ON
+       help
+         This turns on debugging of system time virtualization
 
 config DEBUG_IO
        bool "IO"