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.


moved host OS interfaces to a separate directory palacios/src/interfaces and 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 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
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 config VNET
167         depends on EXPERIMENTAL
168         bool "Enable Vnet in Palacios"
169         default n
170         help
171           Enable the Vnet in Palacios
172
173
174 config INSPECTOR
175         bool "Enable VM inspection"
176         depends on EXPERIMENTAL
177         default n
178         help 
179           Enable inspection framework for vm internal state
180
181 endmenu
182
183
184 source "Kconfig.stdlibs"
185
186
187 menu "Virtual Paging"
188
189 config SHADOW_PAGING
190         bool "Enable shadow paging"
191         default y
192         help 
193            Enables shadow paging for virtual machines
194
195
196 config SHADOW_PAGING_VTLB
197         bool "Virtual TLB"
198         default y
199         depends on SHADOW_PAGING
200         help 
201            Enables Virtual TLB implemenation for shadow paging
202
203
204 config DEBUG_SHDW_PG_VTLB
205         bool "Enable VTLB debugging"
206         default n
207         depends on SHADOW_PAGING_VTLB
208         help
209           Enables debugging messages for VTLB implementation
210
211 config SHADOW_PAGING_CACHE1
212         bool "Shadow Page Cache (1)"
213         default y
214         depends on SHADOW_PAGING
215         help 
216            Enables caching implemenation for shadow paging
217
218
219 endmenu
220
221
222
223 menu "Time Management"
224 config VIRTUALIZE_TIME
225         bool "Enable Time virtualization"
226         default n
227         help
228            Enables the timer virtualization extensions
229  
230 config TIME_HIDE_VM_COST
231         bool "Hide VMM Run Cost"
232         default n
233         depends on VIRTUALIZE_TIME
234         help
235             Offset guest time from host time sufficiently to hide the cost of
236             running in the virtual machine. This can aid the consistency of
237             time between multiple timers, but can cause the guest to run 
238             a good bit slower than the host in VM-intensive parts of the code.
239
240 config TIME_VIRTUALIZE_TSC
241         bool "Fully virtualize guest TSC"
242         default n
243         depends on VIRTUALIZE_TIME
244         help
245             Virtualize the processor time stamp counter in the guest, 
246             generally increasing consistency between various time sources 
247             but also potentially making guest time run slower than real time.
248          
249 endmenu
250
251
252
253 menu "Symbiotic Functions"
254
255 config SYMBIOTIC
256         bool "Enable Symbiotic Functionality"
257         default n
258         help 
259           Enable Symbiotic components of the VMM. 
260           This includes the SymSpy interface.
261
262 config SYMCALL
263         bool "Symbiotic upcalls"
264         default n
265         depends on SYMBIOTIC && EXPERIMENTAL
266         help
267           Enables the Symbiotic upcall interface
268
269 config SWAPBYPASS
270         bool "SwapBypass"
271         default n
272         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
273         help 
274           This enables the SwapBypass architecture
275
276 config SWAPBYPASS_TELEMETRY
277         bool "Enable SwapBypass Telemetry"
278         default n
279         depends on TELEMETRY && SWAPBYPASS
280         help 
281           Enable the telemetry information for the SwapBypass subsystem
282
283 menuconfig SYMMOD 
284         bool "Symbiotic Modules"
285         default n
286         depends on EXPERIMENTAL
287 #       depends on SYMBIOTIC
288         help
289           Enable Symbiotic module loading
290
291
292 endmenu
293
294
295
296 menu "Debug configuration"
297
298 config CONFIG_DEBUG_INFO
299         bool "Compile with Debug information"
300         default n
301         help 
302          This adds the -g flag to the compilation flags
303
304
305 ## Is unwind information useful
306
307 config DEBUG_ON
308         bool "Enable Debugging"
309         default y
310         help
311           This turns on debugging support
312
313
314 config DEBUG_SVM
315         bool "AMD SVM"
316         default n
317         depends on DEBUG_ON
318         help 
319           This turns on debugging for the AMD SVM-specific code
320
321 config DEBUG_VMX
322         bool "Intel VT"
323         default n
324         depends on DEBUG_ON
325         help 
326           This turns on debugging for the Intel VT-specific code
327
328
329 config DEBUG_SHADOW_PAGING
330         bool "Shadow paging"
331         default n
332         depends on DEBUG_ON
333         help 
334           This turns on debugging for the shadow paging system
335
336
337 config DEBUG_NESTED_PAGING
338         bool "Nested paging"
339         default n
340         depends on DEBUG_ON
341         help 
342           This turns on debugging for the nested paging system
343
344
345 config DEBUG_CTRL_REGS
346         bool "Control registers"
347         default n
348         depends on DEBUG_ON
349         help 
350           This turns on debugging for the control register handlers
351
352
353 config DEBUG_INTERRUPTS
354         bool "Interrupts"
355         default n
356         depends on DEBUG_ON
357         help 
358           This turns on debugging for the interrupt system
359
360 config DEBUG_TIME
361         bool "Timing"
362         default n
363         depends on DEBUG_ON
364         help
365           This turns on debugging of system time virtualization
366
367 config DEBUG_IO
368         bool "IO"
369         default n
370         depends on DEBUG_ON
371         help 
372           This turns on debugging for the IO handlers
373
374
375 config DEBUG_EMULATOR
376         bool "Instruction Emulator"
377         default n
378         depends on DEBUG_ON
379         help 
380           This turns on debugging for the Instruction Emulator
381
382
383 config DEBUG_DECODER
384         bool "Instruction Decoder"
385         default n
386         depends on DEBUG_ON
387         help 
388           This turns on debugging for the selected instruction decoder
389
390 config DEBUG_HALT
391         bool "Halt"
392         default n
393         depends on DEBUG_ON
394         help 
395           This turns on debugging for the halt instruction handler
396
397 config DEBUG_DEV_MGR
398         bool "Device Manager"
399         default n
400         depends on DEBUG_ON
401         help 
402           This turns on debugging for the device manager
403
404 config DEBUG_VNET
405         depends on EXPERIMENTAL && VNET
406         bool "Enable Vnet Debug in Palacios"
407         default n
408         help
409           Enable the Vnet debug in Palacios
410
411 endmenu
412
413
414 menu "BIOS Selection"
415
416 config ROMBIOS_PATH
417         string "Path to pre-built ROMBIOS binary"
418         default "./bios/rombios/BIOS-bochs-latest"
419         help
420           This is the rombios that will be used for the guests
421
422 config VGABIOS_PATH
423         string "Path to pre-built VGABIOS binary"
424         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
425         help
426           This is the vgabios that will be used for the guests
427
428 config VMXASSIST_PATH
429         string "Path to pre-built VMXASSIST binary"
430         depends on VMX
431         default "./bios/vmxassist/vmxassist.bin"
432         help
433           This is vmxassist image to boot real mode guests on 
434           Intel VMX Platforms
435
436 endmenu
437
438
439 source "palacios/src/devices/Kconfig"
440