1 mainmenu "Palacios VMM Configuration"
3 menu "Target Configuration"
7 prompt "Target Host OS"
12 select BUILT_IN_STDLIB
13 select BUILT_IN_STRCASECMP
15 select ALIGNED_PG_ALLOC
18 This enables the necesary options to compile Palacios with Kitten
21 bool "OLD Linux (Built in) -- to be deprecated"
22 select BUILT_IN_STDLIB
26 This enables the necessary options to compile Palacios with Linux 2.6
27 Currently, this is in development, and only 2.6.32 is verified to work
32 select BUILT_IN_STDLIB
33 select BUILT_IN_STRDUP
38 This enables the necessary options to compile Palacios as a Linux module
43 string "Linux Kernel Source directory"
44 default "/usr/src/linux"
46 This is the directory containing the linux source for the kernel module to be built
51 This enables the necesary options to compile Palacios with Kitten
56 Choose this to compile Palacios for a Generic Host OS
62 bool "Red Storm (Cray XT3/XT4)"
64 Support for Cray XT3 and XT4 systems.
67 bool "AMD SVM Support"
70 Compile with support for AMD SVM
73 bool "Intel VMX Support"
76 Compile with support for Intel VMX
80 bool "Compile with Frame pointers"
83 Compiles the Palacios library with Frame pointers
86 bool "Compile with Debug Information"
89 Compiles the Palacios library with debugging symbols
96 bool "XED decoder library"
99 This uses the XED decoder library from pintools
102 bool "Internal Palacios decoder"
104 This selects the internal V3Vee x86 decoder
109 menu "Supported host OS features"
111 config MULTITHREAD_OS
112 bool "Host support for multiple threads"
115 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
116 to require the creation of additional execution threads.
119 config ALIGNED_PG_ALLOC
120 bool "Host support for aligned page allocations"
123 Select this if your OS supports allocating memory pages using an alignment. This is required
124 if you want Palacios to run with large page table pages.
127 int "Maximum number of cpus"
131 Specifies the maximum number of hardware CPUs supported by the OS
132 For uniprocessor environments, set this to 1
136 source "palacios/src/interfaces/Kconfig"
137 source "palacios/src/extensions/Kconfig"
140 bool "Enable VMM telemetry support"
143 Enable the telemetry framework in Palacios
145 This is a framwork that allows components of palacios to record
146 information that is periodically reported to the log output.
147 Telemetry is automatically collected for vmexits. Subsystem telemetry
148 is configured separately
151 config SHADOW_PAGING_TELEMETRY
152 bool "Enable Shadow Paging Telemetry"
156 Enable telemetry information for shadow paging
161 bool "Enable Experimental options"
164 This allows the selection of experimental features. This includes incomplete or unreviewed code.
165 Only enable this feature if you are working on the features in question.
166 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
167 Any code that violates this will be immediately deleted without warning.
169 The purpose of this option is to allow features under development to be committed to the mainline
170 to more easily track changes and provide access to multiple developers
173 bool "Enable Checkpointing"
176 Temporary option to enable experimental checkpoint code
183 source "Kconfig.stdlibs"
186 menu "Virtual Paging"
189 bool "Enable shadow paging"
192 Enables shadow paging for virtual machines
195 config SHADOW_PAGING_VTLB
198 depends on SHADOW_PAGING
200 Enables Virtual TLB implemenation for shadow paging
203 config DEBUG_SHDW_PG_VTLB
204 bool "Enable VTLB debugging"
206 depends on SHADOW_PAGING_VTLB
208 Enables debugging messages for VTLB implementation
210 config SHADOW_PAGING_CACHE1
211 bool "Shadow Page Cache (1)"
213 depends on SHADOW_PAGING
215 Enables caching implemenation for shadow paging
222 menu "Time Management"
223 config VIRTUALIZE_TIME
224 bool "Enable Time virtualization"
227 Enables the timer virtualization extensions
229 config TIME_HIDE_VM_COST
230 bool "Hide VMM Run Cost"
232 depends on VIRTUALIZE_TIME
234 Offset guest time from host time sufficiently to hide the cost of
235 running in the virtual machine. This can aid the consistency of
236 time between multiple timers, but can cause the guest to run
237 a good bit slower than the host in VM-intensive parts of the code.
239 config TIME_VIRTUALIZE_TSC
240 bool "Fully virtualize guest TSC"
242 depends on VIRTUALIZE_TIME
244 Virtualize the processor time stamp counter in the guest,
245 generally increasing consistency between various time sources
246 but also potentially making guest time run slower than real time.
252 menu "Symbiotic Functions"
255 bool "Enable Symbiotic Functionality"
258 Enable Symbiotic components of the VMM.
259 This includes the SymSpy interface.
262 bool "Symbiotic upcalls"
264 depends on SYMBIOTIC && EXPERIMENTAL
266 Enables the Symbiotic upcall interface
271 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
273 This enables the SwapBypass architecture
275 config SWAPBYPASS_TELEMETRY
276 bool "Enable SwapBypass Telemetry"
278 depends on TELEMETRY && SWAPBYPASS
280 Enable the telemetry information for the SwapBypass subsystem
283 bool "Symbiotic Modules"
285 depends on EXPERIMENTAL
286 # depends on SYMBIOTIC
288 Enable Symbiotic module loading
296 bool "Enable Vnet in Palacios"
299 Enable the Vnet in Palacios
303 bool "Enable Vnet Debug in Palacios"
306 Enable the Vnet debug in Palacios
311 menu "Debug configuration"
314 ## Is unwind information useful
317 bool "Enable Debugging"
320 This turns on debugging support
328 This turns on debugging for the AMD SVM-specific code
335 This turns on debugging for the Intel VT-specific code
338 config DEBUG_SHADOW_PAGING
343 This turns on debugging for the shadow paging system
346 config DEBUG_NESTED_PAGING
351 This turns on debugging for the nested paging system
354 config DEBUG_CTRL_REGS
355 bool "Control registers"
359 This turns on debugging for the control register handlers
362 config DEBUG_INTERRUPTS
367 This turns on debugging for the interrupt system
374 This turns on debugging of system time virtualization
381 This turns on debugging for the IO handlers
384 config DEBUG_EMULATOR
385 bool "Instruction Emulator"
389 This turns on debugging for the Instruction Emulator
393 bool "Instruction Decoder"
397 This turns on debugging for the selected instruction decoder
404 This turns on debugging for the halt instruction handler
407 bool "Device Manager"
411 This turns on debugging for the device manager
413 config DEBUG_MEM_ERRORS
414 bool "Verbose memory errors"
418 This turns on debugging for memory translations and lookups
423 menu "BIOS Selection"
426 string "Path to pre-built ROMBIOS binary"
427 default "./bios/rombios/BIOS-bochs-latest"
429 This is the rombios that will be used for the guests
432 string "Path to pre-built VGABIOS binary"
433 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
435 This is the vgabios that will be used for the guests
437 config VMXASSIST_PATH
438 string "Path to pre-built VMXASSIST binary"
440 default "./bios/vmxassist/vmxassist.bin"
442 This is vmxassist image to boot real mode guests on
448 source "palacios/src/devices/Kconfig"