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 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)
127 config ALIGNED_PG_ALLOC
128 bool "Host support for aligned page allocations"
131 Select this if your OS supports allocating memory pages using an alignment. This is required
132 if you want Palacios to run with large page table pages.
135 int "Maximum number of cpus"
139 Specifies the maximum number of hardware CPUs supported by the OS
140 For uniprocessor environments, set this to 1
144 source "palacios/src/interfaces/Kconfig"
145 source "palacios/src/extensions/Kconfig"
148 bool "Enable VMM telemetry support"
151 Enable the telemetry framework in Palacios
153 This is a framwork that allows components of palacios to record
154 information that is periodically reported to the log output.
155 Telemetry is automatically collected for vmexits. Subsystem telemetry
156 is configured separately
159 config SHADOW_PAGING_TELEMETRY
160 bool "Enable Shadow Paging Telemetry"
164 Enable telemetry information for shadow paging
167 bool "Enable PMU telemetry"
169 depends on TELEMETRY && HOST_PMU
171 Enable telemetry information for a range of PMU counters
172 This causes the currently configured PMU counts to be printed
174 config PWRSTAT_TELEMETRY
175 bool "Enable power statistics telemetry"
177 depends on TELEMETRY && HOST_PWRSTAT
179 Enable telemetry information for power/energy counters
183 bool "Enable Experimental options"
186 This allows the selection of experimental features. This includes incomplete or unreviewed code.
187 Only enable this feature if you are working on the features in question.
188 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
189 Any code that violates this will be immediately deleted without warning.
191 The purpose of this option is to allow features under development to be committed to the mainline
192 to more easily track changes and provide access to multiple developers
195 bool "Enable Checkpointing"
198 Enable checkpointing functionality (save/load VMs)
200 config LIVE_MIGRATION
201 bool "Enable Live Migration"
202 depends on CHECKPOINT
205 Enable live migration functionality (send/receive VMs)
207 config DEBUG_CHECKPOINT
208 bool "Enable Checkpointing and Live Migration Debugging Output"
209 depends on CHECKPOINT
212 Generate output from the debugging statements in checkpointing and live migration
218 source "Kconfig.stdlibs"
221 menu "Virtual Paging"
224 bool "Enable shadow paging"
227 Enables shadow paging for virtual machines
230 config SHADOW_PAGING_VTLB
233 depends on SHADOW_PAGING
235 Enables Virtual TLB implemenation for shadow paging
238 config DEBUG_SHDW_PG_VTLB
239 bool "Enable VTLB debugging"
241 depends on SHADOW_PAGING_VTLB
243 Enables debugging messages for VTLB implementation
245 config SHADOW_PAGING_CACHE1
246 bool "Shadow Page Cache (1)"
248 depends on SHADOW_PAGING
250 Enables caching implemenation for shadow paging
255 menu "Symbiotic Functions"
258 bool "Enable Symbiotic Functionality"
261 Enable Symbiotic components of the VMM.
262 This includes the SymSpy interface.
265 bool "Symbiotic upcalls"
267 depends on SYMBIOTIC && EXPERIMENTAL
269 Enables the Symbiotic upcall interface
274 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
276 This enables the SwapBypass architecture
278 config SWAPBYPASS_TELEMETRY
279 bool "Enable SwapBypass Telemetry"
281 depends on TELEMETRY && SWAPBYPASS
283 Enable the telemetry information for the SwapBypass subsystem
286 bool "Symbiotic Modules"
288 depends on EXPERIMENTAL
289 # depends on SYMBIOTIC
291 Enable Symbiotic module loading
299 bool "Enable Vnet in Palacios"
302 Enable the Vnet in Palacios
306 bool "Enable Vnet Debug in Palacios"
309 Enable the Vnet debug in Palacios
314 source "palacios/src/gears/Kconfig"
316 menu "Debug configuration"
318 ## Is unwind information useful
321 bool "Enable Debugging"
324 This turns on debugging support
332 This turns on debugging for the AMD SVM-specific code
339 This turns on debugging for the Intel VT-specific code
342 config DEBUG_SHADOW_PAGING
347 This turns on debugging for the shadow paging system
350 config DEBUG_NESTED_PAGING
355 This turns on debugging for the nested paging system
358 config DEBUG_CTRL_REGS
359 bool "Control registers"
363 This turns on debugging for the control register handlers
366 config DEBUG_INTERRUPTS
371 This turns on debugging for the interrupt system
378 This turns on debugging of system time virtualization
380 config DEBUG_SCHEDULER
385 This turns on debugging for scheduler
387 config DEBUG_CPU_MAPPER
392 This turns on debugging for CPU Mapper
399 This turns on debugging for the IO handlers
402 config DEBUG_EMULATOR
403 bool "Instruction Emulator"
407 This turns on debugging for the Instruction Emulator
411 bool "Instruction Decoder"
415 This turns on debugging for the selected instruction decoder
422 This turns on debugging for the halt instruction handler
429 This turns on debugging for the mwait and monitor instruction handlers
432 bool "Device Manager"
436 This turns on debugging for the device manager
438 config DEBUG_MEM_ERRORS
439 bool "Verbose memory errors"
443 This turns on debugging for memory translations and lookups
446 bool "Lock debugging (if host supports it)"
450 This turns on lock debugging for locks in Palacios and in its host-specifc glue code. This requires host support.
452 config DEBUG_MEM_ALLOC
453 bool "Memory allocation debugging (if host supports it)"
457 This turns on memory allocation debugging in Palacios, using the mechanisms provided by the host
463 menu "BIOS Selection"
466 prompt "Boot Code Selection"
469 Select which BIOSes to map into the default PC Class Hardware Configuration
472 bool "Use the SEABIOS and SEABIOS-VGA Boot Code"
474 Use the SEABIOS and SEABIOS-VGA Boot code
478 bool "Use the BOCHS BIOS and BOCHS BIOS-compatible VGA Boot Code"
480 Use the BOCHS BIOS and BOCHS-BIOS-compatible VGA Boot Code
484 bool "Use a user-specified BIOS"
486 Use a user-specified BIOS
493 string "Path to pre-built SEABIOS binary"
495 default "./bios/seabios/out/bios.bin"
497 Path to the SEABIOS binary to use
499 config SEABIOSVGA_PATH
500 string "Path to pre-built SEABIOS-VGA binary"
502 default "./bios/seabios-vga/VGABIOS-lgpl-latest.bin"
504 This is the SEABIOS-compatible vgabios that will be used for the guest
506 config BOCHSBIOS_PATH
507 string "Path to pre-built BOCHS BIOS binary"
509 default "./bios/rombios/BIOS-bochs-latest"
511 This is the rombios that will be used for the guests
513 config BOCHSBIOSVGA_PATH
514 string "Path to pre-built BOCHS-compatible VGABIOS binary"
516 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
518 This is the vgabios that will be used for the guests
520 config OTHERBIOS_PATH
521 string "Path to user-specified Boot Code"
524 This is a completely user-determined blob that will be mapped into the guest
525 No VGA BIOS will be mapped!
528 hex "Starting address (linear address) of BIOS"
529 range 0xe0000 0xe0000 if SEABIOS
530 range 0xf0000 0xf0000 if BOCHSBIOS
532 This is the starting address (linear address) of the BIOS code
536 config VMXASSIST_PATH
537 string "Path to pre-built VMXASSIST binary"
539 default "./bios/vmxassist/vmxassist.bin"
541 This is vmxassist image to boot real mode guests on
547 source "palacios/src/devices/Kconfig"