1
# -*- mode: python; -*-
2
#============================================================================
3
# Python configuration setup for 'xm create'.
4
# This script sets the parameters used when a domain is created using 'xm create'.
5
# You use a separate script for each domain you want to create, or
6
# you can set the parameters for the domain on the xm command line.
7
#============================================================================
9
#----------------------------------------------------------------------------
13
# The domain build function. HVM domain uses 'hvm'.
16
# Initial memory allocation (in megabytes) for the new domain.
18
# WARNING: Creating a domain with insufficient memory may cause out of
19
# memory errors. The domain needs enough memory to boot kernel
20
# and modules. Allocating less than 32MBs is not recommended.
23
# Shadow pagetable memory for the domain, in MB.
24
# If not explicictly set, xend will pick an appropriate value.
25
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
28
# Whether to transparently share this domain's memory with other domains.
32
# A name for your domain. All domains must have different names.
33
name = "ExampleHVMDomain"
35
# 128-bit UUID for the domain. The default behavior is to generate a new UUID
36
# on each call to 'xm create'.
37
#uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"
39
#-----------------------------------------------------------------------------
40
# The number of cpus guest platform has, default=1
43
# Enable/disable HVM guest PAE, default=1 (enabled)
46
# Enable/disable HVM guest ACPI, default=1 (enabled)
49
# Enable/disable HVM APIC mode, default=1 (enabled)
50
# Note that this option is ignored if vcpus > 1
53
# Enable/disable extended power management support within HVM guest, i.e., beyond
54
# S3, S4, S5 within guest like exposing battery meter.
55
# 0 (default option, extended power management support disabled)
56
# 1 (pass-through mode; uses pass-through as needed; efficient but limited in scope)
57
# 2 (non pass-through mode; extended scope, likely to work on all applicable environment
58
# but comparitively less efficient than pass-through mode)
59
# xen_extended_power_mgmt=0
61
# List of which CPUS this domain is allowed to use, default Xen picks
62
#cpus = "" # leave to Xen to pick
63
#cpus = "0" # all vcpus run on CPU0
64
#cpus = "0-3,5,^1" # all vcpus run on cpus 0,2,3,5
65
#cpus = ["2", "3"] # VCPU0 runs on CPU2, VCPU1 runs on CPU3
67
# Optionally define mac and/or bridge for the network interfaces.
68
# Random MACs are assigned if not given.
69
#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0, model=ne2k_pci' ]
70
# type=ioemu specify the NIC is an ioemu device not netfront
71
vif = [ 'type=ioemu, bridge=xenbr0' ]
73
#----------------------------------------------------------------------------
74
# Define the disk devices you want the domain to have access to, and
75
# what you want them accessible as.
76
# Each disk entry is of the form phy:UNAME,DEV,MODE
77
# where UNAME is the device, DEV is the device name the domain will see,
78
# and MODE is r for read-only, w for read-write.
80
#disk = [ 'phy:hda1,hda1,r' ]
81
disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]
83
#----------------------------------------------------------------------------
84
# Configure the behaviour when a domain exits. There are three 'reasons'
85
# for a domain to stop: poweroff, reboot, and crash. For each of these you
88
# "destroy", meaning that the domain is cleaned up as normal;
89
# "restart", meaning that a new domain is started in place of the old
91
# "preserve", meaning that no clean-up is done until the domain is
92
# manually destroyed (using xm destroy, for example); or
93
# "rename-restart", meaning that the old domain is not cleaned up, but is
94
# renamed and a new domain started in its place.
96
# In the event a domain stops due to a crash, you have the additional options:
98
# "coredump-destroy", meaning dump the crashed domain's core and then destroy;
99
# "coredump-restart', meaning dump the crashed domain's core and the restart.
103
# on_poweroff = 'destroy'
104
# on_reboot = 'restart'
105
# on_crash = 'restart'
107
# For backwards compatibility we also support the deprecated option restart
109
# restart = 'onreboot' means on_poweroff = 'destroy'
110
# on_reboot = 'restart'
111
# on_crash = 'destroy'
113
# restart = 'always' means on_poweroff = 'restart'
114
# on_reboot = 'restart'
115
# on_crash = 'restart'
117
# restart = 'never' means on_poweroff = 'destroy'
118
# on_reboot = 'destroy'
119
# on_crash = 'destroy'
121
#on_poweroff = 'destroy'
122
#on_reboot = 'restart'
123
#on_crash = 'restart'
125
#============================================================================
127
# Device Model to be used
128
device_model = 'qemu-dm'
130
#-----------------------------------------------------------------------------
131
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
132
# default: hard disk, cd-rom, floppy
135
#-----------------------------------------------------------------------------
136
# write to temporary files instead of disk image files
139
#----------------------------------------------------------------------------
140
# enable SDL library for graphics, default = 0
143
#----------------------------------------------------------------------------
144
# enable OpenGL for texture rendering inside the SDL window, default = 1
145
# valid only if sdl is enabled.
148
#----------------------------------------------------------------------------
149
# enable VNC library for graphics, default = 1
152
#----------------------------------------------------------------------------
153
# address that should be listened on for the VNC server if vnc is set.
154
# default is to use 'vnc-listen' setting from
155
# auxbin.xen_configdir() + /xend-config.sxp
156
#vnclisten="127.0.0.1"
158
#----------------------------------------------------------------------------
159
# set VNC display number, default = domid
162
#----------------------------------------------------------------------------
163
# try to find an unused port for the VNC server, default = 1
166
#----------------------------------------------------------------------------
167
# set password for domain's VNC console
168
# default is depents on vncpasswd in xend-config.sxp
171
#----------------------------------------------------------------------------
172
# no graphics, use serial port
175
#----------------------------------------------------------------------------
176
# enable stdvga, default = 0 (use cirrus logic device model)
179
#-----------------------------------------------------------------------------
180
# serial port re-direct to pty deivce, /dev/pts/n
181
# then xm console or minicom can connect
184
#----------------------------------------------------------------------------
185
# tsc_mode : TSC mode (0=default, 1=native TSC, 2=never emulate, 3=pvrdtscp)
186
# emulate TSC provides synced TSC for all vcpus, but lose perfomrance.
187
# native TSC leverages hardware's TSC(no perf loss), but vcpu's TSC may lose
188
# sync due to hardware's unreliable/unsynced TSC between CPUs.
189
# default intelligently uses native TSC on machines where it is safe, but
190
# switches to emulated if necessary after save/restore/migration
191
# pvrdtscp is for intelligent apps that use special Xen-only paravirtualized
192
# cpuid instructions to obtain offset/scaling/migration info and maximize
193
# performance within pools of machines that support the rdtscp instruction
196
#-----------------------------------------------------------------------------
197
# Qemu Monitor, default is disable
198
# Use ctrl-alt-2 to connect
202
#-----------------------------------------------------------------------------
203
# enable sound card support, [sb16|es1370|all|..,..], default none
207
#-----------------------------------------------------------------------------
208
# set the real time clock to local time [default=0 i.e. set to utc]
212
#-----------------------------------------------------------------------------
213
# set the real time clock offset in seconds [default=0 i.e. same as dom0]
216
#-----------------------------------------------------------------------------
217
# start in full screen
221
#-----------------------------------------------------------------------------
222
# Enable USB support (specific devices specified at runtime through the
226
# Enable USB mouse support (only enable one of the following, `mouse' for
227
# PS/2 protocol relative mouse, `tablet' for
232
#-----------------------------------------------------------------------------
233
# Set keyboard layout, default is en-us keyboard.
236
#-----------------------------------------------------------------------------
237
# Enable/disable xen platform PCI device, default=1 (enabled)
240
#-----------------------------------------------------------------------------
241
# Configure guest CPUID responses:
243
#cpuid=[ '1:ecx=xxxxxxxxxxx00xxxxxxxxxxxxxxxxxxx,
244
# eax=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ]
245
# - Unset the SSE4 features (CPUID.1[ECX][20-19])
246
# - Default behaviour for all other bits in ECX And EAX registers.
248
# Each successive character represent a lesser-significant bit:
249
# '1' -> force the corresponding bit to 1
251
# 'x' -> Get a safe value (pass through and mask with the default policy)
252
# 'k' -> pass through the host bit value
253
# 's' -> as 'k' but preserve across save/restore and migration
255
# Expose to the guest multi-core cpu instead of multiple processors
256
# Example for intel, expose a 8-core processor :
257
#cpuid=['1:edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx,
258
# ebx=xxxxxxxx00010000xxxxxxxxxxxxxxxx',
259
# '4,0:eax=001111xxxxxxxxxxxxxxxxxxxxxxxxxx']
260
# - CPUID.1[EDX][HT] : Enable HT
261
# - CPUID.1[EBX] : Number of vcpus * 2
262
# - CPUID.4,0[EAX] : Number of vcpus * 2 - 1
265
# Example for amd, expose a 5-core processor :
266
# cpuid = ['1:ebx=xxxxxxxx00001010xxxxxxxxxxxxxxxx,
267
# edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
268
# '0x80000001:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1x',
269
# '0x80000008:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxx001001']
270
# - CPUID.1[EBX] : Threads per Core * Cores per Socket (2 * #vcpus)
271
# - CPUID.1[EDX][HT] : Enable HT
272
# - CPUID.0x80000001[CmpLegacy] : Use legacy method
273
# - CPUID.0x80000008[ECX] : #vcpus * 2 - 1
276
# Downgrade the cpuid to make a better compatibility for migration :
277
# Look like a generic 686 :
278
# cpuid = [ '0:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
280
# ecx=xxxxxxxxxxx0000xx00xxx0000000xx0,
281
# edx=xxx00000xxxxxxx0xxxxxxxxx0xxxxxx',
282
# '4:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
283
# '0x80000000:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0']
284
# with the highest leaf
285
# - CPUID.0[EAX] : Set the highest leaf
286
# - CPUID.1[EAX] : 686
287
# - CPUID.1[ECX] : Mask some features
288
# - CPUID.1[EDX] : Mask some features
289
# - CPUID.4 : Reply like the highest leaf, in our case CPUID.3
290
# - CPUID.0x80000000 : No extension we are on a Pentium III, reply like the
291
# highest leaf (CPUID.3).
293
# Configure host CPUID consistency checks, which must be satisfied for this
294
# VM to be allowed to run on this host's processor type:
295
#cpuid_check=[ '1:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxx1xxxxx' ]
296
# - Host must have VMX feature flag set
298
# The format is similar to the above for 'cpuid':
299
# '1' -> the bit must be '1'
300
# '0' -> the bit must be '0'
301
# 'x' -> we don't care (do not check)
302
# 's' -> the bit must be the same as on the host that started this VM
304
#-----------------------------------------------------------------------------
305
# Configure passthrough PCI{,-X,e} devices:
307
# pci=[ '[SSSS:]BB:DD.F[,option1[,option2[...]]]', ... ]
309
# [SSSS]:BB:DD.F "bus segment:bus:device.function"(1) of the device to
310
# be assigned, bus segment is optional. All fields are
311
# in hexadecimal and no field should be longer than that
312
# as shown in the pattern. Successful assignment may need
313
# certain hardware support and additional configurations
314
# (e.g. VT-d, see docs/misc/vtd.txt for more details).
316
# (1) bus segment is sometimes also referred to as the PCI "domain",
317
# not to be confused with Xen domain.
320
# optionN per-device options in "key=val" format. Current
321
# available options are:
323
# per-device overriden of pci_msitranslate, see below
325
# per-device overriden of pci_power_mgmt, see below
327
#pci=[ '07:00.0', '07:00.1' ]
329
# MSI-INTx translation for MSI capable devices:
331
# If it's set, Xen will enable MSI for the device that supports it even
332
# if the guest don't use MSI. In the case, an IO-APIC type interrupt will
333
# be injected to the guest every time a corresponding MSI message is
335
# If the guest enables MSI or MSI-X, the translation is automatically
340
# PCI Power Management:
342
# If it's set, the guest OS will be able to program D0-D3hot states of the
343
# PCI device for the purpose of low power consumption.
347
# Enable graphics passthrough:
349
# If it's set, and specify grapchis device BDF in pci passthrough option,
350
# like pci=['xx:xx.x'], it enables graphics passthrough, default=0 (disabled)
353
#-----------------------------------------------------------------------------
354
# Configure PVSCSI devices:
356
#vscsi=[ 'PDEV, VDEV' ]
358
# PDEV gives physical SCSI device to be attached to specified guest
359
# domain by one of the following identifier format.
360
# - XX:XX:XX:XX (4-tuples with decimal notation which shows
361
# "host:channel:target:lun")
365
# - result of 'scsi_id -gu -s'.
366
# ex. # scsi_id -gu -s /block/sdb
367
# 36000b5d0006a0000006a0257004c0000
369
# VDEV gives virtual SCSI device by 4-tuples (XX:XX:XX:XX) as
370
# which the specified guest domain recognize.
373
#vscsi = [ '/dev/sdx, 0:0:0:0' ]