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.


Fixed stupid branch check, added more preconfig error checking
[palacios.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 8050708..c94fcb0 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -2,6 +2,40 @@ mainmenu "Palacios VMM Configuration"
 
 menu "Target Configuration"
 
+
+choice
+       prompt "Target Host OS"
+       default KITTEN
+
+config KITTEN
+       bool "Kitten OS"
+       select BUILT_IN_STDLIB
+       select BUILT_IN_STRCASECMP
+       select BUILT_IN_ATOI
+       help
+         This enables the necesary options to compile Palacios with Kitten
+
+config LINUX
+       bool "Linux 2.6"
+       select BUILT_IN_STDLIB
+       select BUILT_IN_ATOI
+       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
+
+config MINIX
+       bool "MINIX 3"
+       help
+         This enables the necesary options to compile Palacios with Kitten
+
+config OTHER_OS
+       bool "Other OS"
+       help 
+         Choose this to compile Palacios for a Generic Host OS
+          (Formerly GeekOS)
+
+endchoice
+
 config CRAY_XT
         bool "Red Storm (Cray XT3/XT4)"
         help
@@ -20,6 +54,32 @@ config VMX
          Compile with support for Intel VMX
 
 
+config MULTITHREAD_OS
+       bool "Compile for a multi threaded OS"
+       default y
+       help 
+         This allows Palacios to use OS thread mechanisms
+
+
+config MAX_CPUS
+       int "Maximum number of cpus"
+       range 1 255
+       default "16"
+       help 
+         Specifies the maximum number of hardware cpus Palacios can support
+
+         For uniprocessor environments, set this to 1
+
+
+config CONSOLE
+       bool "Include Console Support"
+       default n
+       help 
+         Enable console support in Palacios
+
+
+
+
 config SOCKET
        bool "Include Network Socket Support"
        default y
@@ -28,14 +88,26 @@ config SOCKET
 
 
 
-config PROFILE_VMM
-       bool "Enable VMM profiling support"
-       default y
+
+config TELEMETRY
+       bool "Enable VMM telemetry support"
+       default n
        help 
-         Enable the profiling framework in Palacios
+         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 file 
+         information that is periodically reported to the log output.
+         Telemetry is automatically collected for vmexits. Subsystem telemetry 
+         is configured separately
+
+
+config SHADOW_PAGING_TELEMETRY
+       bool "Enable Shadow Paging Telemetry"
+       default y
+       depends on TELEMETRY
+       help
+         Enable telemetry information for shadow paging 
+
 
 config INSTRUMENT_VMM
        bool "Enable VMM instrumentation"
@@ -57,195 +129,113 @@ config EXPERIMENTAL
          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_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
-       help 
-         This enables Palacios' internal implementation of memset
-
-
-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()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strlen
-
-config BUILT_IN_STRNLEN
-       bool "strnlen()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strnlen
+config VNET
+        depends on EXPERIMENTAL
+        bool "Enable Vnet in Palacios"
+        default n
+        help
+          Enable the Vnet in Palacios
 
+config DEBUG_VNET
+        depends on EXPERIMENTAL && VNET
+        bool "Enable Vnet Debug in Palacios"
+        default n
+        help
+          Enable the Vnet debug in Palacios
 
-config BUILT_IN_STRCMP
-       bool "strcmp()"
+config VNET_PROFILE
+       depends on EXPERIMENTAL && VNET
+       bool "Enable Vnet Profiling in Palacios"
        default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strcmp
+       help
+          Enable the Vnet performance profiling in Palacios
 
-config BUILT_IN_STRNCMP
-       bool "strncmp()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strncmp
+config LINUX_VIRTIO_VNET
+        bool "Enable Virtio VNET interface"
+        default n
+        depends on PCI && EXPERIMENTAL && VNET
+        help
+          Enable the Virtio VNET interface
 
-config BUILT_IN_STRCAT
-       bool "strcat()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strcat
+config DEBUG_LINUX_VIRTIO_VNET
+        bool "VNET Virtio Device Debugging"
+        default n
+        depends on LINUX_VIRTIO_VNET && DEBUG_ON
+        help
+          Enable debugging for the VNET Virtio Device
 
-config BUILT_IN_STRNCAT
-       bool "strncat()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strncat
+endmenu
 
-config BUILT_IN_STRCPY
-       bool "strcpy()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strcpy
 
-config BUILT_IN_STRNCPY
-       bool "strncpy()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strncpy
+source "Kconfig.stdlibs"
 
-config BUILT_IN_STRDUP
-       bool "strdup()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strdup
 
 
-config BUILT_IN_ATOI
-       bool "atoi()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of atoi
+menu "Virtual Paging"
 
-config BUILT_IN_STRCHR
-       bool "strchr()"
-       default n
-       depends on BUILT_IN_STDLIB
+config SHADOW_PAGING
+       bool "Enable shadow paging"
+       default y
        help 
-         This enables Palacios' internal implementation of strchr
+          Enables shadow paging for virtual machines
 
-config BUILT_IN_STRRCHR
-       bool "strrchr()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strrchr
 
-config BUILT_IN_STRPBRK
-       bool "strpbrk()"
-       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 strpbrk
+          Enables Virtual TLB implemenation for shadow paging
 
 
-config BUILT_IN_STDIO
-       bool "Enable Built in versions of stdio functions"
+config DEBUG_SHDW_PG_VTLB
+       bool "Enable VTLB debugging"
        default n
-       help 
-         Not all host OSes provide link targets for stdio functions
-         Palacios provides internal implementations of these functions, that you can select from this list
-
+       depends on SHADOW_PAGING_VTLB
+       help
+         Enables debugging messages for VTLB implementation
 
+endmenu
 
-config BUILT_IN_SPRINTF
-       bool "sprintf()"
-       default n
-       depends on BUILT_IN_STDIO
-       help 
-         This enables Palacios' internal implementation of sprintf
 
+menu "Symbiotic Functions"
 
-config BUILT_IN_SNPRINTF
-       bool "snprintf()"
+config SYMBIOTIC
+       bool "Enable Symbiotic Functionality"
        default n
-       depends on BUILT_IN_STDIO
        help 
-         This enables Palacios' internal implementation of snprintf
+         Enable Symbiotic components of the VMM. 
+         This includes the SymSpy interface.
 
-
-config BUILT_IN_VSPRINTF
-       bool "vsprintf()"
+config SYMCALL
+       bool "Symbiotic upcalls"
        default n
-       depends on BUILT_IN_STDIO
-       help 
-         This enables Palacios' internal implementation of vsprintf
+       depends on SYMBIOTIC && EXPERIMENTAL
+       help
+         Enables the Symbiotic upcall interface
 
-config BUILT_IN_VSNPRINTF
-       bool "vsnprintf()"
+config SWAPBYPASS
+       bool "SwapBypass"
        default n
-       depends on BUILT_IN_STDIO
+       depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
        help 
-         This enables Palacios' internal implementation of vsnprintf
+         This enables the SwapBypass architecture
 
-config BUILT_IN_VSNRPRINTF
-       bool "vsnrprintf()"
+config SWAPBYPASS_TELEMETRY
+       bool "Enable SwapBypass Telemetry"
        default n
-       depends on BUILT_IN_STDIO
+       depends on TELEMETRY && SWAPBYPASS
        help 
-         This enables Palacios' internal implementation of vsnrprintf
-
-endmenu
+         Enable the telemetry information for the SwapBypass subsystem
 
-
-
-
-menu "Symbiotic Functions"
-
-config SYMBIOTIC
-       bool "Enable Symbiotic Functionality"
+menuconfig SYMMOD 
+       bool "Symbiotic Modules"
        default n
-       help 
-         Enable Symbiotic components of the VMM
-
+       depends on EXPERIMENTAL
+#      depends on SYMBIOTIC
+       help
+         Enable Symbiotic module loading
 
-config SYMBIOTIC_SWAP
-       bool "Symbiotic Swap"
-       default n
-       depends on SYMBIOTIC && EXPERIMENTAL
-       help 
-         This enables the symbiotic swap architecture
 
 endmenu