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.


Time configuration parameters added. More time control code prototyped,
[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
21         bool "Linux 2.6"
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 config MINIX
30         bool "MINIX 3"
31         help
32           This enables the necesary options to compile Palacios with Kitten
33
34 config OTHER_OS
35         bool "Other OS"
36         help 
37           Choose this to compile Palacios for a Generic Host OS
38           (Formerly GeekOS)
39
40 endchoice
41
42 config CRAY_XT
43         bool "Red Storm (Cray XT3/XT4)"
44         help
45           Support for Cray XT3 and XT4 systems.
46
47 config SVM
48         bool "AMD SVM Support"
49         default y
50         help
51           Compile with support for AMD SVM
52
53 config VMX
54         bool "Intel VMX Support"
55         default y
56         help 
57           Compile with support for Intel VMX
58
59
60 menu "Supported host OS features"
61       
62 config MULTITHREAD_OS
63         bool "Host support for  multiple threads"
64         default y
65         help 
66           Select this if your OS supports multiple threads of execution. This will enable features in Palacios 
67           to require the creation of additional execution threads.
68
69
70 config ALIGNED_PG_ALLOC
71         bool "Host support for aligned page allocations"
72         default n
73         help 
74           Select this if your OS supports allocating memory pages using an alignment. This is required 
75           if you want Palacios to run with large page table pages. 
76
77 config MAX_CPUS
78         int "Maximum number of cpus"
79         range 1 255
80         default "16"
81         help 
82           Specifies the maximum number of hardware CPUs supported by the OS
83           For uniprocessor environments, set this to 1
84
85 config FILE
86         bool "Host Support for file operations"
87         default n
88         help
89           Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
90
91
92 config CONSOLE
93         bool "Host Support for VM console"
94         default n
95         help 
96           Select this if you want to forward a guest console interface to some host OS service
97
98
99
100 config SOCKET
101         bool "Host support for Network Sockets"
102         default y
103         help 
104           Select this if you host OS implements a socket API that is available to Palacios. This is required 
105           to support the internal networking features of Palacios.
106
107 endmenu
108
109
110
111 config TELEMETRY
112         bool "Enable VMM telemetry support"
113         default n
114         help 
115           Enable the telemetry framework in Palacios
116           -----
117           This is a framwork that allows components of palacios to record 
118           information that is periodically reported to the log output.
119           Telemetry is automatically collected for vmexits. Subsystem telemetry 
120           is configured separately
121
122
123 config SHADOW_PAGING_TELEMETRY
124         bool "Enable Shadow Paging Telemetry"
125         default y
126         depends on TELEMETRY
127         help
128           Enable telemetry information for shadow paging 
129
130
131 config INSTRUMENT_VMM
132         bool "Enable VMM instrumentation"
133         default n
134         help 
135           Enable the instrumentation framework
136           --------
137           This is much heavier weight than profiling
138
139 config EXPERIMENTAL
140         bool "Enable Experimental options"
141         default n
142         help 
143           This allows the selection of experimental features. This includes incomplete or unreviewed code. 
144           Only enable this feature if you are working on the features in question. 
145           IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
146           Any code that violates this will be immediately deleted without warning. 
147           -- 
148           The purpose of this option is to allow features under development to be committed to the mainline
149           to more easily track changes and provide access to multiple developers
150
151 config VNET
152         depends on EXPERIMENTAL
153         bool "Enable Vnet in Palacios"
154         default n
155         help
156           Enable the Vnet in Palacios
157
158 config DEBUG_VNET
159         depends on EXPERIMENTAL && VNET
160         bool "Enable Vnet Debug in Palacios"
161         default n
162         help
163           Enable the Vnet debug in Palacios
164
165 config VNET_PROFILE
166         depends on EXPERIMENTAL && VNET
167         bool "Enable Vnet Profiling in Palacios"
168         default n
169         help
170           Enable the Vnet performance profiling in Palacios
171
172 config LINUX_VIRTIO_VNET
173         bool "Enable Virtio VNET interface"
174         default n
175         depends on PCI && EXPERIMENTAL && VNET
176         help
177           Enable the Virtio VNET interface
178
179 config DEBUG_LINUX_VIRTIO_VNET
180         bool "VNET Virtio Device Debugging"
181         default n
182         depends on LINUX_VIRTIO_VNET && DEBUG_ON
183         help
184           Enable debugging for the VNET Virtio Device
185
186 endmenu
187
188
189 source "Kconfig.stdlibs"
190
191
192 menu "Virtual Paging"
193
194 config SHADOW_PAGING
195         bool "Enable shadow paging"
196         default y
197         help 
198            Enables shadow paging for virtual machines
199
200
201 config SHADOW_PAGING_VTLB
202         bool "Virtual TLB"
203         default y
204         depends on SHADOW_PAGING
205         help 
206            Enables Virtual TLB implemenation for shadow paging
207
208
209 config DEBUG_SHDW_PG_VTLB
210         bool "Enable VTLB debugging"
211         default n
212         depends on SHADOW_PAGING_VTLB
213         help
214           Enables debugging messages for VTLB implementation
215
216 endmenu
217
218
219 menu "Time Management"
220
221
222 config TIME_VIRTUALIZE_TSC
223         bool "Virtualize guest TSC"
224         default n
225         help
226             Virtualize the processor time stamp counter in the guest, 
227             generally increasing consistency between various time sources 
228             but also potentially making guest time run slightly slower
229             than real time.
230
231 config TIME_VIRTUAL_TSC_CONTROL
232         bool "Adjust virtual TSC towards real time when possible"
233         default y
234         depends on TIME_VIRTUALIZE_TSC
235         help 
236             Enables control of TSC virtualization so that the TSC
237             attempts to catch up with real time when possible
238
239 config TIME_MASK_OVERHEAD
240         bool "Hide virtualization overhead from guest timing"
241         default n
242         depends on TIME_VIRTUALIZE_TSC
243         help
244             Try to mask the overhead of virtualization from guests
245             by not including it in the time updates. Can dramatically
246             slow virtual time compared to real time if VIRTUAL_TSC_CONTROL
247             is not enabled.
248
249 endmenu
250
251 menu "Symbiotic Functions"
252
253 config SYMBIOTIC
254         bool "Enable Symbiotic Functionality"
255         default n
256         help 
257           Enable Symbiotic components of the VMM. 
258           This includes the SymSpy interface.
259
260 config SYMCALL
261         bool "Symbiotic upcalls"
262         default n
263         depends on SYMBIOTIC && EXPERIMENTAL
264         help
265           Enables the Symbiotic upcall interface
266
267 config SWAPBYPASS
268         bool "SwapBypass"
269         default n
270         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
271         help 
272           This enables the SwapBypass architecture
273
274 config SWAPBYPASS_TELEMETRY
275         bool "Enable SwapBypass Telemetry"
276         default n
277         depends on TELEMETRY && SWAPBYPASS
278         help 
279           Enable the telemetry information for the SwapBypass subsystem
280
281 menuconfig SYMMOD 
282         bool "Symbiotic Modules"
283         default n
284         depends on EXPERIMENTAL
285 #       depends on SYMBIOTIC
286         help
287           Enable Symbiotic module loading
288
289
290 endmenu
291
292
293
294 menu "Debug configuration"
295
296 config CONFIG_DEBUG_INFO
297         bool "Compile with Debug information"
298         default n
299         help 
300          This adds the -g flag to the compilation flags
301
302
303 ## Is unwind information useful
304
305 config DEBUG_ON
306         bool "Enable Debugging"
307         default y
308         help
309           This turns on debugging support
310
311
312 config DEBUG_SVM
313         bool "AMD SVM"
314         default n
315         depends on DEBUG_ON
316         help 
317           This turns on debugging for the AMD SVM-specific code
318
319 config DEBUG_VMX
320         bool "Intel VT"
321         default n
322         depends on DEBUG_ON
323         help 
324           This turns on debugging for the Intel VT-specific code
325
326
327 config DEBUG_SHADOW_PAGING
328         bool "Shadow paging"
329         default n
330         depends on DEBUG_ON
331         help 
332           This turns on debugging for the shadow paging system
333
334
335 config DEBUG_NESTED_PAGING
336         bool "Nested paging"
337         default n
338         depends on DEBUG_ON
339         help 
340           This turns on debugging for the nested paging system
341
342
343 config DEBUG_CTRL_REGS
344         bool "Control registers"
345         default n
346         depends on DEBUG_ON
347         help 
348           This turns on debugging for the control register handlers
349
350
351 config DEBUG_INTERRUPTS
352         bool "Interrupts"
353         default n
354         depends on DEBUG_ON
355         help 
356           This turns on debugging for the interrupt system
357
358 config DEBUG_TIME
359         bool "Timing"
360         default n
361         depends on DEBUG_ON
362         help
363           This turns on debugging of system time virtualization
364
365 config DEBUG_IO
366         bool "IO"
367         default n
368         depends on DEBUG_ON
369         help 
370           This turns on debugging for the IO handlers
371
372
373 config DEBUG_EMULATOR
374         bool "Instruction Emulator"
375         default n
376         depends on DEBUG_ON
377         help 
378           This turns on debugging for the Instruction Emulator
379
380
381 config DEBUG_XED
382         bool "XED"
383         default n
384         depends on DEBUG_ON
385         help 
386           This turns on debugging for the Xed Decoder
387
388 config DEBUG_HALT
389         bool "Halt"
390         default n
391         depends on DEBUG_ON
392         help 
393           This turns on debugging for the halt instruction handler
394
395 config DEBUG_DEV_MGR
396         bool "Device Manager"
397         default n
398         depends on DEBUG_ON
399         help 
400           This turns on debugging for the device manager
401
402
403
404
405 endmenu
406
407
408 menu "BIOS Selection"
409
410 config ROMBIOS_PATH
411         string "Path to pre-built ROMBIOS binary"
412         default "./bios/rombios/BIOS-bochs-latest"
413         help
414           This is the rombios that will be used for the guests
415
416 config VGABIOS_PATH
417         string "Path to pre-built VGABIOS binary"
418         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
419         help
420           This is the vgabios that will be used for the guests
421
422 config VMXASSIST_PATH
423         string "Path to pre-built VMXASSIST binary"
424         depends on VMX
425         default "./bios/vmxassist/vmxassist.bin"
426         help
427           This is vmxassist image to boot real mode guests on 
428           Intel VMX Platforms
429
430 endmenu
431
432
433 source "palacios/src/devices/Kconfig"
434