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.


Add lock to vmm_queue
[palacios-OLD.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index dd5a154..029cfd1 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -2,6 +2,14 @@ mainmenu "Palacios VMM Configuration"
 
 menu "Target Configuration"
 
+
+config KITTEN
+       bool "Set defaults needed for the Kitten OS"
+       default y
+       help
+         This enables the necesary options to compile Palacios with Kitten
+
+
 config CRAY_XT
         bool "Red Storm (Cray XT3/XT4)"
         help
@@ -20,212 +28,160 @@ config VMX
          Compile with support for Intel VMX
 
 
-config SOCKET
-       bool "Include Network Socket Support"
+config MULTITHREAD_OS
+       bool "Compile for a multi threaded OS"
        default y
        help 
-         Enable networking support in Palacios
-
+         This allows Palacios to use OS thread mechanisms
 
 
-config PROFILE_VMM
-       bool "Enable VMM profiling support"
-       default y
+config MAX_CPUS
+       int "Maximum number of cpus"
+       range 1 255
+       default "16"
        help 
-         Enable the profiling framework in Palacios
-         -----
-         This is a framwork that allows components of palacios to record 
-         information that is periodically reported to the log file 
-
-config INSTRUMENT_VMM
-       bool "Enable VMM instrumentation"
-       default n
-       help 
-         Enable the instrumentation framework
-         --------
-         This is much heavier weight than profiling
+         Specifies the maximum number of hardware cpus Palacios can support
 
+         For uniprocessor environments, set this to 1
 
-config BUILT_IN_STDLIB
-       bool "Enable Built in versions of stdlib functions"
-       default n
-       help 
-         Not all host OSes provide link targets for stdlib functions
-         Palacios provides internal implementations of these functions, that you can select from this list
 
-config BUILT_IN_MEMSET
-       bool "memset()"
-       default n
-       depends on BUILT_IN_STDLIB
+config SOCKET
+       bool "Include Network Socket Support"
+       default y
        help 
-         This enables Palacios' internal implementation of memset
+         Enable networking support in Palacios
 
 
-config BUILT_IN_MEMCPY
-       bool "memcpy()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of memcpy
 
-config BUILT_IN_MEMCMP
-       bool "memcmp()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of memcmp
 
-config BUILT_IN_STRLEN
-       bool "strlen()"
+config TELEMETRY
+       bool "Enable VMM telemetry support"
        default n
-       depends on BUILT_IN_STDLIB
        help 
-         This enables Palacios' internal implementation of strlen
+         Enable the telemetry framework in Palacios
+         -----
+         This is a framwork that allows components of palacios to record 
+         information that is periodically reported to the log output.
+         Telemetry is automatically collected for vmexits. Subsystem telemetry 
+         is configured separately
 
-config BUILT_IN_STRNLEN
-       bool "strnlen()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strnlen
 
+config SHADOW_PAGING_TELEMETRY
+       bool "Enable Shadow Paging Telemetry"
+       default y
+       depends on TELEMETRY
+       help
+         Enable telemetry information for shadow paging 
 
-config BUILT_IN_STRCMP
-       bool "strcmp()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strcmp
 
-config BUILT_IN_STRNCMP
-       bool "strncmp()"
-       default n
-       depends on BUILT_IN_STDLIB
+config PASSTHROUGH_VIDEO
+       bool "Enable Passthrough Video"
+       default y
        help 
-         This enables Palacios' internal implementation of strncmp
+         Configures Palacios to map a guest's framebuffer directly 
+         to the hardware framebuffer
 
-config BUILT_IN_STRCAT
-       bool "strcat()"
+config INSTRUMENT_VMM
+       bool "Enable VMM instrumentation"
        default n
-       depends on BUILT_IN_STDLIB
        help 
-         This enables Palacios' internal implementation of strcat
+         Enable the instrumentation framework
+         --------
+         This is much heavier weight than profiling
 
-config BUILT_IN_STRNCAT
-       bool "strncat()"
+config EXPERIMENTAL
+       bool "Enable Experimental options"
        default n
-       depends on BUILT_IN_STDLIB
        help 
-         This enables Palacios' internal implementation of strncat
+         This allows the selection of experimental features. This includes incomplete or unreviewed code. 
+         Only enable this feature if you are working on the features in question. 
+         IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
+         Any code that violates this will be immediately deleted without warning. 
+         -- 
+         The purpose of this option is to allow features under development to be committed to the mainline
+         to more easily track changes and provide access to multiple developers
 
-config BUILT_IN_STRCPY
-       bool "strcpy()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strcpy
+config VNET
+        depends on EXPERIMENTAL
+        bool "Enable Vnet in Palacios"
+        default n
+        help
+          Enable the Vnet in Palacios
 
-config BUILT_IN_STRNCPY
-       bool "strncpy()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strncpy
+endmenu
 
-config BUILT_IN_STRDUP
-       bool "strdup()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strdup
 
+source "Kconfig.stdlibs"
 
-config BUILT_IN_ATOI
-       bool "atoi()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of atoi
 
-config BUILT_IN_STRCHR
-       bool "strchr()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strchr
 
-config BUILT_IN_STRRCHR
-       bool "strrchr()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strrchr
+menu "Virtual Paging"
 
-config BUILT_IN_STRPBRK
-       bool "strpbrk()"
-       default n
-       depends on BUILT_IN_STDLIB
+config SHADOW_PAGING
+       bool "Enable shadow paging"
+       default y
        help 
-         This enables Palacios' internal implementation of strpbrk
+          Enables shadow paging for virtual machines
 
 
-config BUILT_IN_SPRINTF
-       bool "sprintf()"
-       default n
-       depends on BUILT_IN_STDLIB
+config SHADOW_PAGING_VTLB
+       bool "Virtual TLB"
+       default y
+       depends on SHADOW_PAGING
        help 
-         This enables Palacios' internal implementation of sprintf
+          Enables Virtual TLB implemenation for shadow paging
 
 
-config BUILT_IN_SNPRINTF
-       bool "snprintf()"
+config DEBUG_SHDW_PG_VTLB
+       bool "Enable VTLB debugging"
        default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of snprintf
+       depends on SHADOW_PAGING_VTLB
+       help
+         Enables debugging messages for VTLB implementation
 
+endmenu
 
-config BUILT_IN_VSPRINTF
-       bool "vsprintf()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of vsprintf
 
-config BUILT_IN_VSNPRINTF
-       bool "vsnprintf()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of vsnprintf
+menu "Symbiotic Functions"
 
-config BUILT_IN_VSNRPRINTF
-       bool "vsnrprintf()"
+config SYMBIOTIC
+       bool "Enable Symbiotic Functionality"
        default n
-       depends on BUILT_IN_STDLIB
        help 
-         This enables Palacios' internal implementation of vsnrprintf
+         Enable Symbiotic components of the VMM. 
+         This includes the SymSpy interface.
 
-endmenu
 
 
+config SYMCALL
+       bool "Symbiotic upcalls"
+       default n
+       depends on SYMBIOTIC && EXPERIMENTAL
+       help
+         Enables the Symbiotic upcall interface
 
+config SYMMOD
+       bool "Symbiotic Modules"
+       default n
+       depends on SYMBIOTIC && EXPERIMENTAL
+       help
+         Enable Symbiotic module loading
 
-menu "Symbiotic Functions"
 
-config SYMBIOTIC
-       bool "Enable Symbiotic Functionality"
+config SWAPBYPASS
+       bool "SwapBypass"
        default n
+       depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
        help 
-         Enable Symbiotic components of the VMM
+         This enables the SwapBypass architecture
 
-
-config SYMBIOTIC_SWAP
-       bool "Symbiotic Swap"
+config SWAPBYPASS_TELEMETRY
+       bool "Enable SwapBypass Telemetry"
        default n
-       depends on SYMBIOTIC
+       depends on TELEMETRY && SWAPBYPASS
        help 
-         This enables the symbiotic swap architecture
+         Enable the telemetry information for the SwapBypass subsystem
+
 
 endmenu