select BUILT_IN_STDLIB
select BUILT_IN_STRCASECMP
select BUILT_IN_ATOI
+ select ALIGNED_PG_ALLOC
+ select MULTITHREAD_OS
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
+ 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 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 DEBUG_INFO
+ bool "Compile with Debug Information"
+ default n
+ help
+ Compiles the Palacios library with debugging symbols
+
+choice
+ prompt "X86 decoder"
+ default XED
+
+config XED
+ bool "XED decoder library"
+ help
+ This uses the XED decoder library from pintools
+
+config V3_DECODER
+ bool "Internal Palacios decoder"
+ help
+ This selects the internal V3Vee x86 decoder
+
+
+endchoice
+
+menu "Supported host OS features"
+
config MULTITHREAD_OS
- bool "Compile for a multi threaded OS"
+ bool "Host support for multiple threads"
default y
help
- This allows Palacios to use OS thread mechanisms
+ Select this if your OS supports multiple threads of execution. This will enable features in Palacios
+ to require the creation of additional execution threads.
+
+config ALIGNED_PG_ALLOC
+ bool "Host support for aligned page allocations"
+ default n
+ help
+ 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 Palacios can support
-
+ 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 "Include Console Support"
+ bool "Host Support for VM console"
default n
help
- Enable console support in Palacios
-
+ 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 "Include Network Socket Support"
- default y
+config PACKET
+ bool "Host support for Raw Packet Transmision"
+ depends on EXPERIMENTAL
+ default n
help
- Enable networking support in Palacios
+ 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
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"
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
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
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 VIRTUALIZE_TIME
+ bool "Enable Time virtualization"
+ default n
+ help
+ Enables the timer virtualization extensions
+
+config TIME_HIDE_VM_COST
+ bool "Hide VMM Run Cost"
+ default n
+ depends on VIRTUALIZE_TIME
+ 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 VIRTUALIZE_TIME
+ 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
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"