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