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.


PMU-based telemetry extension to monitor guest and host behavior
[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         help
17           This enables the necesary options to compile Palacios with Kitten
18
19 config LINUX_BUILTIN
20         bool "OLD Linux (Built in) -- to be deprecated"
21         select BUILT_IN_STDLIB
22         select BUILT_IN_ATOI
23         select FILE
24         help
25           This enables the necessary options to compile Palacios with Linux 2.6
26           Currently, this is in development, and only 2.6.32 is verified to work
27
28
29 config LINUX
30         bool "Linux Module"
31         select BUILT_IN_STDLIB
32         select BUILT_IN_STRDUP
33         select BUILT_IN_ATOI
34         select FILE
35         select V3_DECODER
36         help
37           This enables the necessary options to compile Palacios as a Linux module
38  
39
40 config LINUX_KERN
41         depends on LINUX
42         string "Linux Kernel Source directory" 
43         default "/usr/src/linux"
44         help 
45           This is the directory containing the linux source for the kernel module to be built
46
47 config MINIX
48         bool "MINIX 3"
49         help
50           This enables the necesary options to compile Palacios with Kitten
51
52 config OTHER_OS
53         bool "Other OS"
54         help 
55           Choose this to compile Palacios for a Generic Host OS
56           (Formerly GeekOS)
57
58 endchoice
59
60 config CRAY_XT
61         bool "Red Storm (Cray XT3/XT4)"
62         help
63           Support for Cray XT3 and XT4 systems.
64
65 config SVM
66         bool "AMD SVM Support"
67         default y
68         help
69           Compile with support for AMD SVM
70
71 config VMX
72         bool "Intel VMX Support"
73         default y
74         help 
75           Compile with support for Intel VMX
76
77
78 config FRAME_POINTER
79         bool "Compile with Frame pointers"
80         default n
81         help
82           Compiles the Palacios library with Frame pointers
83
84 config DEBUG_INFO
85         bool "Compile with Debug Information"
86         default n
87         help
88           Compiles the Palacios library with debugging symbols
89
90 choice 
91         prompt "X86 decoder"
92         default XED
93
94 config XED
95         bool "XED decoder library"
96         depends on !LINUX
97         help
98            This uses the XED decoder library from pintools 
99
100 config V3_DECODER
101         bool "Internal Palacios decoder"
102         help
103             This selects the internal V3Vee x86 decoder
104
105 config QUIX86
106     bool "QUIX86 decoder"
107     help
108         This selects the QUIX86 decoder library
109
110 config QUIX86_DEBUG
111     bool "QUIX86 decoder debug version"
112     help
113         This selects the QUIX86 decoder library compiled w/o optimization
114         and with debug info
115
116 endchoice
117
118 menu "Supported host OS features"
119       
120
121 config ALIGNED_PG_ALLOC
122         bool "Host support for aligned page allocations"
123         default n
124         help 
125           Select this if your OS supports allocating memory pages using an alignment. This is required 
126           if you want Palacios to run with large page table pages. 
127
128 config MAX_CPUS
129         int "Maximum number of cpus"
130         range 1 255
131         default "16"
132         help 
133           Specifies the maximum number of hardware CPUs supported by the OS
134           For uniprocessor environments, set this to 1
135
136 endmenu
137
138 source "palacios/src/interfaces/Kconfig"
139 source "palacios/src/extensions/Kconfig"
140
141 config TELEMETRY
142         bool "Enable VMM telemetry support"
143         default n
144         help 
145           Enable the telemetry framework in Palacios
146           -----
147           This is a framwork that allows components of palacios to record 
148           information that is periodically reported to the log output.
149           Telemetry is automatically collected for vmexits. Subsystem telemetry 
150           is configured separately
151
152
153 config SHADOW_PAGING_TELEMETRY
154         bool "Enable Shadow Paging Telemetry"
155         default y
156         depends on TELEMETRY
157         help
158           Enable telemetry information for shadow paging 
159
160 config PMU_TELEMETRY
161       bool "Enable PMU telemetry"
162       default n
163       depends on TELEMETRY && HOST_PMU
164       help
165         Enable telemetry information for a range of PMU counters
166           This causes the currently configured PMU counts to be printed
167
168
169
170 config EXPERIMENTAL
171         bool "Enable Experimental options"
172         default n
173         help 
174           This allows the selection of experimental features. This includes incomplete or unreviewed code. 
175           Only enable this feature if you are working on the features in question. 
176           IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
177           Any code that violates this will be immediately deleted without warning. 
178           -- 
179           The purpose of this option is to allow features under development to be committed to the mainline
180           to more easily track changes and provide access to multiple developers
181
182 config CHECKPOINT
183         bool "Enable Checkpointing"
184         default n
185         help 
186           Enable checkpointing functionality (save/load VMs)
187
188 config LIVE_MIGRATION
189         bool "Enable Live Migration"
190         depends on CHECKPOINT
191         default n
192         help
193           Enable live migration functionality (send/receive VMs)
194
195 config DEBUG_CHECKPOINT
196         bool "Enable Checkpointing and Live Migration Debugging Output"
197         depends on CHECKPOINT
198         default n
199         help
200           Generate output from the debugging statements in checkpointing and live migration
201
202
203 endmenu
204
205
206 source "Kconfig.stdlibs"
207
208
209 menu "Virtual Paging"
210
211 config SHADOW_PAGING
212         bool "Enable shadow paging"
213         default y
214         help 
215            Enables shadow paging for virtual machines
216
217
218 config SHADOW_PAGING_VTLB
219         bool "Virtual TLB"
220         default y
221         depends on SHADOW_PAGING
222         help 
223            Enables Virtual TLB implemenation for shadow paging
224
225
226 config DEBUG_SHDW_PG_VTLB
227         bool "Enable VTLB debugging"
228         default n
229         depends on SHADOW_PAGING_VTLB
230         help
231           Enables debugging messages for VTLB implementation
232
233 config SHADOW_PAGING_CACHE1
234         bool "Shadow Page Cache (1)"
235         default y
236         depends on SHADOW_PAGING
237         help 
238            Enables caching implemenation for shadow paging
239
240
241 endmenu
242
243 menu "Symbiotic Functions"
244
245 config SYMBIOTIC
246         bool "Enable Symbiotic Functionality"
247         default n
248         help 
249           Enable Symbiotic components of the VMM. 
250           This includes the SymSpy interface.
251
252 config SYMCALL
253         bool "Symbiotic upcalls"
254         default n
255         depends on SYMBIOTIC && EXPERIMENTAL
256         help
257           Enables the Symbiotic upcall interface
258
259 config SWAPBYPASS
260         bool "SwapBypass"
261         default n
262         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
263         help 
264           This enables the SwapBypass architecture
265
266 config SWAPBYPASS_TELEMETRY
267         bool "Enable SwapBypass Telemetry"
268         default n
269         depends on TELEMETRY && SWAPBYPASS
270         help 
271           Enable the telemetry information for the SwapBypass subsystem
272
273 menuconfig SYMMOD 
274         bool "Symbiotic Modules"
275         default n
276         depends on EXPERIMENTAL
277 #       depends on SYMBIOTIC
278         help
279           Enable Symbiotic module loading
280
281
282 endmenu
283
284 menu "VNET"
285
286 config VNET
287         bool "Enable Vnet in Palacios"
288         default n
289         help
290           Enable the Vnet in Palacios
291
292 config DEBUG_VNET
293         depends on VNET
294         bool "Enable Vnet Debug in Palacios"
295         default n
296         help
297           Enable the Vnet debug in Palacios
298
299
300 endmenu
301
302 source "palacios/src/gears/Kconfig"
303
304 menu "Debug configuration"
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_SCHEDULER
369     bool "Scheduler"
370     default n
371     depends on DEBUG_ON
372     help
373       This turns on debugging for scheduler
374
375 config DEBUG_IO
376         bool "IO"
377         default n
378         depends on DEBUG_ON
379         help 
380           This turns on debugging for the IO handlers
381
382
383 config DEBUG_EMULATOR
384         bool "Instruction Emulator"
385         default n
386         depends on DEBUG_ON
387         help 
388           This turns on debugging for the Instruction Emulator
389
390
391 config DEBUG_DECODER
392         bool "Instruction Decoder"
393         default n
394         depends on DEBUG_ON
395         help 
396           This turns on debugging for the selected instruction decoder
397
398 config DEBUG_HALT
399         bool "Halt"
400         default n
401         depends on DEBUG_ON
402         help 
403           This turns on debugging for the halt instruction handler
404
405 config DEBUG_MWAIT
406         bool "MWAIT/MONITOR"
407         default n
408         depends on DEBUG_ON
409         help 
410           This turns on debugging for the mwait and monitor instruction handlers
411
412 config DEBUG_DEV_MGR
413         bool "Device Manager"
414         default n
415         depends on DEBUG_ON
416         help 
417           This turns on debugging for the device manager
418
419 config DEBUG_MEM_ERRORS
420     bool "Verbose memory errors"
421     default n
422     depends on DEBUG_ON
423     help
424       This turns on debugging for memory translations and lookups
425
426 endmenu
427
428
429 menu "BIOS Selection"
430
431 config ROMBIOS_PATH
432         string "Path to pre-built ROMBIOS binary"
433         default "./bios/rombios/BIOS-bochs-latest"
434         help
435           This is the rombios that will be used for the guests
436
437 config VGABIOS_PATH
438         string "Path to pre-built VGABIOS binary"
439         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
440         help
441           This is the vgabios that will be used for the guests
442
443 config VMXASSIST_PATH
444         string "Path to pre-built VMXASSIST binary"
445         depends on VMX
446         default "./bios/vmxassist/vmxassist.bin"
447         help
448           This is vmxassist image to boot real mode guests on 
449           Intel VMX Platforms
450
451 endmenu
452
453
454 source "palacios/src/devices/Kconfig"
455