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
161 bool "Enable PMU telemetry"
163 depends on TELEMETRY && HOST_PMU
165 Enable telemetry information for a range of PMU counters
166 This causes the currently configured PMU counts to be printed
168 config PWRSTAT_TELEMETRY
169 bool "Enable power statistics telemetry"
171 depends on TELEMETRY && HOST_PWRSTAT
173 Enable telemetry information for power/energy counters
177 bool "Enable Experimental options"
180 This allows the selection of experimental features. This includes incomplete or unreviewed code.
181 Only enable this feature if you are working on the features in question.
182 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
183 Any code that violates this will be immediately deleted without warning.
185 The purpose of this option is to allow features under development to be committed to the mainline
186 to more easily track changes and provide access to multiple developers
189 bool "Enable Checkpointing"
192 Enable checkpointing functionality (save/load VMs)
194 config LIVE_MIGRATION
195 bool "Enable Live Migration"
196 depends on CHECKPOINT
199 Enable live migration functionality (send/receive VMs)
201 config DEBUG_CHECKPOINT
202 bool "Enable Checkpointing and Live Migration Debugging Output"
203 depends on CHECKPOINT
206 Generate output from the debugging statements in checkpointing and live migration
212 source "Kconfig.stdlibs"
215 menu "Virtual Paging"
218 bool "Enable shadow paging"
221 Enables shadow paging for virtual machines
224 config SHADOW_PAGING_VTLB
227 depends on SHADOW_PAGING
229 Enables Virtual TLB implemenation for shadow paging
232 config DEBUG_SHDW_PG_VTLB
233 bool "Enable VTLB debugging"
235 depends on SHADOW_PAGING_VTLB
237 Enables debugging messages for VTLB implementation
239 config SHADOW_PAGING_CACHE1
240 bool "Shadow Page Cache (1)"
242 depends on SHADOW_PAGING
244 Enables caching implemenation for shadow paging
249 menu "Symbiotic Functions"
252 bool "Enable Symbiotic Functionality"
255 Enable Symbiotic components of the VMM.
256 This includes the SymSpy interface.
259 bool "Symbiotic upcalls"
261 depends on SYMBIOTIC && EXPERIMENTAL
263 Enables the Symbiotic upcall interface
268 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
270 This enables the SwapBypass architecture
272 config SWAPBYPASS_TELEMETRY
273 bool "Enable SwapBypass Telemetry"
275 depends on TELEMETRY && SWAPBYPASS
277 Enable the telemetry information for the SwapBypass subsystem
280 bool "Symbiotic Modules"
282 depends on EXPERIMENTAL
283 # depends on SYMBIOTIC
285 Enable Symbiotic module loading
293 bool "Enable Vnet in Palacios"
296 Enable the Vnet in Palacios
300 bool "Enable Vnet Debug in Palacios"
303 Enable the Vnet debug in Palacios
308 source "palacios/src/gears/Kconfig"
310 menu "Debug configuration"
312 ## Is unwind information useful
315 bool "Enable Debugging"
318 This turns on debugging support
326 This turns on debugging for the AMD SVM-specific code
333 This turns on debugging for the Intel VT-specific code
336 config DEBUG_SHADOW_PAGING
341 This turns on debugging for the shadow paging system
344 config DEBUG_NESTED_PAGING
349 This turns on debugging for the nested paging system
352 config DEBUG_CTRL_REGS
353 bool "Control registers"
357 This turns on debugging for the control register handlers
360 config DEBUG_INTERRUPTS
365 This turns on debugging for the interrupt system
372 This turns on debugging of system time virtualization
374 config DEBUG_SCHEDULER
379 This turns on debugging for scheduler
381 config DEBUG_CPU_MAPPER
386 This turns on debugging for CPU Mapper
393 This turns on debugging for the IO handlers
396 config DEBUG_EMULATOR
397 bool "Instruction Emulator"
401 This turns on debugging for the Instruction Emulator
405 bool "Instruction Decoder"
409 This turns on debugging for the selected instruction decoder
416 This turns on debugging for the halt instruction handler
423 This turns on debugging for the mwait and monitor instruction handlers
426 bool "Device Manager"
430 This turns on debugging for the device manager
432 config DEBUG_MEM_ERRORS
433 bool "Verbose memory errors"
437 This turns on debugging for memory translations and lookups
440 bool "Lock debugging (if host supports it)"
444 This turns on lock debugging for locks in Palacios and in its host-specifc glue code. This requires host support.
446 config DEBUG_MEM_ALLOC
447 bool "Memory allocation debugging (if host supports it)"
451 This turns on memory allocation debugging in Palacios, using the mechanisms provided by the host
457 menu "BIOS Selection"
460 string "Path to pre-built ROMBIOS binary"
461 default "./bios/rombios/BIOS-bochs-latest"
463 This is the rombios that will be used for the guests
466 string "Path to pre-built VGABIOS binary"
467 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
469 This is the vgabios that will be used for the guests
471 config VMXASSIST_PATH
472 string "Path to pre-built VMXASSIST binary"
474 default "./bios/vmxassist/vmxassist.bin"
476 This is vmxassist image to boot real mode guests on
482 source "palacios/src/devices/Kconfig"