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.


Merge branch 'devel' of newskysaw.cs.northwestern.edu:/home/palacios/palacios into...
[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 FRAME_POINTER
80         bool "Compile with Frame pointers"
81         default n
82         help
83           Compiles the Palacios library with Frame pointers
84
85 config DEBUG_INFO
86         bool "Compile with Debug Information"
87         default n
88         help
89           Compiles the Palacios library with debugging symbols
90
91 choice 
92         prompt "X86 decoder"
93         default XED
94
95 config XED
96         bool "XED decoder library"
97         depends on !LINUX
98         help
99            This uses the XED decoder library from pintools 
100
101 config V3_DECODER
102         bool "Internal Palacios decoder"
103         help
104             This selects the internal V3Vee x86 decoder
105
106
107 endchoice
108
109 menu "Supported host OS features"
110       
111 config MULTITHREAD_OS
112         bool "Host support for  multiple threads"
113         default y
114         help 
115           Select this if your OS supports multiple threads of execution. This will enable features in Palacios 
116           to require the creation of additional execution threads.
117
118
119 config ALIGNED_PG_ALLOC
120         bool "Host support for aligned page allocations"
121         default n
122         help 
123           Select this if your OS supports allocating memory pages using an alignment. This is required 
124           if you want Palacios to run with large page table pages. 
125
126 config MAX_CPUS
127         int "Maximum number of cpus"
128         range 1 255
129         default "16"
130         help 
131           Specifies the maximum number of hardware CPUs supported by the OS
132           For uniprocessor environments, set this to 1
133
134 endmenu
135
136 source "palacios/src/interfaces/Kconfig"
137 source "palacios/src/extensions/Kconfig"
138
139 config TELEMETRY
140         bool "Enable VMM telemetry support"
141         default n
142         help 
143           Enable the telemetry framework in Palacios
144           -----
145           This is a framwork that allows components of palacios to record 
146           information that is periodically reported to the log output.
147           Telemetry is automatically collected for vmexits. Subsystem telemetry 
148           is configured separately
149
150
151 config SHADOW_PAGING_TELEMETRY
152         bool "Enable Shadow Paging Telemetry"
153         default y
154         depends on TELEMETRY
155         help
156           Enable telemetry information for shadow paging 
157
158
159
160 config EXPERIMENTAL
161         bool "Enable Experimental options"
162         default n
163         help 
164           This allows the selection of experimental features. This includes incomplete or unreviewed code. 
165           Only enable this feature if you are working on the features in question. 
166           IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
167           Any code that violates this will be immediately deleted without warning. 
168           -- 
169           The purpose of this option is to allow features under development to be committed to the mainline
170           to more easily track changes and provide access to multiple developers
171
172 config CHECKPOINT
173         bool "Enable Checkpointing"
174         default n
175         help 
176           Temporary option to enable experimental checkpoint code
177
178
179
180 endmenu
181
182
183 source "Kconfig.stdlibs"
184
185
186 menu "Virtual Paging"
187
188 config SHADOW_PAGING
189         bool "Enable shadow paging"
190         default y
191         help 
192            Enables shadow paging for virtual machines
193
194
195 config SHADOW_PAGING_VTLB
196         bool "Virtual TLB"
197         default y
198         depends on SHADOW_PAGING
199         help 
200            Enables Virtual TLB implemenation for shadow paging
201
202
203 config DEBUG_SHDW_PG_VTLB
204         bool "Enable VTLB debugging"
205         default n
206         depends on SHADOW_PAGING_VTLB
207         help
208           Enables debugging messages for VTLB implementation
209
210 config SHADOW_PAGING_CACHE1
211         bool "Shadow Page Cache (1)"
212         default y
213         depends on SHADOW_PAGING
214         help 
215            Enables caching implemenation for shadow paging
216
217
218 endmenu
219
220
221
222 menu "Time Management"
223 config VIRTUALIZE_TIME
224         bool "Enable Time virtualization"
225         default n
226         help
227            Enables the timer virtualization extensions
228  
229 config TIME_HIDE_VM_COST
230         bool "Hide VMM Run Cost"
231         default n
232         depends on VIRTUALIZE_TIME
233         help
234             Offset guest time from host time sufficiently to hide the cost of
235             running in the virtual machine. This can aid the consistency of
236             time between multiple timers, but can cause the guest to run 
237             a good bit slower than the host in VM-intensive parts of the code.
238
239 config TIME_VIRTUALIZE_TSC
240         bool "Fully virtualize guest TSC"
241         default n
242         depends on VIRTUALIZE_TIME
243         help
244             Virtualize the processor time stamp counter in the guest, 
245             generally increasing consistency between various time sources 
246             but also potentially making guest time run slower than real time.
247          
248 endmenu
249
250
251
252 menu "Symbiotic Functions"
253
254 config SYMBIOTIC
255         bool "Enable Symbiotic Functionality"
256         default n
257         help 
258           Enable Symbiotic components of the VMM. 
259           This includes the SymSpy interface.
260
261 config SYMCALL
262         bool "Symbiotic upcalls"
263         default n
264         depends on SYMBIOTIC && EXPERIMENTAL
265         help
266           Enables the Symbiotic upcall interface
267
268 config SWAPBYPASS
269         bool "SwapBypass"
270         default n
271         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
272         help 
273           This enables the SwapBypass architecture
274
275 config SWAPBYPASS_TELEMETRY
276         bool "Enable SwapBypass Telemetry"
277         default n
278         depends on TELEMETRY && SWAPBYPASS
279         help 
280           Enable the telemetry information for the SwapBypass subsystem
281
282 menuconfig SYMMOD 
283         bool "Symbiotic Modules"
284         default n
285         depends on EXPERIMENTAL
286 #       depends on SYMBIOTIC
287         help
288           Enable Symbiotic module loading
289
290
291 endmenu
292
293 menu "VNET"
294
295 config VNET
296         bool "Enable Vnet in Palacios"
297         default n
298         help
299           Enable the Vnet in Palacios
300
301 config DEBUG_VNET
302         depends on VNET
303         bool "Enable Vnet Debug in Palacios"
304         default n
305         help
306           Enable the Vnet debug in Palacios
307
308
309 endmenu
310
311 menu "Debug configuration"
312
313
314 ## Is unwind information useful
315
316 config DEBUG_ON
317         bool "Enable Debugging"
318         default y
319         help
320           This turns on debugging support
321
322
323 config DEBUG_SVM
324         bool "AMD SVM"
325         default n
326         depends on DEBUG_ON
327         help 
328           This turns on debugging for the AMD SVM-specific code
329
330 config DEBUG_VMX
331         bool "Intel VT"
332         default n
333         depends on DEBUG_ON
334         help 
335           This turns on debugging for the Intel VT-specific code
336
337
338 config DEBUG_SHADOW_PAGING
339         bool "Shadow paging"
340         default n
341         depends on DEBUG_ON
342         help 
343           This turns on debugging for the shadow paging system
344
345
346 config DEBUG_NESTED_PAGING
347         bool "Nested paging"
348         default n
349         depends on DEBUG_ON
350         help 
351           This turns on debugging for the nested paging system
352
353
354 config DEBUG_CTRL_REGS
355         bool "Control registers"
356         default n
357         depends on DEBUG_ON
358         help 
359           This turns on debugging for the control register handlers
360
361
362 config DEBUG_INTERRUPTS
363         bool "Interrupts"
364         default n
365         depends on DEBUG_ON
366         help 
367           This turns on debugging for the interrupt system
368
369 config DEBUG_TIME
370         bool "Timing"
371         default n
372         depends on DEBUG_ON
373         help
374           This turns on debugging of system time virtualization
375
376 config DEBUG_IO
377         bool "IO"
378         default n
379         depends on DEBUG_ON
380         help 
381           This turns on debugging for the IO handlers
382
383
384 config DEBUG_EMULATOR
385         bool "Instruction Emulator"
386         default n
387         depends on DEBUG_ON
388         help 
389           This turns on debugging for the Instruction Emulator
390
391
392 config DEBUG_DECODER
393         bool "Instruction Decoder"
394         default n
395         depends on DEBUG_ON
396         help 
397           This turns on debugging for the selected instruction decoder
398
399 config DEBUG_HALT
400         bool "Halt"
401         default n
402         depends on DEBUG_ON
403         help 
404           This turns on debugging for the halt instruction handler
405
406 config DEBUG_DEV_MGR
407         bool "Device Manager"
408         default n
409         depends on DEBUG_ON
410         help 
411           This turns on debugging for the device manager
412
413 config DEBUG_MEM_ERRORS
414     bool "Verbose memory errors"
415     default n
416     depends on DEBUG_ON
417     help
418       This turns on debugging for memory translations and lookups
419
420 endmenu
421
422
423 menu "BIOS Selection"
424
425 config ROMBIOS_PATH
426         string "Path to pre-built ROMBIOS binary"
427         default "./bios/rombios/BIOS-bochs-latest"
428         help
429           This is the rombios that will be used for the guests
430
431 config VGABIOS_PATH
432         string "Path to pre-built VGABIOS binary"
433         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
434         help
435           This is the vgabios that will be used for the guests
436
437 config VMXASSIST_PATH
438         string "Path to pre-built VMXASSIST binary"
439         depends on VMX
440         default "./bios/vmxassist/vmxassist.bin"
441         help
442           This is vmxassist image to boot real mode guests on 
443           Intel VMX Platforms
444
445 endmenu
446
447
448 source "palacios/src/devices/Kconfig"
449