mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
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>
This commit is contained in:
1 parent
4419593858
commit
fa5078d407
3 files changed
+22
-2
No files matched your search
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||