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
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
+ Specifies the maximum number of hardware cpus Palacios can support
-config INSTRUMENT_VMM
- bool "Enable VMM instrumentation"
- default n
- help
- Enable the instrumentation framework
- --------
- This is much heavier weight than profiling
+ For uniprocessor environments, set this to 1
-config BUILT_IN_STDLIB
- bool "Enable Built in versions of stdlib functions"
- default n
+config SOCKET
+ bool "Include Network Socket Support"
+ default y
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
+ Enable networking support in Palacios
-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()"
+config TELEMETRY
+ bool "Enable VMM telemetry support"
default n
- depends on BUILT_IN_STDLIB
help
- This enables Palacios' internal implementation of memcmp
+ 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_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 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
+config PASSTHROUGH_VIDEO
+ bool "Enable Passthrough Video"
+ default y
help
- This enables Palacios' internal implementation of strcmp
+ Configures Palacios to map a guest's framebuffer directly
+ to the hardware framebuffer
-config BUILT_IN_STRNCMP
- bool "strncmp()"
+config INSTRUMENT_VMM
+ bool "Enable VMM instrumentation"
default n
- depends on BUILT_IN_STDLIB
help
- This enables Palacios' internal implementation of strncmp
+ Enable the instrumentation framework
+ --------
+ This is much heavier weight than profiling
-config BUILT_IN_STRCAT
- bool "strcat()"
+config EXPERIMENTAL
+ bool "Enable Experimental options"
default n
- depends on BUILT_IN_STDLIB
help
- This enables Palacios' internal implementation of strcat
+ 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_STRNCAT
- bool "strncat()"
- default n
- depends on BUILT_IN_STDLIB
- help
- This enables Palacios' internal implementation of strncat
+config VNET
+ depends on EXPERIMENTAL
+ bool "Enable Vnet in Palacios"
+ default n
+ help
+ Enable the Vnet in Palacios
-config BUILT_IN_STRCPY
- bool "strcpy()"
- default n
- depends on BUILT_IN_STDLIB
- help
- This enables Palacios' internal implementation of strcpy
+endmenu
-config BUILT_IN_STRNCPY
- bool "strncpy()"
- default n
- depends on BUILT_IN_STDLIB
- help
- This enables Palacios' internal implementation of strncpy
-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
+menu "Virtual Paging"
-config BUILT_IN_STRRCHR
- bool "strrchr()"
- default n
- depends on BUILT_IN_STDLIB
+config SHADOW_PAGING
+ bool "Enable shadow paging"
+ default y
help
- This enables Palacios' internal implementation of strrchr
+ Enables shadow paging for virtual machines
-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_SPRINTF
- bool "sprintf()"
+config DEBUG_SHDW_PG_VTLB
+ bool "Enable VTLB debugging"
default n
- depends on BUILT_IN_STDLIB
- help
- This enables Palacios' internal implementation of sprintf
+ depends on SHADOW_PAGING_VTLB
+ help
+ Enables debugging messages for VTLB implementation
+endmenu
-config BUILT_IN_SNPRINTF
- bool "snprintf()"
- default n
- depends on BUILT_IN_STDLIB
- help
- This enables Palacios' internal implementation of snprintf
+menu "Symbiotic Functions"
-config BUILT_IN_VSPRINTF
- bool "vsprintf()"
+config SYMBIOTIC
+ bool "Enable Symbiotic Functionality"
default n
- depends on BUILT_IN_STDLIB
help
- This enables Palacios' internal implementation of vsprintf
+ Enable Symbiotic components of the VMM.
+ This includes the SymSpy interface.
-config BUILT_IN_VSNPRINTF
- bool "vsnprintf()"
+config SYMCALL
+ bool "Symbiotic upcalls"
default n
- depends on BUILT_IN_STDLIB
- help
- This enables Palacios' internal implementation of vsnprintf
+ depends on SYMBIOTIC && EXPERIMENTAL
+ help
+ Enables the Symbiotic upcall interface
-config BUILT_IN_VSNRPRINTF
- bool "vsnrprintf()"
+config SWAPBYPASS
+ bool "SwapBypass"
default n
- depends on BUILT_IN_STDLIB
+ depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
help
- This enables Palacios' internal implementation of vsnrprintf
-
-endmenu
+ This enables the SwapBypass architecture
+config SWAPBYPASS_TELEMETRY
+ bool "Enable SwapBypass Telemetry"
+ default n
+ depends on TELEMETRY && SWAPBYPASS
+ help
+ Enable the telemetry information for the SwapBypass subsystem
+menuconfig SYMMOD
+ bool "Symbiotic Modules"
+ default n
+ depends on EXPERIMENTAL
+# depends on SYMBIOTIC
+ help
+ Enable Symbiotic module loading
+if SYMMOD
-menu "Symbiotic Functions"
+source "modules/Kconfig"
-config SYMBIOTIC
- bool "Enable Symbiotic Functionality"
- default n
- help
- Enable Symbiotic components of the VMM
+endif
-config SYMBIOTIC_SWAP
- bool "Symbiotic Swap"
- default n
- depends on SYMBIOTIC
- help
- This enables the symbiotic swap architecture
endmenu