select BUILT_IN_STDLIB
select BUILT_IN_STRCASECMP
select BUILT_IN_ATOI
+ select ALIGNED_PG_ALLOC
help
This enables the necesary options to compile Palacios with Kitten
+config LINUX_BUILTIN
+ bool "OLD Linux (Built in) -- to be deprecated"
+ 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
+
+
+config LINUX
+ bool "Linux Module"
+ select BUILT_IN_STDLIB
+ select BUILT_IN_STRDUP
+ select BUILT_IN_ATOI
+ select FILE
+ select V3_DECODER
+ help
+ This enables the necessary options to compile Palacios as a Linux module
+
+
+config LINUX_KERN
+ depends on LINUX
+ string "Linux Kernel Source directory"
+ default "/usr/src/linux"
+ help
+ This is the directory containing the linux source for the kernel module to be built
+
config MINIX
bool "MINIX 3"
help
bool "Other OS"
help
Choose this to compile Palacios for a Generic Host OS
+ (Formerly GeekOS)
endchoice
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 FRAME_POINTER
+ bool "Compile with Frame pointers"
+ default n
+ help
+ Compiles the Palacios library with Frame pointers
-config MAX_CPUS
- int "Maximum number of cpus"
- range 1 255
- default "16"
- help
- Specifies the maximum number of hardware cpus Palacios can support
+config DEBUG_INFO
+ bool "Compile with Debug Information"
+ default n
+ help
+ Compiles the Palacios library with debugging symbols
- For uniprocessor environments, set this to 1
+choice
+ prompt "X86 decoder"
+ default XED
+config XED
+ bool "XED decoder library"
+ depends on !LINUX
+ help
+ This uses the XED decoder library from pintools
-config CONSOLE
- bool "Include Console Support"
- default n
- help
- Enable console support in Palacios
+config V3_DECODER
+ bool "Internal Palacios decoder"
+ help
+ This selects the internal V3Vee x86 decoder
+endchoice
+menu "Supported host OS features"
+
-config SOCKET
- bool "Include Network Socket Support"
- default y
+config ALIGNED_PG_ALLOC
+ bool "Host support for aligned page allocations"
+ default n
help
- Enable networking support in Palacios
+ Select this if your OS supports allocating memory pages using an alignment. This is required
+ if you want Palacios to run with large page table pages.
+config MAX_CPUS
+ int "Maximum number of cpus"
+ range 1 255
+ default "16"
+ help
+ Specifies the maximum number of hardware CPUs supported by the OS
+ For uniprocessor environments, set this to 1
+endmenu
+source "palacios/src/interfaces/Kconfig"
+source "palacios/src/extensions/Kconfig"
config TELEMETRY
bool "Enable VMM telemetry support"
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"
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 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 VNET_PROFILE
- depends on EXPERIMENTAL && VNET
- bool "Enable Vnet Profiling in Palacios"
+config CHECKPOINT
+ bool "Enable Checkpointing"
default n
- help
- Enable the Vnet performance profiling in Palacios
+ help
+ Temporary option to enable experimental checkpoint code
-config LINUX_VIRTIO_VNET
- bool "Enable Virtio VNET interface"
- default n
- depends on PCI && EXPERIMENTAL && VNET
- help
- Enable the Virtio VNET interface
-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
endmenu
source "Kconfig.stdlibs"
-
menu "Virtual Paging"
config SHADOW_PAGING
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_DILATION
+ bool "Control Guest/Host Time Offseting"
+ default n
+ depends on EXPERIMENTAL
+ help
+ Controls the relative speeds of the guest and host processor
+ to allow the VM to provide the illusion of the guest seeing time
+ pass at a different rate than the host system does.
+
+config TIME_HIDE_VM_COST
+ bool "Hide VMM Run Cost"
+ default n
+ depends on EXPERIMENTAL
+ 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
+ a good bit slower than the host in VM-intensive parts of the code.
+
+config TIME_VIRTUALIZE_TSC
+ bool "Fully virtualize guest TSC"
+ default n
+ depends on EXPERIMENTAL
+ 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
endmenu
+menu "VNET"
+config VNET
+ bool "Enable Vnet in Palacios"
+ default n
+ help
+ Enable the Vnet in Palacios
-menu "Debug configuration"
+config DEBUG_VNET
+ depends on VNET
+ bool "Enable Vnet Debug in Palacios"
+ default n
+ help
+ Enable the Vnet debug in Palacios
-config CONFIG_DEBUG_INFO
- bool "Compile with Debug information"
- default n
- help
- This adds the -g flag to the compilation flags
+
+endmenu
+
+menu "Debug configuration"
## Is unwind information useful
This turns on debugging support
+config DEBUG_SVM
+ bool "AMD SVM"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for the AMD SVM-specific code
+
+config DEBUG_VMX
+ bool "Intel VT"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for the Intel VT-specific code
+
+
config DEBUG_SHADOW_PAGING
bool "Shadow paging"
default n
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"
This turns on debugging for the Instruction Emulator
-config DEBUG_XED
- bool "XED"
+config DEBUG_DECODER
+ bool "Instruction Decoder"
default n
depends on DEBUG_ON
help
- This turns on debugging for the Xed Decoder
+ This turns on debugging for the selected instruction decoder
config DEBUG_HALT
bool "Halt"
help
This turns on debugging for the device manager
-
-
+config DEBUG_MEM_ERRORS
+ bool "Verbose memory errors"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for memory translations and lookups
endmenu