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
106 bool "QUIX86 decoder"
108 This selects the QUIX86 decoder library
111 bool "QUIX86 decoder debug version"
113 This selects the QUIX86 decoder library compiled w/o optimization
118 menu "Supported host OS features"
121 config ALIGNED_PG_ALLOC
122 bool "Host support for aligned page allocations"
125 Select this if your OS supports allocating memory pages using an alignment. This is required
126 if you want Palacios to run with large page table pages.
129 int "Maximum number of cpus"
133 Specifies the maximum number of hardware CPUs supported by the OS
134 For uniprocessor environments, set this to 1
138 source "palacios/src/interfaces/Kconfig"
139 source "palacios/src/extensions/Kconfig"
142 bool "Enable VMM telemetry support"
145 Enable the telemetry framework in Palacios
147 This is a framwork that allows components of palacios to record
148 information that is periodically reported to the log output.
149 Telemetry is automatically collected for vmexits. Subsystem telemetry
150 is configured separately
153 config SHADOW_PAGING_TELEMETRY
154 bool "Enable Shadow Paging Telemetry"
158 Enable telemetry information for shadow paging
163 bool "Enable Experimental options"
166 This allows the selection of experimental features. This includes incomplete or unreviewed code.
167 Only enable this feature if you are working on the features in question.
168 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
169 Any code that violates this will be immediately deleted without warning.
171 The purpose of this option is to allow features under development to be committed to the mainline
172 to more easily track changes and provide access to multiple developers
175 bool "Enable Checkpointing"
178 Temporary option to enable experimental checkpoint code
185 source "Kconfig.stdlibs"
188 menu "Virtual Paging"
191 bool "Enable shadow paging"
194 Enables shadow paging for virtual machines
197 config SHADOW_PAGING_VTLB
200 depends on SHADOW_PAGING
202 Enables Virtual TLB implemenation for shadow paging
205 config DEBUG_SHDW_PG_VTLB
206 bool "Enable VTLB debugging"
208 depends on SHADOW_PAGING_VTLB
210 Enables debugging messages for VTLB implementation
212 config SHADOW_PAGING_CACHE1
213 bool "Shadow Page Cache (1)"
215 depends on SHADOW_PAGING
217 Enables caching implemenation for shadow paging
224 menu "Time Management"
226 bool "Control Guest/Host Time Offseting"
228 depends on EXPERIMENTAL
230 Controls the relative speeds of the guest and host processor
231 to allow the VM to provide the illusion of the guest seeing time
232 pass at a different rate than the host system does.
234 config TIME_HIDE_VM_COST
235 bool "Hide VMM Run Cost"
237 depends on EXPERIMENTAL
239 Offset guest time from host time sufficiently to hide the cost of
240 running in the virtual machine. This can aid the consistency of
241 time between multiple timers, but can cause the guest to run
242 a good bit slower than the host in VM-intensive parts of the code.
244 config TIME_VIRTUALIZE_TSC
245 bool "Fully virtualize guest TSC"
247 depends on EXPERIMENTAL
249 Virtualize the processor time stamp counter in the guest,
250 generally increasing consistency between various time sources
251 but also potentially making guest time run slower than real time.
257 menu "Symbiotic Functions"
260 bool "Enable Symbiotic Functionality"
263 Enable Symbiotic components of the VMM.
264 This includes the SymSpy interface.
267 bool "Symbiotic upcalls"
269 depends on SYMBIOTIC && EXPERIMENTAL
271 Enables the Symbiotic upcall interface
276 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
278 This enables the SwapBypass architecture
280 config SWAPBYPASS_TELEMETRY
281 bool "Enable SwapBypass Telemetry"
283 depends on TELEMETRY && SWAPBYPASS
285 Enable the telemetry information for the SwapBypass subsystem
288 bool "Symbiotic Modules"
290 depends on EXPERIMENTAL
291 # depends on SYMBIOTIC
293 Enable Symbiotic module loading
301 bool "Enable Vnet in Palacios"
304 Enable the Vnet in Palacios
308 bool "Enable Vnet Debug in Palacios"
311 Enable the Vnet debug in Palacios
316 menu "Debug configuration"
319 ## Is unwind information useful
322 bool "Enable Debugging"
325 This turns on debugging support
333 This turns on debugging for the AMD SVM-specific code
340 This turns on debugging for the Intel VT-specific code
343 config DEBUG_SHADOW_PAGING
348 This turns on debugging for the shadow paging system
351 config DEBUG_NESTED_PAGING
356 This turns on debugging for the nested paging system
359 config DEBUG_CTRL_REGS
360 bool "Control registers"
364 This turns on debugging for the control register handlers
367 config DEBUG_INTERRUPTS
372 This turns on debugging for the interrupt system
379 This turns on debugging of system time virtualization
386 This turns on debugging for the IO handlers
389 config DEBUG_EMULATOR
390 bool "Instruction Emulator"
394 This turns on debugging for the Instruction Emulator
398 bool "Instruction Decoder"
402 This turns on debugging for the selected instruction decoder
409 This turns on debugging for the halt instruction handler
412 bool "Device Manager"
416 This turns on debugging for the device manager
418 config DEBUG_MEM_ERRORS
419 bool "Verbose memory errors"
423 This turns on debugging for memory translations and lookups
428 menu "BIOS Selection"
431 string "Path to pre-built ROMBIOS binary"
432 default "./bios/rombios/BIOS-bochs-latest"
434 This is the rombios that will be used for the guests
437 string "Path to pre-built VGABIOS binary"
438 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
440 This is the vgabios that will be used for the guests
442 config VMXASSIST_PATH
443 string "Path to pre-built VMXASSIST binary"
445 default "./bios/vmxassist/vmxassist.bin"
447 This is vmxassist image to boot real mode guests on
453 source "palacios/src/devices/Kconfig"