diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-01-29 16:41:48 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-01-29 16:41:48 +0000 |
commit | fa5078d4071a21e0e87d6d9418d950ea624d4ea8 (patch) | |
tree | f91a787937165fb1d8f90974d16999ff04616644 | |
parent | 441959385830ac73376a0502b036fa1de4e660fd (diff) | |
download | xen-fa5078d4071a21e0e87d6d9418d950ea624d4ea8.tar.gz xen-fa5078d4071a21e0e87d6d9418d950ea624d4ea8.tar.bz2 xen-fa5078d4071a21e0e87d6d9418d950ea624d4ea8.zip |
stubdom: add videoram to stubdom initial memory reservation
This patch adds a videoram parameter (4MB is the default) to pv guests
too: if the pv guest is actually a stubdomain then the videoram size
is added to the initial required available memory.
This way there is no risk that a stubdom fails to populate the
videoram because the RAM freed for the videoram by dom0 has already
been used to create the stubdom.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-rw-r--r-- | stubdom/stubdom-dm | 7 | ||||
-rw-r--r-- | tools/python/xen/xend/image.py | 13 | ||||
-rw-r--r-- | tools/python/xen/xm/create.py | 4 |
3 files changed, 22 insertions, 2 deletions
diff --git a/stubdom/stubdom-dm b/stubdom/stubdom-dm index a800bc4746..f471e82b36 100644 --- a/stubdom/stubdom-dm +++ b/stubdom/stubdom-dm @@ -15,6 +15,7 @@ domname= vncviewer=0 vncpid= extra= +videoram=4 while [ "$#" -gt 0 ]; do if [ "$#" -ge 2 ]; @@ -38,6 +39,10 @@ do extra="$extra -loadvm $2"; shift ;; + -videoram) + videoram="$2" + shift + ;; esac fi case "$1" in @@ -72,7 +77,7 @@ do sleep 1 done -creation="xm create -c $domname-dm target=$domid memory=32 extra=\"$extra\"" +creation="xm create -c $domname-dm target=$domid memory=32 videoram=$videoram extra=\"$extra\"" (while true ; do sleep 60 ; done) | /bin/sh -c "$creation" & #xterm -geometry +0+0 -e /bin/sh -c "$creation ; echo ; echo press ENTER to shut down ; read" & diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 7e0f10462f..267d31aaa4 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -633,6 +633,8 @@ class LinuxImageHandler(ImageHandler): def configure(self, vmConfig): ImageHandler.configure(self, vmConfig) + self.vramsize = int(vmConfig['platform'].get('videoram',4)) * 1024 + self.is_stubdom = (self.kernel.find('stubdom') >= 0) def buildDomain(self): store_evtchn = self.vm.getStorePort() @@ -664,6 +666,17 @@ class LinuxImageHandler(ImageHandler): flags = self.flags, vhpt = self.vhpt) + def getRequiredAvailableMemory(self, mem_kb): + if self.is_stubdom : + mem_kb += self.vramsize + return mem_kb + + def getRequiredInitialReservation(self): + return self.vm.getMemoryTarget() + + def getRequiredMaximumReservation(self): + return self.vm.getMemoryMaximum() + def parseDeviceModelArgs(self, vmConfig): ret = ImageHandler.parseDeviceModelArgs(self, vmConfig) # Equivalent to old xenconsoled behaviour. Should make diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index 33d9384de7..31d3623749 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -635,6 +635,8 @@ def configure_image(vals): if vals.root: cmdline_root = strip('root=', vals.root) config_image.append(['root', cmdline_root]) + if vals.videoram: + config_image.append(['videoram', vals.videoram]) if vals.extra: config_image.append(['args', vals.extra]) @@ -884,7 +886,7 @@ def configure_hvm(config_image, vals): """Create the config for HVM devices. """ args = [ 'device_model', 'pae', 'vcpus', 'boot', 'fda', 'fdb', 'timer_mode', - 'localtime', 'serial', 'stdvga', 'videoram', 'isa', 'nographic', 'soundhw', + 'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'soundhw', 'vnc', 'vncdisplay', 'vncunused', 'vncconsole', 'vnclisten', 'sdl', 'display', 'xauthority', 'rtc_timeoffset', 'monitor', 'acpi', 'apic', 'usb', 'usbdevice', 'keymap', 'pci', 'hpet', |