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
67 menu "Supported host OS features"
70 bool "Host support for multiple threads"
73 Select this if your OS supports multiple threads of execution. This will enable features in Palacios
74 to require the creation of additional execution threads.
77 config ALIGNED_PG_ALLOC
78 bool "Host support for aligned page allocations"
81 Select this if your OS supports allocating memory pages using an alignment. This is required
82 if you want Palacios to run with large page table pages.
85 int "Maximum number of cpus"
89 Specifies the maximum number of hardware CPUs supported by the OS
90 For uniprocessor environments, set this to 1
93 bool "Host Support for file operations"
96 Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
100 bool "Host Support for VM console"
103 Select this if you want to forward a guest console interface to some host OS service
106 bool "Host support for Network Sockets"
109 Select this if you host OS implements a socket API that is available to Palacios. This is required
110 to support the internal networking features of Palacios.
114 bool "Host support for Raw Packet Transmision"
115 depends on EXPERIMENTAL
118 Select this if you host OS implements a raw packet network API that is available to Palacios. This is required
119 to support the internal networking features of Palacios.
126 bool "Enable VMM telemetry support"
129 Enable the telemetry framework in Palacios
131 This is a framwork that allows components of palacios to record
132 information that is periodically reported to the log output.
133 Telemetry is automatically collected for vmexits. Subsystem telemetry
134 is configured separately
137 config SHADOW_PAGING_TELEMETRY
138 bool "Enable Shadow Paging Telemetry"
142 Enable telemetry information for shadow paging
145 config INSTRUMENT_VMM
146 bool "Enable VMM instrumentation"
149 Enable the instrumentation framework
151 This is much heavier weight than profiling
154 bool "Enable Experimental options"
157 This allows the selection of experimental features. This includes incomplete or unreviewed code.
158 Only enable this feature if you are working on the features in question.
159 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
160 Any code that violates this will be immediately deleted without warning.
162 The purpose of this option is to allow features under development to be committed to the mainline
163 to more easily track changes and provide access to multiple developers
166 depends on EXPERIMENTAL
167 bool "Enable Vnet in Palacios"
170 Enable the Vnet in Palacios
173 depends on EXPERIMENTAL && VNET
174 bool "Enable Vnet Debug in Palacios"
177 Enable the Vnet debug in Palacios
179 config LINUX_VIRTIO_VNET
180 bool "Enable Virtio VNET interface"
182 depends on PCI && EXPERIMENTAL && VNET
184 Enable the Virtio VNET interface
186 config DEBUG_LINUX_VIRTIO_VNET
187 bool "Virtio VNET Interface Debugging"
189 depends on LINUX_VIRTIO_VNET && DEBUG_ON
191 Enable debugging for the VNET Virtio interface
196 source "Kconfig.stdlibs"
199 menu "Virtual Paging"
202 bool "Enable shadow paging"
205 Enables shadow paging for virtual machines
208 config SHADOW_PAGING_VTLB
211 depends on SHADOW_PAGING
213 Enables Virtual TLB implemenation for shadow paging
216 config DEBUG_SHDW_PG_VTLB
217 bool "Enable VTLB debugging"
219 depends on SHADOW_PAGING_VTLB
221 Enables debugging messages for VTLB implementation
223 config SHADOW_PAGING_CACHE1
224 bool "Shadow Page Cache (1)"
226 depends on SHADOW_PAGING
228 Enables caching implemenation for shadow paging
234 menu "Time Management"
236 config TIME_VIRTUALIZE_TSC
237 bool "Virtualize guest TSC"
240 Virtualize the processor time stamp counter in the guest,
241 generally increasing consistency between various time sources
242 but also potentially making guest time run slower than real time.
246 menu "Symbiotic Functions"
249 bool "Enable Symbiotic Functionality"
252 Enable Symbiotic components of the VMM.
253 This includes the SymSpy interface.
256 bool "Symbiotic upcalls"
258 depends on SYMBIOTIC && EXPERIMENTAL
260 Enables the Symbiotic upcall interface
265 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
267 This enables the SwapBypass architecture
269 config SWAPBYPASS_TELEMETRY
270 bool "Enable SwapBypass Telemetry"
272 depends on TELEMETRY && SWAPBYPASS
274 Enable the telemetry information for the SwapBypass subsystem
277 bool "Symbiotic Modules"
279 depends on EXPERIMENTAL
280 # depends on SYMBIOTIC
282 Enable Symbiotic module loading
289 menu "Debug configuration"
291 config CONFIG_DEBUG_INFO
292 bool "Compile with Debug information"
295 This adds the -g flag to the compilation flags
298 ## Is unwind information useful
301 bool "Enable Debugging"
304 This turns on debugging support
312 This turns on debugging for the AMD SVM-specific code
319 This turns on debugging for the Intel VT-specific code
322 config DEBUG_SHADOW_PAGING
327 This turns on debugging for the shadow paging system
330 config DEBUG_NESTED_PAGING
335 This turns on debugging for the nested paging system
338 config DEBUG_CTRL_REGS
339 bool "Control registers"
343 This turns on debugging for the control register handlers
346 config DEBUG_INTERRUPTS
351 This turns on debugging for the interrupt system
358 This turns on debugging of system time virtualization
365 This turns on debugging for the IO handlers
368 config DEBUG_EMULATOR
369 bool "Instruction Emulator"
373 This turns on debugging for the Instruction Emulator
381 This turns on debugging for the Xed Decoder
388 This turns on debugging for the halt instruction handler
391 bool "Device Manager"
395 This turns on debugging for the device manager
403 menu "BIOS Selection"
406 string "Path to pre-built ROMBIOS binary"
407 default "./bios/rombios/BIOS-bochs-latest"
409 This is the rombios that will be used for the guests
412 string "Path to pre-built VGABIOS binary"
413 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
415 This is the vgabios that will be used for the guests
417 config VMXASSIST_PATH
418 string "Path to pre-built VMXASSIST binary"
420 default "./bios/vmxassist/vmxassist.bin"
422 This is vmxassist image to boot real mode guests on
428 source "palacios/src/devices/Kconfig"