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
60 menu "Supported host OS features"
63 bool "Host support for multiple threads"
66 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
67 to require the creation of additional execution threads.
70 config ALIGNED_PG_ALLOC
71 bool "Host support for aligned page allocations"
74 Select this if your OS supports allocating memory pages using an alignment. This is required
75 if you want Palacios to run with large page table pages.
78 int "Maximum number of cpus"
82 Specifies the maximum number of hardware CPUs supported by the OS
83 For uniprocessor environments, set this to 1
86 bool "Host Support for file operations"
89 Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
93 bool "Host Support for VM console"
96 Select this if you want to forward a guest console interface to some host OS service
99 bool "Host support for Network Sockets"
102 Select this if you host OS implements a socket API that is available to Palacios. This is required
103 to support the internal networking features of Palacios.
107 bool "Host support for Raw Packet Transmision"
108 depends on EXPERIMENTAL
111 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
112 to support the internal networking features of Palacios.
119 bool "Enable VMM telemetry support"
122 Enable the telemetry framework in Palacios
124 This is a framwork that allows components of palacios to record
125 information that is periodically reported to the log output.
126 Telemetry is automatically collected for vmexits. Subsystem telemetry
127 is configured separately
130 config SHADOW_PAGING_TELEMETRY
131 bool "Enable Shadow Paging Telemetry"
135 Enable telemetry information for shadow paging
138 config INSTRUMENT_VMM
139 bool "Enable VMM instrumentation"
142 Enable the instrumentation framework
144 This is much heavier weight than profiling
147 bool "Enable Experimental options"
150 This allows the selection of experimental features. This includes incomplete or unreviewed code.
151 Only enable this feature if you are working on the features in question.
152 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
153 Any code that violates this will be immediately deleted without warning.
155 The purpose of this option is to allow features under development to be committed to the mainline
156 to more easily track changes and provide access to multiple developers
159 depends on EXPERIMENTAL
160 bool "Enable Vnet in Palacios"
163 Enable the Vnet in Palacios
166 depends on EXPERIMENTAL && VNET
167 bool "Enable Vnet Debug in Palacios"
170 Enable the Vnet debug in Palacios
172 config LINUX_VIRTIO_VNET
173 bool "Enable Virtio VNET interface"
175 depends on PCI && EXPERIMENTAL && VNET
177 Enable the Virtio VNET interface
179 config DEBUG_LINUX_VIRTIO_VNET
180 bool "Virtio VNET Interface Debugging"
182 depends on LINUX_VIRTIO_VNET && DEBUG_ON
184 Enable debugging for the VNET Virtio interface
189 source "Kconfig.stdlibs"
192 menu "Virtual Paging"
195 bool "Enable shadow paging"
198 Enables shadow paging for virtual machines
201 config SHADOW_PAGING_VTLB
204 depends on SHADOW_PAGING
206 Enables Virtual TLB implemenation for shadow paging
209 config DEBUG_SHDW_PG_VTLB
210 bool "Enable VTLB debugging"
212 depends on SHADOW_PAGING_VTLB
214 Enables debugging messages for VTLB implementation
216 config SHADOW_PAGING_CACHE1
217 bool "Shadow Page Cache (1)"
219 depends on SHADOW_PAGING
221 Enables caching implemenation for shadow paging
227 menu "Time Management"
229 config TIME_VIRTUALIZE_TSC
230 bool "Virtualize guest TSC"
233 Virtualize the processor time stamp counter in the guest,
234 generally increasing consistency between various time sources
235 but also potentially making guest time run slower than real time.
239 menu "Symbiotic Functions"
242 bool "Enable Symbiotic Functionality"
245 Enable Symbiotic components of the VMM.
246 This includes the SymSpy interface.
249 bool "Symbiotic upcalls"
251 depends on SYMBIOTIC && EXPERIMENTAL
253 Enables the Symbiotic upcall interface
258 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
260 This enables the SwapBypass architecture
262 config SWAPBYPASS_TELEMETRY
263 bool "Enable SwapBypass Telemetry"
265 depends on TELEMETRY && SWAPBYPASS
267 Enable the telemetry information for the SwapBypass subsystem
270 bool "Symbiotic Modules"
272 depends on EXPERIMENTAL
273 # depends on SYMBIOTIC
275 Enable Symbiotic module loading
282 menu "Debug configuration"
284 config CONFIG_DEBUG_INFO
285 bool "Compile with Debug information"
288 This adds the -g flag to the compilation flags
291 ## Is unwind information useful
294 bool "Enable Debugging"
297 This turns on debugging support
305 This turns on debugging for the AMD SVM-specific code
312 This turns on debugging for the Intel VT-specific code
315 config DEBUG_SHADOW_PAGING
320 This turns on debugging for the shadow paging system
323 config DEBUG_NESTED_PAGING
328 This turns on debugging for the nested paging system
331 config DEBUG_CTRL_REGS
332 bool "Control registers"
336 This turns on debugging for the control register handlers
339 config DEBUG_INTERRUPTS
344 This turns on debugging for the interrupt system
351 This turns on debugging of system time virtualization
358 This turns on debugging for the IO handlers
361 config DEBUG_EMULATOR
362 bool "Instruction Emulator"
366 This turns on debugging for the Instruction Emulator
374 This turns on debugging for the Xed Decoder
381 This turns on debugging for the halt instruction handler
384 bool "Device Manager"
388 This turns on debugging for the device manager
396 menu "BIOS Selection"
399 string "Path to pre-built ROMBIOS binary"
400 default "./bios/rombios/BIOS-bochs-latest"
402 This is the rombios that will be used for the guests
405 string "Path to pre-built VGABIOS binary"
406 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
408 This is the vgabios that will be used for the guests
410 config VMXASSIST_PATH
411 string "Path to pre-built VMXASSIST binary"
413 default "./bios/vmxassist/vmxassist.bin"
415 This is vmxassist image to boot real mode guests on
421 source "palacios/src/devices/Kconfig"