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
Compile with support for Intel VMX
+config FRAME_POINTER
+ bool "Compile with Frame pointers"
+ default n
+ help
+ Compiles the Palacios library with Frame pointers
+
config DEBUG_INFO
bool "Compile with Debug Information"
default n
help
This selects the internal V3Vee x86 decoder
+config QUIX86
+ bool "QUIX86 decoder"
+ help
+ This selects the QUIX86 decoder library
+
+config QUIX86_DEBUG
+ bool "QUIX86 decoder debug version"
+ help
+ This selects the QUIX86 decoder library compiled w/o optimization
+ and with debug info
endchoice
menu "Supported host OS features"
-config MULTITHREAD_OS
- bool "Host support for multiple threads"
- default y
- help
- 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"
endmenu
source "palacios/src/interfaces/Kconfig"
-
+source "palacios/src/extensions/Kconfig"
config TELEMETRY
bool "Enable VMM telemetry support"
help
Enable telemetry information for shadow paging
+config PMU_TELEMETRY
+ bool "Enable PMU telemetry"
+ default n
+ depends on TELEMETRY && HOST_PMU
+ help
+ Enable telemetry information for a range of PMU counters
+ This causes the currently configured PMU counts to be printed
+config PWRSTAT_TELEMETRY
+ bool "Enable power statistics telemetry"
+ default n
+ depends on TELEMETRY && HOST_PWRSTAT
+ help
+ Enable telemetry information for power/energy counters
+
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 INSPECTOR
- bool "Enable VM inspection"
- depends on EXPERIMENTAL
+config CHECKPOINT
+ bool "Enable Checkpointing"
default n
help
- Enable inspection framework for vm internal state
+ Enable checkpointing functionality (save/load VMs)
-config SYSCALL_HIJACK
- bool "Enable System Call Interposition"
- depends on EXPERIMENTAL
- default n
- help
- Enable the VMM to hijack system calls executed by the guest.
- If enabled, the VMM will intercept software interrupt (INT) instructions,
- Fast-System Call instructions (SYSENTER, SYSCALL), and the LIDT instruction
+config LIVE_MIGRATION
+ bool "Enable Live Migration"
+ depends on CHECKPOINT
+ default n
+ help
+ Enable live migration functionality (send/receive VMs)
+
+config DEBUG_CHECKPOINT
+ bool "Enable Checkpointing and Live Migration Debugging Output"
+ depends on CHECKPOINT
+ default n
+ help
+ Generate output from the debugging statements in checkpointing and live migration
-config HIJACK_SYSCALL_MSR
- bool "Intercept Syscall-related MSR reads & writes"
- depends on SYSCALL_HIJACK
- default n
- help
- Allow the VMM to intercept reads and writes to MSRs
- related to SYSCALL and SYSENTER instructions. Specifically,
- it will intercept R/W to STAR, CSTAR, and LSTAR.
endmenu
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
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
+
+source "palacios/src/gears/Kconfig"
+
+menu "Debug configuration"
## Is unwind information useful
help
This turns on debugging of system time virtualization
+config DEBUG_SCHEDULER
+ bool "Scheduler"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for scheduler
+
+config DEBUG_CPU_MAPPER
+ bool "CPU Mapper"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for CPU Mapper
+
config DEBUG_IO
bool "IO"
default n
help
This turns on debugging for the halt instruction handler
+config DEBUG_MWAIT
+ bool "MWAIT/MONITOR"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for the mwait and monitor instruction handlers
+
config DEBUG_DEV_MGR
bool "Device Manager"
default n
help
This turns on debugging for the device manager
-config DEBUG_VNET
- depends on EXPERIMENTAL && VNET
- bool "Enable Vnet Debug in Palacios"
- default n
- help
- Enable the Vnet debug in Palacios
+config DEBUG_MEM_ERRORS
+ bool "Verbose memory errors"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on debugging for memory translations and lookups
+
+config DEBUG_LOCKS
+ bool "Lock debugging (if host supports it)"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on lock debugging for locks in Palacios and in its host-specifc glue code. This requires host support.
+
+config DEBUG_MEM_ALLOC
+ bool "Memory allocation debugging (if host supports it)"
+ default n
+ depends on DEBUG_ON
+ help
+ This turns on memory allocation debugging in Palacios, using the mechanisms provided by the host
-config DEBUG_SYSCALL_HIJACK
- bool "Enable Syscall hijack Debug in Palacios"
- default n
- depends on EXPERIMENTAL && SYSCALL_HIJACK && DEBUG_ON
- help
- Enable Debugging printouts for syscall hijacking
- code in Palacios
endmenu