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
36 This enables the necessary options to compile Palacios as a Linux module
41 string "Linux Kernel Source directory"
42 default "/usr/src/linux"
44 This is the directory containing the linux source for the kernel module to be built
49 This enables the necesary options to compile Palacios with Kitten
54 Choose this to compile Palacios for a Generic Host OS
60 bool "Red Storm (Cray XT3/XT4)"
62 Support for Cray XT3 and XT4 systems.
65 bool "AMD SVM Support"
68 Compile with support for AMD SVM
71 bool "Intel VMX Support"
74 Compile with support for Intel VMX
78 bool "Compile with Debug Information"
81 Compiles the Palacios library with debugging symbols
88 bool "XED decoder library"
90 This uses the XED decoder library from pintools
93 bool "Internal Palacios decoder"
95 This selects the internal V3Vee x86 decoder
100 menu "Supported host OS features"
102 config MULTITHREAD_OS
103 bool "Host support for multiple threads"
106 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
107 to require the creation of additional execution threads.
110 config ALIGNED_PG_ALLOC
111 bool "Host support for aligned page allocations"
114 Select this if your OS supports allocating memory pages using an alignment. This is required
115 if you want Palacios to run with large page table pages.
118 int "Maximum number of cpus"
122 Specifies the maximum number of hardware CPUs supported by the OS
123 For uniprocessor environments, set this to 1
126 bool "Host Support for file operations"
129 Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
133 bool "Host Support for VM console"
136 Select this if you want to forward a guest console interface to some host OS service
139 bool "Host support for Network Sockets"
142 Select this if you host OS implements a socket API that is available to Palacios. This is required
143 to support the internal networking features of Palacios.
147 bool "Host support for Raw Packet Transmision"
148 depends on EXPERIMENTAL
151 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
152 to support the internal networking features of Palacios.
159 bool "Enable VMM telemetry support"
162 Enable the telemetry framework in Palacios
164 This is a framwork that allows components of palacios to record
165 information that is periodically reported to the log output.
166 Telemetry is automatically collected for vmexits. Subsystem telemetry
167 is configured separately
170 config SHADOW_PAGING_TELEMETRY
171 bool "Enable Shadow Paging Telemetry"
175 Enable telemetry information for shadow paging
180 bool "Enable Experimental options"
183 This allows the selection of experimental features. This includes incomplete or unreviewed code.
184 Only enable this feature if you are working on the features in question.
185 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
186 Any code that violates this will be immediately deleted without warning.
188 The purpose of this option is to allow features under development to be committed to the mainline
189 to more easily track changes and provide access to multiple developers
192 depends on EXPERIMENTAL
193 bool "Enable Vnet in Palacios"
196 Enable the Vnet in Palacios
199 depends on EXPERIMENTAL && VNET
200 bool "Enable Vnet Debug in Palacios"
203 Enable the Vnet debug in Palacios
205 config LINUX_VIRTIO_VNET
206 bool "Enable Virtio VNET interface"
208 depends on PCI && EXPERIMENTAL && VNET
210 Enable the Virtio VNET interface
212 config DEBUG_LINUX_VIRTIO_VNET
213 bool "Virtio VNET Interface Debugging"
215 depends on LINUX_VIRTIO_VNET && DEBUG_ON
217 Enable debugging for the VNET Virtio interface
222 source "Kconfig.stdlibs"
225 menu "Virtual Paging"
228 bool "Enable shadow paging"
231 Enables shadow paging for virtual machines
234 config SHADOW_PAGING_VTLB
237 depends on SHADOW_PAGING
239 Enables Virtual TLB implemenation for shadow paging
242 config DEBUG_SHDW_PG_VTLB
243 bool "Enable VTLB debugging"
245 depends on SHADOW_PAGING_VTLB
247 Enables debugging messages for VTLB implementation
249 config SHADOW_PAGING_CACHE1
250 bool "Shadow Page Cache (1)"
252 depends on SHADOW_PAGING
254 Enables caching implemenation for shadow paging
260 menu "Time Management"
261 config VIRTUALIZE_TIME
262 bool "Enable Time virtualization"
265 Enables the timer virtualization extensions
267 config TIME_HIDE_VM_COST
268 bool "Hide VMM Run Cost"
270 depends on VIRTUALIZE_TIME
272 Offset guest time from host time sufficiently to hide the cost of
273 running in the virtual machine. This can aid the consistency of
274 time between multiple timers, but can cause the guest to run
275 a good bit slower than the host in VM-intensive parts of the code.
277 config TIME_VIRTUALIZE_TSC
278 bool "Fully virtualize guest TSC"
280 depends on VIRTUALIZE_TIME
282 Virtualize the processor time stamp counter in the guest,
283 generally increasing consistency between various time sources
284 but also potentially making guest time run slower than real time.
288 menu "Symbiotic Functions"
291 bool "Enable Symbiotic Functionality"
294 Enable Symbiotic components of the VMM.
295 This includes the SymSpy interface.
298 bool "Symbiotic upcalls"
300 depends on SYMBIOTIC && EXPERIMENTAL
302 Enables the Symbiotic upcall interface
307 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
309 This enables the SwapBypass architecture
311 config SWAPBYPASS_TELEMETRY
312 bool "Enable SwapBypass Telemetry"
314 depends on TELEMETRY && SWAPBYPASS
316 Enable the telemetry information for the SwapBypass subsystem
319 bool "Symbiotic Modules"
321 depends on EXPERIMENTAL
322 # depends on SYMBIOTIC
324 Enable Symbiotic module loading
331 menu "Debug configuration"
333 config CONFIG_DEBUG_INFO
334 bool "Compile with Debug information"
337 This adds the -g flag to the compilation flags
340 ## Is unwind information useful
343 bool "Enable Debugging"
346 This turns on debugging support
354 This turns on debugging for the AMD SVM-specific code
361 This turns on debugging for the Intel VT-specific code
364 config DEBUG_SHADOW_PAGING
369 This turns on debugging for the shadow paging system
372 config DEBUG_NESTED_PAGING
377 This turns on debugging for the nested paging system
380 config DEBUG_CTRL_REGS
381 bool "Control registers"
385 This turns on debugging for the control register handlers
388 config DEBUG_INTERRUPTS
393 This turns on debugging for the interrupt system
400 This turns on debugging of system time virtualization
407 This turns on debugging for the IO handlers
410 config DEBUG_EMULATOR
411 bool "Instruction Emulator"
415 This turns on debugging for the Instruction Emulator
423 This turns on debugging for the Xed Decoder
430 This turns on debugging for the halt instruction handler
433 bool "Device Manager"
437 This turns on debugging for the device manager
445 menu "BIOS Selection"
448 string "Path to pre-built ROMBIOS binary"
449 default "./bios/rombios/BIOS-bochs-latest"
451 This is the rombios that will be used for the guests
454 string "Path to pre-built VGABIOS binary"
455 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
457 This is the vgabios that will be used for the guests
459 config VMXASSIST_PATH
460 string "Path to pre-built VMXASSIST binary"
462 default "./bios/vmxassist/vmxassist.bin"
464 This is vmxassist image to boot real mode guests on
470 source "palacios/src/devices/Kconfig"