Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


minor changes to organization
[palacios.git] / Kconfig
1 mainmenu "Palacios VMM Configuration"
2
3 menu "Target Configuration"
4
5
6 choice
7         prompt "Target Host OS"
8         default KITTEN
9
10 config KITTEN
11         bool "Kitten OS"
12         select BUILT_IN_STDLIB
13         select BUILT_IN_STRCASECMP
14         select BUILT_IN_ATOI
15         select ALIGNED_PG_ALLOC
16         select MULTITHREAD_OS
17         help
18           This enables the necesary options to compile Palacios with Kitten
19
20 config LINUX_BUILTIN
21         bool "OLD Linux (Built in) -- to be deprecated"
22         select BUILT_IN_STDLIB
23         select BUILT_IN_ATOI
24         select FILE
25         help
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
28
29
30 config LINUX
31         bool "Linux Module"
32         select BUILT_IN_STDLIB
33         select BUILT_IN_STRDUP
34         select BUILT_IN_ATOI
35         select FILE
36         select V3_DECODER
37         help
38           This enables the necessary options to compile Palacios as a Linux module
39  
40
41 config LINUX_KERN
42         depends on LINUX
43         string "Linux Kernel Source directory" 
44         default "/usr/src/linux"
45         help 
46           This is the directory containing the linux source for the kernel module to be built
47
48 config MINIX
49         bool "MINIX 3"
50         help
51           This enables the necesary options to compile Palacios with Kitten
52
53 config OTHER_OS
54         bool "Other OS"
55         help 
56           Choose this to compile Palacios for a Generic Host OS
57           (Formerly GeekOS)
58
59 endchoice
60
61 config CRAY_XT
62         bool "Red Storm (Cray XT3/XT4)"
63         help
64           Support for Cray XT3 and XT4 systems.
65
66 config SVM
67         bool "AMD SVM Support"
68         default y
69         help
70           Compile with support for AMD SVM
71
72 config VMX
73         bool "Intel VMX Support"
74         default y
75         help 
76           Compile with support for Intel VMX
77
78
79 config DEBUG_INFO
80         bool "Compile with Debug Information"
81         default n
82         help
83           Compiles the Palacios library with debugging symbols
84
85 choice 
86         prompt "X86 decoder"
87         default XED
88
89 config XED
90         bool "XED decoder library"
91         depends on !LINUX
92         help
93            This uses the XED decoder library from pintools 
94
95 config V3_DECODER
96         bool "Internal Palacios decoder"
97         help
98             This selects the internal V3Vee x86 decoder
99
100
101 endchoice
102
103 menu "Supported host OS features"
104       
105 config MULTITHREAD_OS
106         bool "Host support for  multiple threads"
107         default y
108         help 
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.
111
112
113 config ALIGNED_PG_ALLOC
114         bool "Host support for aligned page allocations"
115         default n
116         help 
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. 
119
120 config MAX_CPUS
121         int "Maximum number of cpus"
122         range 1 255
123         default "16"
124         help 
125           Specifies the maximum number of hardware CPUs supported by the OS
126           For uniprocessor environments, set this to 1
127
128 endmenu
129
130 source "palacios/src/interfaces/Kconfig"
131 source "palacios/src/extensions/Kconfig"
132
133 config TELEMETRY
134         bool "Enable VMM telemetry support"
135         default n
136         help 
137           Enable the telemetry framework in Palacios
138           -----
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
143
144
145 config SHADOW_PAGING_TELEMETRY
146         bool "Enable Shadow Paging Telemetry"
147         default y
148         depends on TELEMETRY
149         help
150           Enable telemetry information for shadow paging 
151
152
153
154 config EXPERIMENTAL
155         bool "Enable Experimental options"
156         default n
157         help 
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. 
162           -- 
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
165
166
167 config INSPECTOR
168         bool "Enable VM inspection"
169         depends on EXPERIMENTAL
170         default n
171         help 
172           Enable inspection framework for vm internal state
173
174
175 endmenu
176
177
178 source "Kconfig.stdlibs"
179
180
181 menu "Virtual Paging"
182
183 config SHADOW_PAGING
184         bool "Enable shadow paging"
185         default y
186         help 
187            Enables shadow paging for virtual machines
188
189
190 config SHADOW_PAGING_VTLB
191         bool "Virtual TLB"
192         default y
193         depends on SHADOW_PAGING
194         help 
195            Enables Virtual TLB implemenation for shadow paging
196
197
198 config DEBUG_SHDW_PG_VTLB
199         bool "Enable VTLB debugging"
200         default n
201         depends on SHADOW_PAGING_VTLB
202         help
203           Enables debugging messages for VTLB implementation
204
205 config SHADOW_PAGING_CACHE1
206         bool "Shadow Page Cache (1)"
207         default y
208         depends on SHADOW_PAGING
209         help 
210            Enables caching implemenation for shadow paging
211
212
213 endmenu
214
215
216
217 menu "Time Management"
218 config VIRTUALIZE_TIME
219         bool "Enable Time virtualization"
220         default n
221         help
222            Enables the timer virtualization extensions
223  
224 config TIME_HIDE_VM_COST
225         bool "Hide VMM Run Cost"
226         default n
227         depends on VIRTUALIZE_TIME
228         help
229             Offset guest time from host time sufficiently to hide the cost of
230             running in the virtual machine. This can aid the consistency of
231             time between multiple timers, but can cause the guest to run 
232             a good bit slower than the host in VM-intensive parts of the code.
233
234 config TIME_VIRTUALIZE_TSC
235         bool "Fully virtualize guest TSC"
236         default n
237         depends on VIRTUALIZE_TIME
238         help
239             Virtualize the processor time stamp counter in the guest, 
240             generally increasing consistency between various time sources 
241             but also potentially making guest time run slower than real time.
242          
243 endmenu
244
245
246
247 menu "Symbiotic Functions"
248
249 config SYMBIOTIC
250         bool "Enable Symbiotic Functionality"
251         default n
252         help 
253           Enable Symbiotic components of the VMM. 
254           This includes the SymSpy interface.
255
256 config SYMCALL
257         bool "Symbiotic upcalls"
258         default n
259         depends on SYMBIOTIC && EXPERIMENTAL
260         help
261           Enables the Symbiotic upcall interface
262
263 config SWAPBYPASS
264         bool "SwapBypass"
265         default n
266         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
267         help 
268           This enables the SwapBypass architecture
269
270 config SWAPBYPASS_TELEMETRY
271         bool "Enable SwapBypass Telemetry"
272         default n
273         depends on TELEMETRY && SWAPBYPASS
274         help 
275           Enable the telemetry information for the SwapBypass subsystem
276
277 menuconfig SYMMOD 
278         bool "Symbiotic Modules"
279         default n
280         depends on EXPERIMENTAL
281 #       depends on SYMBIOTIC
282         help
283           Enable Symbiotic module loading
284
285
286 endmenu
287
288 menu "VNET"
289
290 config VNET
291         bool "Enable Vnet in Palacios"
292         default n
293         help
294           Enable the Vnet in Palacios
295
296 config DEBUG_VNET
297         depends on VNET
298         bool "Enable Vnet Debug in Palacios"
299         default n
300         help
301           Enable the Vnet debug in Palacios
302
303
304 endmenu
305
306 menu "Debug configuration"
307
308 config CONFIG_DEBUG_INFO
309         bool "Compile with Debug information"
310         default n
311         help 
312          This adds the -g flag to the compilation flags
313
314
315 ## Is unwind information useful
316
317 config DEBUG_ON
318         bool "Enable Debugging"
319         default y
320         help
321           This turns on debugging support
322
323
324 config DEBUG_SVM
325         bool "AMD SVM"
326         default n
327         depends on DEBUG_ON
328         help 
329           This turns on debugging for the AMD SVM-specific code
330
331 config DEBUG_VMX
332         bool "Intel VT"
333         default n
334         depends on DEBUG_ON
335         help 
336           This turns on debugging for the Intel VT-specific code
337
338
339 config DEBUG_SHADOW_PAGING
340         bool "Shadow paging"
341         default n
342         depends on DEBUG_ON
343         help 
344           This turns on debugging for the shadow paging system
345
346
347 config DEBUG_NESTED_PAGING
348         bool "Nested paging"
349         default n
350         depends on DEBUG_ON
351         help 
352           This turns on debugging for the nested paging system
353
354
355 config DEBUG_CTRL_REGS
356         bool "Control registers"
357         default n
358         depends on DEBUG_ON
359         help 
360           This turns on debugging for the control register handlers
361
362
363 config DEBUG_INTERRUPTS
364         bool "Interrupts"
365         default n
366         depends on DEBUG_ON
367         help 
368           This turns on debugging for the interrupt system
369
370 config DEBUG_TIME
371         bool "Timing"
372         default n
373         depends on DEBUG_ON
374         help
375           This turns on debugging of system time virtualization
376
377 config DEBUG_IO
378         bool "IO"
379         default n
380         depends on DEBUG_ON
381         help 
382           This turns on debugging for the IO handlers
383
384
385 config DEBUG_EMULATOR
386         bool "Instruction Emulator"
387         default n
388         depends on DEBUG_ON
389         help 
390           This turns on debugging for the Instruction Emulator
391
392
393 config DEBUG_DECODER
394         bool "Instruction Decoder"
395         default n
396         depends on DEBUG_ON
397         help 
398           This turns on debugging for the selected instruction decoder
399
400 config DEBUG_HALT
401         bool "Halt"
402         default n
403         depends on DEBUG_ON
404         help 
405           This turns on debugging for the halt instruction handler
406
407 config DEBUG_DEV_MGR
408         bool "Device Manager"
409         default n
410         depends on DEBUG_ON
411         help 
412           This turns on debugging for the device manager
413
414
415 config DEBUG_SYSCALL_HIJACK
416         bool "Enable Syscall Hijack Debug in Palacios"
417         default n
418         depends on DEBUG_ON && SYSCALL_HIJACK
419         help
420           Enable Debugging printouts for syscall hijacking
421           code in Palacios
422
423
424 endmenu
425
426
427 menu "BIOS Selection"
428
429 config ROMBIOS_PATH
430         string "Path to pre-built ROMBIOS binary"
431         default "./bios/rombios/BIOS-bochs-latest"
432         help
433           This is the rombios that will be used for the guests
434
435 config VGABIOS_PATH
436         string "Path to pre-built VGABIOS binary"
437         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
438         help
439           This is the vgabios that will be used for the guests
440
441 config VMXASSIST_PATH
442         string "Path to pre-built VMXASSIST binary"
443         depends on VMX
444         default "./bios/vmxassist/vmxassist.bin"
445         help
446           This is vmxassist image to boot real mode guests on 
447           Intel VMX Platforms
448
449 endmenu
450
451
452 source "palacios/src/devices/Kconfig"
453