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
18 This enables the necesary options to compile Palacios with Kitten
21 bool "OLD Linux (Built in) -- to be deprecated"
22 select BUILT_IN_STDLIB
26 This enables the necessary options to compile Palacios with Linux 2.6
27 Currently, this is in development, and only 2.6.32 is verified to work
32 select BUILT_IN_STDLIB
33 select BUILT_IN_STRDUP
38 This enables the necessary options to compile Palacios as a Linux module
43 string "Linux Kernel Source directory"
44 default "/usr/src/linux"
46 This is the directory containing the linux source for the kernel module to be built
51 This enables the necesary options to compile Palacios with Kitten
56 Choose this to compile Palacios for a Generic Host OS
62 bool "Red Storm (Cray XT3/XT4)"
64 Support for Cray XT3 and XT4 systems.
67 bool "AMD SVM Support"
70 Compile with support for AMD SVM
73 bool "Intel VMX Support"
76 Compile with support for Intel VMX
80 bool "Compile with Debug Information"
83 Compiles the Palacios library with debugging symbols
90 bool "XED decoder library"
93 This uses the XED decoder library from pintools
96 bool "Internal Palacios decoder"
98 This selects the internal V3Vee x86 decoder
103 menu "Supported host OS features"
105 config MULTITHREAD_OS
106 bool "Host support for multiple threads"
109 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
110 to require the creation of additional execution threads.
113 config ALIGNED_PG_ALLOC
114 bool "Host support for aligned page allocations"
117 Select this if your OS supports allocating memory pages using an alignment. This is required
118 if you want Palacios to run with large page table pages.
121 int "Maximum number of cpus"
125 Specifies the maximum number of hardware CPUs supported by the OS
126 For uniprocessor environments, set this to 1
129 bool "Host Support for file operations"
132 Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
135 bool "Host support for keyed streams"
138 Select this if your host OS supports keyed streams
139 Palacios Checkpoint/Restore and Migration depends on this feature
142 bool "Host Support for VM text-mode console"
145 Select this if you want to forward a guest console interface to some host OS service
146 This is for a TEXT MODE console. Select the framebuffer console for graphics and text
148 config GRAPHICS_CONSOLE
149 bool "Host Support for VM graphics and text-mode console based on a frame buffer"
152 Select this if you want to forward a guest graphics-mode (and text-mode) console
153 interface to some host OS service. This is for a GRAPHICS console based on a shared frame buffer.
154 Text mode output is RENDERED onto the framebuffer
157 bool "Host support for Network Sockets"
160 Select this if you host OS implements a socket API that is available to Palacios. This is required
161 to support the internal networking features of Palacios.
165 bool "Host support for Raw Packet Transmision"
166 depends on EXPERIMENTAL
169 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
170 to support the internal networking features of Palacios.
177 bool "Enable VMM telemetry support"
180 Enable the telemetry framework in Palacios
182 This is a framwork that allows components of palacios to record
183 information that is periodically reported to the log output.
184 Telemetry is automatically collected for vmexits. Subsystem telemetry
185 is configured separately
188 config SHADOW_PAGING_TELEMETRY
189 bool "Enable Shadow Paging Telemetry"
193 Enable telemetry information for shadow paging
198 bool "Enable Experimental options"
201 This allows the selection of experimental features. This includes incomplete or unreviewed code.
202 Only enable this feature if you are working on the features in question.
203 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
204 Any code that violates this will be immediately deleted without warning.
206 The purpose of this option is to allow features under development to be committed to the mainline
207 to more easily track changes and provide access to multiple developers
210 depends on EXPERIMENTAL
211 bool "Enable Vnet in Palacios"
214 Enable the Vnet in Palacios
217 depends on EXPERIMENTAL && VNET
218 bool "Enable Vnet Debug in Palacios"
221 Enable the Vnet debug in Palacios
223 config LINUX_VIRTIO_VNET
224 bool "Enable Virtio VNET interface"
226 depends on PCI && EXPERIMENTAL && VNET
228 Enable the Virtio VNET interface
230 config DEBUG_LINUX_VIRTIO_VNET
231 bool "Virtio VNET Interface Debugging"
233 depends on LINUX_VIRTIO_VNET && DEBUG_ON
235 Enable debugging for the VNET Virtio interface
240 source "Kconfig.stdlibs"
243 menu "Virtual Paging"
246 bool "Enable shadow paging"
249 Enables shadow paging for virtual machines
252 config SHADOW_PAGING_VTLB
255 depends on SHADOW_PAGING
257 Enables Virtual TLB implemenation for shadow paging
260 config DEBUG_SHDW_PG_VTLB
261 bool "Enable VTLB debugging"
263 depends on SHADOW_PAGING_VTLB
265 Enables debugging messages for VTLB implementation
267 config SHADOW_PAGING_CACHE1
268 bool "Shadow Page Cache (1)"
270 depends on SHADOW_PAGING
272 Enables caching implemenation for shadow paging
278 menu "Time Management"
279 config VIRTUALIZE_TIME
280 bool "Enable Time virtualization"
283 Enables the timer virtualization extensions
285 config TIME_HIDE_VM_COST
286 bool "Hide VMM Run Cost"
288 depends on VIRTUALIZE_TIME
290 Offset guest time from host time sufficiently to hide the cost of
291 running in the virtual machine. This can aid the consistency of
292 time between multiple timers, but can cause the guest to run
293 a good bit slower than the host in VM-intensive parts of the code.
295 config TIME_VIRTUALIZE_TSC
296 bool "Fully virtualize guest TSC"
298 depends on VIRTUALIZE_TIME
300 Virtualize the processor time stamp counter in the guest,
301 generally increasing consistency between various time sources
302 but also potentially making guest time run slower than real time.
306 menu "Symbiotic Functions"
309 bool "Enable Symbiotic Functionality"
312 Enable Symbiotic components of the VMM.
313 This includes the SymSpy interface.
316 bool "Symbiotic upcalls"
318 depends on SYMBIOTIC && EXPERIMENTAL
320 Enables the Symbiotic upcall interface
325 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
327 This enables the SwapBypass architecture
329 config SWAPBYPASS_TELEMETRY
330 bool "Enable SwapBypass Telemetry"
332 depends on TELEMETRY && SWAPBYPASS
334 Enable the telemetry information for the SwapBypass subsystem
337 bool "Symbiotic Modules"
339 depends on EXPERIMENTAL
340 # depends on SYMBIOTIC
342 Enable Symbiotic module loading
349 menu "Debug configuration"
351 config CONFIG_DEBUG_INFO
352 bool "Compile with Debug information"
355 This adds the -g flag to the compilation flags
358 ## Is unwind information useful
361 bool "Enable Debugging"
364 This turns on debugging support
372 This turns on debugging for the AMD SVM-specific code
379 This turns on debugging for the Intel VT-specific code
382 config DEBUG_SHADOW_PAGING
387 This turns on debugging for the shadow paging system
390 config DEBUG_NESTED_PAGING
395 This turns on debugging for the nested paging system
398 config DEBUG_CTRL_REGS
399 bool "Control registers"
403 This turns on debugging for the control register handlers
406 config DEBUG_INTERRUPTS
411 This turns on debugging for the interrupt system
418 This turns on debugging of system time virtualization
425 This turns on debugging for the IO handlers
428 config DEBUG_EMULATOR
429 bool "Instruction Emulator"
433 This turns on debugging for the Instruction Emulator
437 bool "Instruction Decoder"
441 This turns on debugging for the selected instruction decoder
448 This turns on debugging for the halt instruction handler
451 bool "Device Manager"
455 This turns on debugging for the device manager
463 menu "BIOS Selection"
466 string "Path to pre-built ROMBIOS binary"
467 default "./bios/rombios/BIOS-bochs-latest"
469 This is the rombios that will be used for the guests
472 string "Path to pre-built VGABIOS binary"
473 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
475 This is the vgabios that will be used for the guests
477 config VMXASSIST_PATH
478 string "Path to pre-built VMXASSIST binary"
480 default "./bios/vmxassist/vmxassist.bin"
482 This is vmxassist image to boot real mode guests on
488 source "palacios/src/devices/Kconfig"