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.


Added functionality for MONITOR and MWAIT instructions on SVM and VMX:
[palacios.releases.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
161
162 config EXPERIMENTAL
163         bool "Enable Experimental options"
164         default n
165         help 
166           This allows the selection of experimental features. This includes incomplete or unreviewed code. 
167           Only enable this feature if you are working on the features in question. 
168           IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
169           Any code that violates this will be immediately deleted without warning. 
170           -- 
171           The purpose of this option is to allow features under development to be committed to the mainline
172           to more easily track changes and provide access to multiple developers
173
174 config CHECKPOINT
175         bool "Enable Checkpointing"
176         default n
177         help 
178           Enable checkpointing functionality (save/load VMs)
179
180 config LIVE_MIGRATION
181         bool "Enable Live Migration"
182         depends on CHECKPOINT
183         default n
184         help
185           Enable live migration functionality (send/receive VMs)
186
187 config DEBUG_CHECKPOINT
188         bool "Enable Checkpointing and Live Migration Debugging Output"
189         depends on CHECKPOINT
190         default n
191         help
192           Generate output from the debugging statements in checkpointing and live migration
193
194
195 endmenu
196
197
198 source "Kconfig.stdlibs"
199
200
201 menu "Virtual Paging"
202
203 config SHADOW_PAGING
204         bool "Enable shadow paging"
205         default y
206         help 
207            Enables shadow paging for virtual machines
208
209
210 config SHADOW_PAGING_VTLB
211         bool "Virtual TLB"
212         default y
213         depends on SHADOW_PAGING
214         help 
215            Enables Virtual TLB implemenation for shadow paging
216
217
218 config DEBUG_SHDW_PG_VTLB
219         bool "Enable VTLB debugging"
220         default n
221         depends on SHADOW_PAGING_VTLB
222         help
223           Enables debugging messages for VTLB implementation
224
225 config SHADOW_PAGING_CACHE1
226         bool "Shadow Page Cache (1)"
227         default y
228         depends on SHADOW_PAGING
229         help 
230            Enables caching implemenation for shadow paging
231
232
233 endmenu
234
235 menu "Symbiotic Functions"
236
237 config SYMBIOTIC
238         bool "Enable Symbiotic Functionality"
239         default n
240         help 
241           Enable Symbiotic components of the VMM. 
242           This includes the SymSpy interface.
243
244 config SYMCALL
245         bool "Symbiotic upcalls"
246         default n
247         depends on SYMBIOTIC && EXPERIMENTAL
248         help
249           Enables the Symbiotic upcall interface
250
251 config SWAPBYPASS
252         bool "SwapBypass"
253         default n
254         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
255         help 
256           This enables the SwapBypass architecture
257
258 config SWAPBYPASS_TELEMETRY
259         bool "Enable SwapBypass Telemetry"
260         default n
261         depends on TELEMETRY && SWAPBYPASS
262         help 
263           Enable the telemetry information for the SwapBypass subsystem
264
265 menuconfig SYMMOD 
266         bool "Symbiotic Modules"
267         default n
268         depends on EXPERIMENTAL
269 #       depends on SYMBIOTIC
270         help
271           Enable Symbiotic module loading
272
273
274 endmenu
275
276 menu "VNET"
277
278 config VNET
279         bool "Enable Vnet in Palacios"
280         default n
281         help
282           Enable the Vnet in Palacios
283
284 config DEBUG_VNET
285         depends on VNET
286         bool "Enable Vnet Debug in Palacios"
287         default n
288         help
289           Enable the Vnet debug in Palacios
290
291
292 endmenu
293
294 source "palacios/src/gears/Kconfig"
295
296 menu "Debug configuration"
297
298 ## Is unwind information useful
299
300 config DEBUG_ON
301         bool "Enable Debugging"
302         default y
303         help
304           This turns on debugging support
305
306
307 config DEBUG_SVM
308         bool "AMD SVM"
309         default n
310         depends on DEBUG_ON
311         help 
312           This turns on debugging for the AMD SVM-specific code
313
314 config DEBUG_VMX
315         bool "Intel VT"
316         default n
317         depends on DEBUG_ON
318         help 
319           This turns on debugging for the Intel VT-specific code
320
321
322 config DEBUG_SHADOW_PAGING
323         bool "Shadow paging"
324         default n
325         depends on DEBUG_ON
326         help 
327           This turns on debugging for the shadow paging system
328
329
330 config DEBUG_NESTED_PAGING
331         bool "Nested paging"
332         default n
333         depends on DEBUG_ON
334         help 
335           This turns on debugging for the nested paging system
336
337
338 config DEBUG_CTRL_REGS
339         bool "Control registers"
340         default n
341         depends on DEBUG_ON
342         help 
343           This turns on debugging for the control register handlers
344
345
346 config DEBUG_INTERRUPTS
347         bool "Interrupts"
348         default n
349         depends on DEBUG_ON
350         help 
351           This turns on debugging for the interrupt system
352
353 config DEBUG_TIME
354         bool "Timing"
355         default n
356         depends on DEBUG_ON
357         help
358           This turns on debugging of system time virtualization
359
360 config DEBUG_IO
361         bool "IO"
362         default n
363         depends on DEBUG_ON
364         help 
365           This turns on debugging for the IO handlers
366
367
368 config DEBUG_EMULATOR
369         bool "Instruction Emulator"
370         default n
371         depends on DEBUG_ON
372         help 
373           This turns on debugging for the Instruction Emulator
374
375
376 config DEBUG_DECODER
377         bool "Instruction Decoder"
378         default n
379         depends on DEBUG_ON
380         help 
381           This turns on debugging for the selected instruction decoder
382
383 config DEBUG_HALT
384         bool "Halt"
385         default n
386         depends on DEBUG_ON
387         help 
388           This turns on debugging for the halt instruction handler
389
390 config DEBUG_MWAIT
391         bool "MWAIT/MONITOR"
392         default n
393         depends on DEBUG_ON
394         help 
395           This turns on debugging for the mwait and monitor instruction handlers
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_MEM_ERRORS
405     bool "Verbose memory errors"
406     default n
407     depends on DEBUG_ON
408     help
409       This turns on debugging for memory translations and lookups
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