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
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 This enables the necesary options to compile Palacios with Kitten
37 Choose this to compile Palacios for a Generic Host OS
43 bool "Red Storm (Cray XT3/XT4)"
45 Support for Cray XT3 and XT4 systems.
48 bool "AMD SVM Support"
51 Compile with support for AMD SVM
54 bool "Intel VMX Support"
57 Compile with support for Intel VMX
61 bool "Compile with Debug Information"
64 Compiles the Palacios library with debugging symbols
71 bool "XED decoder library"
73 This uses the XED decoder library from pintools
76 bool "Internal Palacios decoder"
78 This selects the internal V3Vee x86 decoder
83 menu "Supported host OS features"
86 bool "Host support for multiple threads"
89 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
90 to require the creation of additional execution threads.
93 config ALIGNED_PG_ALLOC
94 bool "Host support for aligned page allocations"
97 Select this if your OS supports allocating memory pages using an alignment. This is required
98 if you want Palacios to run with large page table pages.
101 int "Maximum number of cpus"
105 Specifies the maximum number of hardware CPUs supported by the OS
106 For uniprocessor environments, set this to 1
109 bool "Host Support for file operations"
112 Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
116 bool "Host Support for VM console"
119 Select this if you want to forward a guest console interface to some host OS service
122 bool "Host support for Network Sockets"
125 Select this if you host OS implements a socket API that is available to Palacios. This is required
126 to support the internal networking features of Palacios.
130 bool "Host support for Raw Packet Transmision"
131 depends on EXPERIMENTAL
134 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
135 to support the internal networking features of Palacios.
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 depends on EXPERIMENTAL
176 bool "Enable Vnet in Palacios"
179 Enable the Vnet in Palacios
182 depends on EXPERIMENTAL && VNET
183 bool "Enable Vnet Debug in Palacios"
186 Enable the Vnet debug in Palacios
188 config LINUX_VIRTIO_VNET
189 bool "Enable Virtio VNET interface"
191 depends on PCI && EXPERIMENTAL && VNET
193 Enable the Virtio VNET interface
195 config DEBUG_LINUX_VIRTIO_VNET
196 bool "Virtio VNET Interface Debugging"
198 depends on LINUX_VIRTIO_VNET && DEBUG_ON
200 Enable debugging for the VNET Virtio interface
205 source "Kconfig.stdlibs"
208 menu "Virtual Paging"
211 bool "Enable shadow paging"
214 Enables shadow paging for virtual machines
217 config SHADOW_PAGING_VTLB
220 depends on SHADOW_PAGING
222 Enables Virtual TLB implemenation for shadow paging
225 config DEBUG_SHDW_PG_VTLB
226 bool "Enable VTLB debugging"
228 depends on SHADOW_PAGING_VTLB
230 Enables debugging messages for VTLB implementation
232 config SHADOW_PAGING_CACHE1
233 bool "Shadow Page Cache (1)"
235 depends on SHADOW_PAGING
237 Enables caching implemenation for shadow paging
243 menu "Time Management"
244 config VIRTUALIZE_TIME
245 bool "Enable Time virtualization"
248 Enables the timer virtualization extensions
250 config TIME_HIDE_VM_COST
251 bool "Hide VMM Run Cost"
253 depends on VIRTUALIZE_TIME
255 Offset guest time from host time sufficiently to hide the cost of
256 running in the virtual machine. This can aid the consistency of
257 time between multiple timers, but can cause the guest to run
258 a good bit slower than the host in VM-intensive parts of the code.
260 config TIME_VIRTUALIZE_TSC
261 bool "Fully virtualize guest TSC"
263 depends on VIRTUALIZE_TIME
265 Virtualize the processor time stamp counter in the guest,
266 generally increasing consistency between various time sources
267 but also potentially making guest time run slower than real time.
271 menu "Symbiotic Functions"
274 bool "Enable Symbiotic Functionality"
277 Enable Symbiotic components of the VMM.
278 This includes the SymSpy interface.
281 bool "Symbiotic upcalls"
283 depends on SYMBIOTIC && EXPERIMENTAL
285 Enables the Symbiotic upcall interface
290 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
292 This enables the SwapBypass architecture
294 config SWAPBYPASS_TELEMETRY
295 bool "Enable SwapBypass Telemetry"
297 depends on TELEMETRY && SWAPBYPASS
299 Enable the telemetry information for the SwapBypass subsystem
302 bool "Symbiotic Modules"
304 depends on EXPERIMENTAL
305 # depends on SYMBIOTIC
307 Enable Symbiotic module loading
314 menu "Debug configuration"
316 config CONFIG_DEBUG_INFO
317 bool "Compile with Debug information"
320 This adds the -g flag to the compilation flags
323 ## Is unwind information useful
326 bool "Enable Debugging"
329 This turns on debugging support
337 This turns on debugging for the AMD SVM-specific code
344 This turns on debugging for the Intel VT-specific code
347 config DEBUG_SHADOW_PAGING
352 This turns on debugging for the shadow paging system
355 config DEBUG_NESTED_PAGING
360 This turns on debugging for the nested paging system
363 config DEBUG_CTRL_REGS
364 bool "Control registers"
368 This turns on debugging for the control register handlers
371 config DEBUG_INTERRUPTS
376 This turns on debugging for the interrupt system
383 This turns on debugging of system time virtualization
390 This turns on debugging for the IO handlers
393 config DEBUG_EMULATOR
394 bool "Instruction Emulator"
398 This turns on debugging for the Instruction Emulator
406 This turns on debugging for the Xed Decoder
413 This turns on debugging for the halt instruction handler
416 bool "Device Manager"
420 This turns on debugging for the device manager
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"