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"
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 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 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 SW_INTERRUPTS
- bool "Enable interception and hooking of software interrupts"
- depends on EXPERIMENTAL
- default n
- help
- This feature will cause the VMM to intercept the execution
- of software interrupts (i.e. the INTn instruction) and enable
- any INT vector to be hooked
-
-config SWINTR_PASSTHROUGH
- bool "Hook all unhandled sofware interrupts for passthrough"
- depends on SW_INTERRUPTS
- default n
- help
- If enabled, this will cause all software interrupts
- (INT instruction vectors) to be hooked for passthrough.
- May reduce performance but useful for debugging.
+config LIVE_MIGRATION
+ bool "Enable Live Migration"
+ depends on CHECKPOINT
+ default n
+ help
+ Enable live migration functionality (send/receive VMs)
-config SYSCALL_HIJACK
- bool "Enable System Call Hijacking"
- depends on SW_INTERRUPTS
- default n
- help
- Enable the VMM to hijack system calls executed by the guest.
- If enabled, the VMM will hook execution of INT 80
- (support for Fast-System Calls coming soon)
+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 SYSCALL_PASSTHROUGH
- bool "Hook all unhandled system calls for passthrough"
- depends on SYSCALL_HIJACK
- default n
- help
- If enabled, this option will cause all system calls
- that are not explicitly hooked to be hooked for
- passthrough. This is useful for debugging.
-
-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_SYSCALL_HIJACK
- bool "Enable Syscall Hijack Debug in Palacios"
- default n
- depends on DEBUG_ON && SYSCALL_HIJACK
- help
- Enable Debugging printouts for syscall hijacking
- code 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
endmenu