Compile with support for Intel VMX
+
config FRAME_POINTER
bool "Compile with Frame pointers"
default n
endchoice
menu "Supported host OS features"
-
+
+config MEM_BLOCK_SIZE
+ int "Allocation size for underlying VM memory"
+ default 134217728
+ help
+ This is the default size in bytes of the underlying memory allocations used for the base memory regions.
+ A good default value is 128MB (134217728 or 0x8000000 bytes). Note that the host interface must be able
+ to provide contiguous memory of at least this size in order for VMs to typically work. This
+ value can be overriden via a load-time option, provided the host supports this.
config ALIGNED_PG_ALLOC
bool "Host support for aligned page allocations"
endmenu
source "palacios/src/interfaces/Kconfig"
+
+menu "Virtual core specialization"
+
+config CUSTOM_CPUID
+ bool "Use custom CPU information (vendor, etc)"
+ default n
+ help
+ If set, the CPU information will be for a special V3VEE vendor.
+ This should result in identical guest kernel setup, regardless
+ of the underlying hardware, but it also means that the guest kernel
+ has no chance of employing CPU-specific bug fixes.
+
+config STRICT_MSR_SEMANTICS
+ bool "Use strict RDMSR/WRMSR semantics"
+ default n
+ help
+ Use strict MSR semantics - when an unhandled MSR is read or written,
+ a GPF is generated. This is typically usd with CUSTOM_CPU_TYPE on.
+
+config FP_SWITCH
+ bool "Floating point context switching"
+ default n
+ help
+ If set, floating point is handled for context switches
+ (VM1->VM2->VM1 and/or VM->HOST->VM). This can be disabled
+ for environments where a single VM is the only user of FP.
+ Note that even if disabled, FP save/restore code is included
+ for support of checkpoint/restore.
+
+config LAZY_FP_SWITCH
+ bool "Use host-based lazy floating point context switching"
+ depends on FP_SWITCH && HOST_LAZY_FPU_SWITCH
+ default y
+ help
+ When true, the host's lazy floating point save/restore
+ mechanism is notified on each exit and entry. If false,
+ the floating point state is explicitly saved on each exit
+ and restored on each entry---this save/restore is entirely
+ done in Palacios.
+
+
+endmenu
+
source "palacios/src/extensions/Kconfig"
config TELEMETRY
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"
menu "Virtual Paging"
+config NESTED_PAGING
+ bool "Enable nested paging"
+ default y
+ help
+ Enable nested paging (should always be on)
+
config SHADOW_PAGING
bool "Enable shadow paging"
default y
depends on SHADOW_PAGING
help
Enables Virtual TLB implemenation for shadow paging
+ Virtual TLB now uses PAE so there are no 4 GB restrictions
config DEBUG_SHDW_PG_VTLB
help
Enables debugging messages for VTLB implementation
-config SHADOW_PAGING_CACHE1
- bool "Shadow Page Cache (1)"
- default y
- depends on SHADOW_PAGING
+config SHADOW_PAGING_CACHE
+ bool "Shadow Page Cache"
+ default n
+ depends on SHADOW_PAGING && EXPERIMENTAL
help
- Enables caching implemenation for shadow paging
+ Enables caching implementation of shadow paging
+config DEBUG_SHADOW_PAGING_CACHE
+ bool "Enable Shadow Page Cache Debugging"
+ default n
+ depends on SHADOW_PAGING_CACHE
+ help
+ Enables debugging messages for the VTLB + Caching implementation
+
+#config SHADOW_PAGING_KVM
+# bool "KVM-style Shadow Pager"
+# default n
+# depends on SHADOW_PAGING && EXPERIMENTAL
+# help
+# Enables shadow pager derived from KVM
+# You probably do not want this and it will probably not compile!
+#
+#config DEBUG_SHADOW_PAGING_KVM
+# bool "Enable KVM-style Shadow Pager Debugging"
+# default n
+# depends on SHADOW_PAGING_KVM
+# help
+# Enables debugging messages for the KVM-style shadow pager
+
+
+config SWAPPING
+ bool "Enable swapping"
+ default n
+ depends on (SHADOW_PAGING || NESTED_PAGING) && FILE
+ help
+ Enables swapping of regions of guest physical memory to a file
+
+config DEBUG_SWAPPING
+ bool "Enable swapping debugging"
+ default n
+ depends on SWAPPING
+ help
+ Provides debugging output from the swapping system
+
+config MEM_TRACK
+ bool "Enable memory access tracking"
+ default n
+ depends on SHADOW_PAGING || NESTED_PAGING
+ help
+ Allows tracking of memory accesses on a page granularity
+
+config DEBUG_MEM_TRACK
+ bool "Enable memory access tracking debugging"
+ default n
+ depends on MEM_TRACK
+ help
+ Provides debugging output for memory access tracking
endmenu
source "palacios/src/gears/Kconfig"
+
+menu "HVM"
+
+config HVM
+ bool "Support Hybrid Virtual Machines"
+ default n
+ help
+ If set, it is possible to make VMs that are partitioned
+ (cores, memory, devices, hardware access, etc) into
+ a part ("the ROS") that supports normal VM operation and
+ a part ("the HRT") that supports Hybrid Run-Times,
+ for example Nautilus-based HRTs for parallel languages.
+
+config DEBUG_HVM
+ depends on HVM
+ bool "Enable HVM debugging in Palacios"
+ default n
+ help
+ Enable HVM debugging output
+
+endmenu
+
menu "Debug configuration"
## Is unwind information useful
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 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
+
+
endmenu
menu "BIOS Selection"
-config ROMBIOS_PATH
- string "Path to pre-built ROMBIOS binary"
+choice
+ prompt "Boot Code Selection"
+ default SEABIOS
+ help
+ Select which BIOSes to map into the default PC Class Hardware Configuration
+
+config SEABIOS
+ bool "Use the SEABIOS and SEABIOS-VGA Boot Code"
+ help
+ Use the SEABIOS and SEABIOS-VGA Boot code
+
+
+config BOCHSBIOS
+ bool "Use the BOCHS BIOS and BOCHS BIOS-compatible VGA Boot Code"
+ help
+ Use the BOCHS BIOS and BOCHS-BIOS-compatible VGA Boot Code
+
+
+config OTHERBIOS
+ bool "Use a user-specified BIOS"
+ help
+ Use a user-specified BIOS
+
+
+endchoice
+
+
+config SEABIOS_PATH
+ string "Path to pre-built SEABIOS binary"
+ depends on SEABIOS
+ default "./bios/seabios/out/bios.bin"
+ help
+ Path to the SEABIOS binary to use
+
+config SEABIOSVGA_PATH
+ string "Path to pre-built SEABIOS-VGA binary"
+ depends on SEABIOS
+ default "./bios/seabios-vga/VGABIOS-lgpl-latest.bin"
+ help
+ This is the SEABIOS-compatible vgabios that will be used for the guest
+
+config BOCHSBIOS_PATH
+ string "Path to pre-built BOCHS BIOS binary"
+ depends on BOCHSBIOS
default "./bios/rombios/BIOS-bochs-latest"
help
This is the rombios that will be used for the guests
-config VGABIOS_PATH
- string "Path to pre-built VGABIOS binary"
+config BOCHSBIOSVGA_PATH
+ string "Path to pre-built BOCHS-compatible VGABIOS binary"
+ depends on BOCHSBIOS
default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
help
This is the vgabios that will be used for the guests
+config OTHERBIOS_PATH
+ string "Path to user-specified Boot Code"
+ depends on OTHERBIOS
+ help
+ This is a completely user-determined blob that will be mapped into the guest
+ No VGA BIOS will be mapped!
+
+config BIOS_START
+ hex "Starting address (linear address) of BIOS"
+ range 0xe0000 0xe0000 if SEABIOS
+ range 0xf0000 0xf0000 if BOCHSBIOS
+ help
+ This is the starting address (linear address) of the BIOS code
+
+
+
config VMXASSIST_PATH
string "Path to pre-built VMXASSIST binary"
depends on VMX