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"
120 config MEM_BLOCK_SIZE
121 int "Allocation size for underlying VM memory"
124 This is the default size in bytes of the underlying memory allocations used for the base memory regions.
125 A good default value is 128MB (134217728 or 0x8000000 bytes). Note that the host interface must be able
126 to provide contiguous memory of at least this size in order for VMs to typically work. This
127 value can be overriden via a load-time option, provided the host supports this.
129 config ALIGNED_PG_ALLOC
130 bool "Host support for aligned page allocations"
133 Select this if your OS supports allocating memory pages using an alignment. This is required
134 if you want Palacios to run with large page table pages.
137 int "Maximum number of cpus"
141 Specifies the maximum number of hardware CPUs supported by the OS
142 For uniprocessor environments, set this to 1
146 source "palacios/src/interfaces/Kconfig"
147 source "palacios/src/extensions/Kconfig"
150 bool "Enable VMM telemetry support"
153 Enable the telemetry framework in Palacios
155 This is a framwork that allows components of palacios to record
156 information that is periodically reported to the log output.
157 Telemetry is automatically collected for vmexits. Subsystem telemetry
158 is configured separately
161 config SHADOW_PAGING_TELEMETRY
162 bool "Enable Shadow Paging Telemetry"
166 Enable telemetry information for shadow paging
169 bool "Enable PMU telemetry"
171 depends on TELEMETRY && HOST_PMU
173 Enable telemetry information for a range of PMU counters
174 This causes the currently configured PMU counts to be printed
176 config PWRSTAT_TELEMETRY
177 bool "Enable power statistics telemetry"
179 depends on TELEMETRY && HOST_PWRSTAT
181 Enable telemetry information for power/energy counters
185 bool "Enable Experimental options"
188 This allows the selection of experimental features. This includes incomplete or unreviewed code.
189 Only enable this feature if you are working on the features in question.
190 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
191 Any code that violates this will be immediately deleted without warning.
193 The purpose of this option is to allow features under development to be committed to the mainline
194 to more easily track changes and provide access to multiple developers
197 bool "Enable Checkpointing"
200 Enable checkpointing functionality (save/load VMs)
202 config LIVE_MIGRATION
203 bool "Enable Live Migration"
204 depends on CHECKPOINT
207 Enable live migration functionality (send/receive VMs)
209 config DEBUG_CHECKPOINT
210 bool "Enable Checkpointing and Live Migration Debugging Output"
211 depends on CHECKPOINT
214 Generate output from the debugging statements in checkpointing and live migration
220 source "Kconfig.stdlibs"
223 menu "Virtual Paging"
226 bool "Enable shadow paging"
229 Enables shadow paging for virtual machines
232 config SHADOW_PAGING_VTLB
235 depends on SHADOW_PAGING
237 Enables Virtual TLB implemenation for shadow paging
240 config DEBUG_SHDW_PG_VTLB
241 bool "Enable VTLB debugging"
243 depends on SHADOW_PAGING_VTLB
245 Enables debugging messages for VTLB implementation
247 config SHADOW_PAGING_CACHE1
248 bool "Shadow Page Cache (1)"
250 depends on SHADOW_PAGING
252 Enables caching implemenation for shadow paging
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 source "palacios/src/gears/Kconfig"
318 menu "Debug configuration"
320 ## Is unwind information useful
323 bool "Enable Debugging"
326 This turns on debugging support
334 This turns on debugging for the AMD SVM-specific code
341 This turns on debugging for the Intel VT-specific code
344 config DEBUG_SHADOW_PAGING
349 This turns on debugging for the shadow paging system
352 config DEBUG_NESTED_PAGING
357 This turns on debugging for the nested paging system
360 config DEBUG_CTRL_REGS
361 bool "Control registers"
365 This turns on debugging for the control register handlers
368 config DEBUG_INTERRUPTS
373 This turns on debugging for the interrupt system
380 This turns on debugging of system time virtualization
382 config DEBUG_SCHEDULER
387 This turns on debugging for scheduler
389 config DEBUG_CPU_MAPPER
394 This turns on debugging for CPU Mapper
401 This turns on debugging for the IO handlers
404 config DEBUG_EMULATOR
405 bool "Instruction Emulator"
409 This turns on debugging for the Instruction Emulator
413 bool "Instruction Decoder"
417 This turns on debugging for the selected instruction decoder
424 This turns on debugging for the halt instruction handler
431 This turns on debugging for the mwait and monitor instruction handlers
434 bool "Device Manager"
438 This turns on debugging for the device manager
440 config DEBUG_MEM_ERRORS
441 bool "Verbose memory errors"
445 This turns on debugging for memory translations and lookups
448 bool "Lock debugging (if host supports it)"
452 This turns on lock debugging for locks in Palacios and in its host-specifc glue code. This requires host support.
454 config DEBUG_MEM_ALLOC
455 bool "Memory allocation debugging (if host supports it)"
459 This turns on memory allocation debugging in Palacios, using the mechanisms provided by the host
465 menu "BIOS Selection"
468 prompt "Boot Code Selection"
471 Select which BIOSes to map into the default PC Class Hardware Configuration
474 bool "Use the SEABIOS and SEABIOS-VGA Boot Code"
476 Use the SEABIOS and SEABIOS-VGA Boot code
480 bool "Use the BOCHS BIOS and BOCHS BIOS-compatible VGA Boot Code"
482 Use the BOCHS BIOS and BOCHS-BIOS-compatible VGA Boot Code
486 bool "Use a user-specified BIOS"
488 Use a user-specified BIOS
495 string "Path to pre-built SEABIOS binary"
497 default "./bios/seabios/out/bios.bin"
499 Path to the SEABIOS binary to use
501 config SEABIOSVGA_PATH
502 string "Path to pre-built SEABIOS-VGA binary"
504 default "./bios/seabios-vga/VGABIOS-lgpl-latest.bin"
506 This is the SEABIOS-compatible vgabios that will be used for the guest
508 config BOCHSBIOS_PATH
509 string "Path to pre-built BOCHS BIOS binary"
511 default "./bios/rombios/BIOS-bochs-latest"
513 This is the rombios that will be used for the guests
515 config BOCHSBIOSVGA_PATH
516 string "Path to pre-built BOCHS-compatible VGABIOS binary"
518 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
520 This is the vgabios that will be used for the guests
522 config OTHERBIOS_PATH
523 string "Path to user-specified Boot Code"
526 This is a completely user-determined blob that will be mapped into the guest
527 No VGA BIOS will be mapped!
530 hex "Starting address (linear address) of BIOS"
531 range 0xe0000 0xe0000 if SEABIOS
532 range 0xf0000 0xf0000 if BOCHSBIOS
534 This is the starting address (linear address) of the BIOS code
538 config VMXASSIST_PATH
539 string "Path to pre-built VMXASSIST binary"
541 default "./bios/vmxassist/vmxassist.bin"
543 This is vmxassist image to boot real mode guests on
549 source "palacios/src/devices/Kconfig"