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
130 source "palacios/src/interfaces/Kconfig"
131 source "palacios/src/extensions/Kconfig"
134 bool "Enable VMM telemetry support"
137 Enable the telemetry framework in Palacios
139 This is a framwork that allows components of palacios to record
140 information that is periodically reported to the log output.
141 Telemetry is automatically collected for vmexits. Subsystem telemetry
142 is configured separately
145 config SHADOW_PAGING_TELEMETRY
146 bool "Enable Shadow Paging Telemetry"
150 Enable telemetry information for shadow paging
155 bool "Enable Experimental options"
158 This allows the selection of experimental features. This includes incomplete or unreviewed code.
159 Only enable this feature if you are working on the features in question.
160 IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features.
161 Any code that violates this will be immediately deleted without warning.
163 The purpose of this option is to allow features under development to be committed to the mainline
164 to more easily track changes and provide access to multiple developers
169 source "Kconfig.stdlibs"
172 menu "Virtual Paging"
175 bool "Enable shadow paging"
178 Enables shadow paging for virtual machines
181 config SHADOW_PAGING_VTLB
184 depends on SHADOW_PAGING
186 Enables Virtual TLB implemenation for shadow paging
189 config DEBUG_SHDW_PG_VTLB
190 bool "Enable VTLB debugging"
192 depends on SHADOW_PAGING_VTLB
194 Enables debugging messages for VTLB implementation
196 config SHADOW_PAGING_CACHE1
197 bool "Shadow Page Cache (1)"
199 depends on SHADOW_PAGING
201 Enables caching implemenation for shadow paging
208 menu "Time Management"
209 config VIRTUALIZE_TIME
210 bool "Enable Time virtualization"
213 Enables the timer virtualization extensions
215 config TIME_HIDE_VM_COST
216 bool "Hide VMM Run Cost"
218 depends on VIRTUALIZE_TIME
220 Offset guest time from host time sufficiently to hide the cost of
221 running in the virtual machine. This can aid the consistency of
222 time between multiple timers, but can cause the guest to run
223 a good bit slower than the host in VM-intensive parts of the code.
225 config TIME_VIRTUALIZE_TSC
226 bool "Fully virtualize guest TSC"
228 depends on VIRTUALIZE_TIME
230 Virtualize the processor time stamp counter in the guest,
231 generally increasing consistency between various time sources
232 but also potentially making guest time run slower than real time.
238 menu "Symbiotic Functions"
241 bool "Enable Symbiotic Functionality"
244 Enable Symbiotic components of the VMM.
245 This includes the SymSpy interface.
248 bool "Symbiotic upcalls"
250 depends on SYMBIOTIC && EXPERIMENTAL
252 Enables the Symbiotic upcall interface
257 depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
259 This enables the SwapBypass architecture
261 config SWAPBYPASS_TELEMETRY
262 bool "Enable SwapBypass Telemetry"
264 depends on TELEMETRY && SWAPBYPASS
266 Enable the telemetry information for the SwapBypass subsystem
269 bool "Symbiotic Modules"
271 depends on EXPERIMENTAL
272 # depends on SYMBIOTIC
274 Enable Symbiotic module loading
282 bool "Enable Vnet in Palacios"
285 Enable the Vnet in Palacios
289 bool "Enable Vnet Debug in Palacios"
292 Enable the Vnet debug in Palacios
297 menu "Debug configuration"
299 config CONFIG_DEBUG_INFO
300 bool "Compile with Debug information"
303 This adds the -g flag to the compilation flags
306 ## Is unwind information useful
309 bool "Enable Debugging"
312 This turns on debugging support
320 This turns on debugging for the AMD SVM-specific code
327 This turns on debugging for the Intel VT-specific code
330 config DEBUG_SHADOW_PAGING
335 This turns on debugging for the shadow paging system
338 config DEBUG_NESTED_PAGING
343 This turns on debugging for the nested paging system
346 config DEBUG_CTRL_REGS
347 bool "Control registers"
351 This turns on debugging for the control register handlers
354 config DEBUG_INTERRUPTS
359 This turns on debugging for the interrupt system
366 This turns on debugging of system time virtualization
373 This turns on debugging for the IO handlers
376 config DEBUG_EMULATOR
377 bool "Instruction Emulator"
381 This turns on debugging for the Instruction Emulator
385 bool "Instruction Decoder"
389 This turns on debugging for the selected instruction decoder
396 This turns on debugging for the halt instruction handler
399 bool "Device Manager"
403 This turns on debugging for the device manager
405 config DEBUG_MEM_ERRORS
406 bool "Verbose memory errors"
410 This turns on debugging for memory translations and lookups
415 menu "BIOS Selection"
418 string "Path to pre-built ROMBIOS binary"
419 default "./bios/rombios/BIOS-bochs-latest"
421 This is the rombios that will be used for the guests
424 string "Path to pre-built VGABIOS binary"
425 default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
427 This is the vgabios that will be used for the guests
429 config VMXASSIST_PATH
430 string "Path to pre-built VMXASSIST binary"
432 default "./bios/vmxassist/vmxassist.bin"
434 This is vmxassist image to boot real mode guests on
440 source "palacios/src/devices/Kconfig"