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
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 Debug Information"
82 Compiles the Palacios library with debugging symbols
89 bool "XED decoder library"
92 This uses the XED decoder library from pintools
95 bool "Internal Palacios decoder"
97 This selects the internal V3Vee x86 decoder
102 menu "Supported host OS features"
104 config MULTITHREAD_OS
105 bool "Host support for multiple threads"
108 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
109 to require the creation of additional execution threads.
112 config ALIGNED_PG_ALLOC
113 bool "Host support for aligned page allocations"
116 Select this if your OS supports allocating memory pages using an alignment. This is required
117 if you want Palacios to run with large page table pages.
120 int "Maximum number of cpus"
124 Specifies the maximum number of hardware CPUs supported by the OS
125 For uniprocessor environments, set this to 1
128 bool "Host Support for file operations"
131 Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
135 bool "Host Support for VM console"
138 Select this if you want to forward a guest console interface to some host OS service
141 bool "Host support for Network Sockets"
144 Select this if you host OS implements a socket API that is available to Palacios. This is required
145 to support the internal networking features of Palacios.
149 bool "Host support for Raw Packet Transmision"
150 depends on EXPERIMENTAL
153 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
154 to support the internal networking features of Palacios.
161 bool "Enable VMM telemetry support"
164 Enable the telemetry framework in Palacios
166 This is a framwork that allows components of palacios to record
167 information that is periodically reported to the log output.
168 Telemetry is automatically collected for vmexits. Subsystem telemetry
169 is configured separately
172 config SHADOW_PAGING_TELEMETRY
173 bool "Enable Shadow Paging Telemetry"
177 Enable telemetry information for shadow paging
182 bool "Enable Experimental options"
185 This allows the selection of experimental features. This includes incomplete or unreviewed code.
186 Only enable this feature if you are working on the features in question.
187 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
188 Any code that violates this will be immediately deleted without warning.
190 The purpose of this option is to allow features under development to be committed to the mainline
191 to more easily track changes and provide access to multiple developers
194 depends on EXPERIMENTAL
195 bool "Enable Vnet in Palacios"
198 Enable the Vnet in Palacios
201 depends on EXPERIMENTAL && VNET
202 bool "Enable Vnet Debug in Palacios"
205 Enable the Vnet debug in Palacios
207 config LINUX_VIRTIO_VNET
208 bool "Enable Virtio VNET interface"
210 depends on PCI && EXPERIMENTAL && VNET
212 Enable the Virtio VNET interface
214 config DEBUG_LINUX_VIRTIO_VNET
215 bool "Virtio VNET Interface Debugging"
217 depends on LINUX_VIRTIO_VNET && DEBUG_ON
219 Enable debugging for the VNET Virtio interface
224 source "Kconfig.stdlibs"
227 menu "Virtual Paging"
230 bool "Enable shadow paging"
233 Enables shadow paging for virtual machines
236 config SHADOW_PAGING_VTLB
239 depends on SHADOW_PAGING
241 Enables Virtual TLB implemenation for shadow paging
244 config DEBUG_SHDW_PG_VTLB
245 bool "Enable VTLB debugging"
247 depends on SHADOW_PAGING_VTLB
249 Enables debugging messages for VTLB implementation
251 config SHADOW_PAGING_CACHE1
252 bool "Shadow Page Cache (1)"
254 depends on SHADOW_PAGING
256 Enables caching implemenation for shadow paging
262 menu "Time Management"
263 config VIRTUALIZE_TIME
264 bool "Enable Time virtualization"
267 Enables the timer virtualization extensions
269 config TIME_HIDE_VM_COST
270 bool "Hide VMM Run Cost"
272 depends on VIRTUALIZE_TIME
274 Offset guest time from host time sufficiently to hide the cost of
275 running in the virtual machine. This can aid the consistency of
276 time between multiple timers, but can cause the guest to run
277 a good bit slower than the host in VM-intensive parts of the code.
279 config TIME_VIRTUALIZE_TSC
280 bool "Fully virtualize guest TSC"
282 depends on VIRTUALIZE_TIME
284 Virtualize the processor time stamp counter in the guest,
285 generally increasing consistency between various time sources
286 but also potentially making guest time run slower than real time.
290 menu "Symbiotic Functions"
293 bool "Enable Symbiotic Functionality"
296 Enable Symbiotic components of the VMM.
297 This includes the SymSpy interface.
300 bool "Symbiotic upcalls"
302 depends on SYMBIOTIC && EXPERIMENTAL
304 Enables the Symbiotic upcall interface
309 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
311 This enables the SwapBypass architecture
313 config SWAPBYPASS_TELEMETRY
314 bool "Enable SwapBypass Telemetry"
316 depends on TELEMETRY && SWAPBYPASS
318 Enable the telemetry information for the SwapBypass subsystem
321 bool "Symbiotic Modules"
323 depends on EXPERIMENTAL
324 # depends on SYMBIOTIC
326 Enable Symbiotic module loading
333 menu "Debug configuration"
335 config CONFIG_DEBUG_INFO
336 bool "Compile with Debug information"
339 This adds the -g flag to the compilation flags
342 ## Is unwind information useful
345 bool "Enable Debugging"
348 This turns on debugging support
356 This turns on debugging for the AMD SVM-specific code
363 This turns on debugging for the Intel VT-specific code
366 config DEBUG_SHADOW_PAGING
371 This turns on debugging for the shadow paging system
374 config DEBUG_NESTED_PAGING
379 This turns on debugging for the nested paging system
382 config DEBUG_CTRL_REGS
383 bool "Control registers"
387 This turns on debugging for the control register handlers
390 config DEBUG_INTERRUPTS
395 This turns on debugging for the interrupt system
402 This turns on debugging of system time virtualization
409 This turns on debugging for the IO handlers
412 config DEBUG_EMULATOR
413 bool "Instruction Emulator"
417 This turns on debugging for the Instruction Emulator
425 This turns on debugging for the Xed Decoder
432 This turns on debugging for the halt instruction handler
435 bool "Device Manager"
439 This turns on debugging for the device manager
447 menu "BIOS Selection"
450 string "Path to pre-built ROMBIOS binary"
451 default "./bios/rombios/BIOS-bochs-latest"
453 This is the rombios that will be used for the guests
456 string "Path to pre-built VGABIOS binary"
457 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
459 This is the vgabios that will be used for the guests
461 config VMXASSIST_PATH
462 string "Path to pre-built VMXASSIST binary"
464 default "./bios/vmxassist/vmxassist.bin"
466 This is vmxassist image to boot real mode guests on
472 source "palacios/src/devices/Kconfig"