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.


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