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.
136 bool "Host Support for VM console"
139 Select this if you want to forward a guest console interface to some host OS service
142 bool "Host support for Network Sockets"
145 Select this if you host OS implements a socket API that is available to Palacios. This is required
146 to support the internal networking features of Palacios.
150 bool "Host support for Raw Packet Transmision"
151 depends on EXPERIMENTAL
154 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
155 to support the internal networking features of Palacios.
162 bool "Enable VMM telemetry support"
165 Enable the telemetry framework in Palacios
167 This is a framwork that allows components of palacios to record
168 information that is periodically reported to the log output.
169 Telemetry is automatically collected for vmexits. Subsystem telemetry
170 is configured separately
173 config SHADOW_PAGING_TELEMETRY
174 bool "Enable Shadow Paging Telemetry"
178 Enable telemetry information for shadow paging
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 depends on EXPERIMENTAL
196 bool "Enable Vnet in Palacios"
199 Enable the Vnet in Palacios
202 depends on EXPERIMENTAL && VNET
203 bool "Enable Vnet Debug in Palacios"
206 Enable the Vnet debug in Palacios
208 config LINUX_VIRTIO_VNET
209 bool "Enable Virtio VNET interface"
211 depends on PCI && EXPERIMENTAL && VNET
213 Enable the Virtio VNET interface
215 config DEBUG_LINUX_VIRTIO_VNET
216 bool "Virtio VNET Interface Debugging"
218 depends on LINUX_VIRTIO_VNET && DEBUG_ON
220 Enable debugging for the VNET Virtio interface
225 source "Kconfig.stdlibs"
228 menu "Virtual Paging"
231 bool "Enable shadow paging"
234 Enables shadow paging for virtual machines
237 config SHADOW_PAGING_VTLB
240 depends on SHADOW_PAGING
242 Enables Virtual TLB implemenation for shadow paging
245 config DEBUG_SHDW_PG_VTLB
246 bool "Enable VTLB debugging"
248 depends on SHADOW_PAGING_VTLB
250 Enables debugging messages for VTLB implementation
252 config SHADOW_PAGING_CACHE1
253 bool "Shadow Page Cache (1)"
255 depends on SHADOW_PAGING
257 Enables caching implemenation for shadow paging
263 menu "Time Management"
264 config VIRTUALIZE_TIME
265 bool "Enable Time virtualization"
268 Enables the timer virtualization extensions
270 config TIME_HIDE_VM_COST
271 bool "Hide VMM Run Cost"
273 depends on VIRTUALIZE_TIME
275 Offset guest time from host time sufficiently to hide the cost of
276 running in the virtual machine. This can aid the consistency of
277 time between multiple timers, but can cause the guest to run
278 a good bit slower than the host in VM-intensive parts of the code.
280 config TIME_VIRTUALIZE_TSC
281 bool "Fully virtualize guest TSC"
283 depends on VIRTUALIZE_TIME
285 Virtualize the processor time stamp counter in the guest,
286 generally increasing consistency between various time sources
287 but also potentially making guest time run slower than real time.
291 menu "Symbiotic Functions"
294 bool "Enable Symbiotic Functionality"
297 Enable Symbiotic components of the VMM.
298 This includes the SymSpy interface.
301 bool "Symbiotic upcalls"
303 depends on SYMBIOTIC && EXPERIMENTAL
305 Enables the Symbiotic upcall interface
310 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
312 This enables the SwapBypass architecture
314 config SWAPBYPASS_TELEMETRY
315 bool "Enable SwapBypass Telemetry"
317 depends on TELEMETRY && SWAPBYPASS
319 Enable the telemetry information for the SwapBypass subsystem
322 bool "Symbiotic Modules"
324 depends on EXPERIMENTAL
325 # depends on SYMBIOTIC
327 Enable Symbiotic module loading
334 menu "Debug configuration"
336 config CONFIG_DEBUG_INFO
337 bool "Compile with Debug information"
340 This adds the -g flag to the compilation flags
343 ## Is unwind information useful
346 bool "Enable Debugging"
349 This turns on debugging support
357 This turns on debugging for the AMD SVM-specific code
364 This turns on debugging for the Intel VT-specific code
367 config DEBUG_SHADOW_PAGING
372 This turns on debugging for the shadow paging system
375 config DEBUG_NESTED_PAGING
380 This turns on debugging for the nested paging system
383 config DEBUG_CTRL_REGS
384 bool "Control registers"
388 This turns on debugging for the control register handlers
391 config DEBUG_INTERRUPTS
396 This turns on debugging for the interrupt system
403 This turns on debugging of system time virtualization
410 This turns on debugging for the IO handlers
413 config DEBUG_EMULATOR
414 bool "Instruction Emulator"
418 This turns on debugging for the Instruction Emulator
426 This turns on debugging for the Xed Decoder
433 This turns on debugging for the halt instruction handler
436 bool "Device Manager"
440 This turns on debugging for the device manager
448 menu "BIOS Selection"
451 string "Path to pre-built ROMBIOS binary"
452 default "./bios/rombios/BIOS-bochs-latest"
454 This is the rombios that will be used for the guests
457 string "Path to pre-built VGABIOS binary"
458 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
460 This is the vgabios that will be used for the guests
462 config VMXASSIST_PATH
463 string "Path to pre-built VMXASSIST binary"
465 default "./bios/vmxassist/vmxassist.bin"
467 This is vmxassist image to boot real mode guests on
473 source "palacios/src/devices/Kconfig"