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
17 This enables the necesary options to compile Palacios with Kitten
20 bool "OLD Linux (Built in) -- to be deprecated"
21 select BUILT_IN_STDLIB
25 This enables the necessary options to compile Palacios with Linux 2.6
26 Currently, this is in development, and only 2.6.32 is verified to work
31 select BUILT_IN_STDLIB
32 select BUILT_IN_STRDUP
37 This enables the necessary options to compile Palacios as a Linux module
42 string "Linux Kernel Source directory"
43 default "/usr/src/linux"
45 This is the directory containing the linux source for the kernel module to be built
50 This enables the necesary options to compile Palacios with Kitten
55 Choose this to compile Palacios for a Generic Host OS
61 bool "Red Storm (Cray XT3/XT4)"
63 Support for Cray XT3 and XT4 systems.
66 bool "AMD SVM Support"
69 Compile with support for AMD SVM
72 bool "Intel VMX Support"
75 Compile with support for Intel VMX
79 bool "Compile with Frame pointers"
82 Compiles the Palacios library with Frame pointers
85 bool "Compile with Debug Information"
88 Compiles the Palacios library with debugging symbols
95 bool "XED decoder library"
98 This uses the XED decoder library from pintools
101 bool "Internal Palacios decoder"
103 This selects the internal V3Vee x86 decoder
108 menu "Supported host OS features"
111 config ALIGNED_PG_ALLOC
112 bool "Host support for aligned page allocations"
115 Select this if your OS supports allocating memory pages using an alignment. This is required
116 if you want Palacios to run with large page table pages.
119 int "Maximum number of cpus"
123 Specifies the maximum number of hardware CPUs supported by the OS
124 For uniprocessor environments, set this to 1
128 source "palacios/src/interfaces/Kconfig"
129 source "palacios/src/extensions/Kconfig"
132 bool "Enable VMM telemetry support"
135 Enable the telemetry framework in Palacios
137 This is a framwork that allows components of palacios to record
138 information that is periodically reported to the log output.
139 Telemetry is automatically collected for vmexits. Subsystem telemetry
140 is configured separately
143 config SHADOW_PAGING_TELEMETRY
144 bool "Enable Shadow Paging Telemetry"
148 Enable telemetry information for shadow paging
153 bool "Enable Experimental options"
156 This allows the selection of experimental features. This includes incomplete or unreviewed code.
157 Only enable this feature if you are working on the features in question.
158 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
159 Any code that violates this will be immediately deleted without warning.
161 The purpose of this option is to allow features under development to be committed to the mainline
162 to more easily track changes and provide access to multiple developers
165 bool "Enable Checkpointing"
168 Temporary option to enable experimental checkpoint code
175 source "Kconfig.stdlibs"
178 menu "Virtual Paging"
181 bool "Enable shadow paging"
184 Enables shadow paging for virtual machines
187 config SHADOW_PAGING_VTLB
190 depends on SHADOW_PAGING
192 Enables Virtual TLB implemenation for shadow paging
195 config DEBUG_SHDW_PG_VTLB
196 bool "Enable VTLB debugging"
198 depends on SHADOW_PAGING_VTLB
200 Enables debugging messages for VTLB implementation
202 config SHADOW_PAGING_CACHE1
203 bool "Shadow Page Cache (1)"
205 depends on SHADOW_PAGING
207 Enables caching implemenation for shadow paging
214 menu "Time Management"
216 bool "Control Guest/Host Time Offseting"
218 depends on EXPERIMENTAL
220 Controls the relative speeds of the guest and host processor
221 to allow the VM to provide the illusion of the guest seeing time
222 pass at a different rate than the host system does.
224 config TIME_HIDE_VM_COST
225 bool "Hide VMM Run Cost"
227 depends on EXPERIMENTAL
229 Offset guest time from host time sufficiently to hide the cost of
230 running in the virtual machine. This can aid the consistency of
231 time between multiple timers, but can cause the guest to run
232 a good bit slower than the host in VM-intensive parts of the code.
234 config TIME_VIRTUALIZE_TSC
235 bool "Fully virtualize guest TSC"
237 depends on EXPERIMENTAL
239 Virtualize the processor time stamp counter in the guest,
240 generally increasing consistency between various time sources
241 but also potentially making guest time run slower than real time.
247 menu "Symbiotic Functions"
250 bool "Enable Symbiotic Functionality"
253 Enable Symbiotic components of the VMM.
254 This includes the SymSpy interface.
257 bool "Symbiotic upcalls"
259 depends on SYMBIOTIC && EXPERIMENTAL
261 Enables the Symbiotic upcall interface
266 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
268 This enables the SwapBypass architecture
270 config SWAPBYPASS_TELEMETRY
271 bool "Enable SwapBypass Telemetry"
273 depends on TELEMETRY && SWAPBYPASS
275 Enable the telemetry information for the SwapBypass subsystem
278 bool "Symbiotic Modules"
280 depends on EXPERIMENTAL
281 # depends on SYMBIOTIC
283 Enable Symbiotic module loading
291 bool "Enable Vnet in Palacios"
294 Enable the Vnet in Palacios
298 bool "Enable Vnet Debug in Palacios"
301 Enable the Vnet debug in Palacios
306 menu "Debug configuration"
309 ## Is unwind information useful
312 bool "Enable Debugging"
315 This turns on debugging support
323 This turns on debugging for the AMD SVM-specific code
330 This turns on debugging for the Intel VT-specific code
333 config DEBUG_SHADOW_PAGING
338 This turns on debugging for the shadow paging system
341 config DEBUG_NESTED_PAGING
346 This turns on debugging for the nested paging system
349 config DEBUG_CTRL_REGS
350 bool "Control registers"
354 This turns on debugging for the control register handlers
357 config DEBUG_INTERRUPTS
362 This turns on debugging for the interrupt system
369 This turns on debugging of system time virtualization
376 This turns on debugging for the IO handlers
379 config DEBUG_EMULATOR
380 bool "Instruction Emulator"
384 This turns on debugging for the Instruction Emulator
388 bool "Instruction Decoder"
392 This turns on debugging for the selected instruction decoder
399 This turns on debugging for the halt instruction handler
402 bool "Device Manager"
406 This turns on debugging for the device manager
408 config DEBUG_MEM_ERRORS
409 bool "Verbose memory errors"
413 This turns on debugging for memory translations and lookups
418 menu "BIOS Selection"
421 string "Path to pre-built ROMBIOS binary"
422 default "./bios/rombios/BIOS-bochs-latest"
424 This is the rombios that will be used for the guests
427 string "Path to pre-built VGABIOS binary"
428 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
430 This is the vgabios that will be used for the guests
432 config VMXASSIST_PATH
433 string "Path to pre-built VMXASSIST binary"
435 default "./bios/vmxassist/vmxassist.bin"
437 This is vmxassist image to boot real mode guests on
443 source "palacios/src/devices/Kconfig"