Stefano Stabellini
2009-Jan-29 16:26 UTC
[Xen-devel] [PATCH] 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>
diff -r 40d9d9ff435a stubdom/stubdom-dm
--- a/stubdom/stubdom-dm Thu Jan 15 12:54:31 2009 +0000
+++ b/stubdom/stubdom-dm Thu Jan 29 15:36:02 2009 +0000
@@ -15,6 +15,7 @@
vncviewer=0
vncpid extra+videoram=4
while [ "$#" -gt 0 ];
do
if [ "$#" -ge 2 ];
@@ -38,6 +39,10 @@
extra="$extra -loadvm $2";
shift
;;
+ -videoram)
+ videoram="$2"
+ shift
+ ;;
esac
fi
case "$1" in
@@ -72,7 +77,7 @@
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 -r 40d9d9ff435a tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py Thu Jan 15 12:54:31 2009 +0000
+++ b/tools/python/xen/xend/image.py Thu Jan 29 15:36:02 2009 +0000
@@ -633,6 +633,8 @@
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()
@@ -663,6 +665,17 @@
features = self.vm.getFeatures(),
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)
diff -r 40d9d9ff435a tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py Thu Jan 15 12:54:31 2009 +0000
+++ b/tools/python/xen/xm/create.py Thu Jan 29 15:36:02 2009 +0000
@@ -635,6 +635,8 @@
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 @@
"""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'',
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel