mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
Add PAE option to HVM config file.
This option is disabled by default, only if we have "pae=1" in config file, cpuid will return PAE available to VMX guest, and Linux PAE VMX guest need this. Once the PAE VMX guest support is stable, we will enable it by default. Signed-off-by: Xin Li <xin.b.li@intel.com> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
This commit is contained in:
1 parent
55ee36debf
commit
ac2f4cf2ca
11 files changed
+39
-17
No files matched your search
@@ -366,20 +366,21 @@ static PyObject *pyxc_hvm_build(XcObject *self,
|
||||
int control_evtchn, store_evtchn;
|
||||
int memsize;
|
||||
int vcpus = 1;
|
||||
int pae = 0;
|
||||
int acpi = 0;
|
||||
int apic = 0;
|
||||
unsigned long store_mfn = 0;
|
||||
|
||||
static char *kwd_list[] = { "dom", "control_evtchn", "store_evtchn",
|
||||
"memsize", "image", "vcpus", "acpi", "apic",
|
||||
"memsize", "image", "vcpus", "pae", "acpi", "apic",
|
||||
NULL };
|
||||
if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiisiii", kwd_list,
|
||||
if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiisiiii", kwd_list,
|
||||
&dom, &control_evtchn, &store_evtchn,
|
||||
&memsize, &image, &vcpus, &acpi, &apic) )
|
||||
&memsize, &image, &vcpus, &pae, &acpi, &apic) )
|
||||
return NULL;
|
||||
|
||||
if ( xc_hvm_build(self->xc_handle, dom, memsize, image, control_evtchn,
|
||||
vcpus, acpi, apic, store_evtchn, &store_mfn) != 0 )
|
||||
vcpus, pae, acpi, apic, store_evtchn, &store_mfn) != 0 )
|
||||
return PyErr_SetFromErrno(xc_error);
|
||||
|
||||
return Py_BuildValue("{s:i}", "store_mfn", store_mfn);
|
||||
|
||||
@@ -191,8 +191,8 @@ class HVMImageHandler(ImageHandler):
|
||||
ImageHandler.configure(self, imageConfig, deviceConfig)
|
||||
|
||||
info = xc.xeninfo()
|
||||
if not 'hvm' in info['xen_caps']:
|
||||
raise VmError("Not an HVM capable platform, we stop creating!")
|
||||
if not 'hvm' in info['xen_caps']:
|
||||
raise VmError("Not an HVM capable platform, we stop creating!")
|
||||
|
||||
self.dmargs = self.parseDeviceModelArgs(imageConfig, deviceConfig)
|
||||
self.device_model = sxp.child_value(imageConfig, 'device_model')
|
||||
@@ -210,6 +210,8 @@ class HVMImageHandler(ImageHandler):
|
||||
|
||||
self.dmargs += self.configVNC(imageConfig)
|
||||
|
||||
self.pae = int(sxp.child_value(imageConfig, 'pae', 0))
|
||||
|
||||
self.acpi = int(sxp.child_value(imageConfig, 'acpi', 0))
|
||||
self.apic = int(sxp.child_value(imageConfig, 'apic', 0))
|
||||
|
||||
@@ -227,6 +229,7 @@ class HVMImageHandler(ImageHandler):
|
||||
log.debug("store_evtchn = %d", store_evtchn)
|
||||
log.debug("memsize = %d", self.vm.getMemoryTarget() / 1024)
|
||||
log.debug("vcpus = %d", self.vm.getVCpuCount())
|
||||
log.debug("pae = %d", self.pae)
|
||||
log.debug("acpi = %d", self.acpi)
|
||||
log.debug("apic = %d", self.apic)
|
||||
|
||||
@@ -238,6 +241,7 @@ class HVMImageHandler(ImageHandler):
|
||||
store_evtchn = store_evtchn,
|
||||
memsize = self.vm.getMemoryTarget() / 1024,
|
||||
vcpus = self.vm.getVCpuCount(),
|
||||
pae = self.pae,
|
||||
acpi = self.acpi,
|
||||
apic = self.apic)
|
||||
|
||||
|
||||
@@ -161,6 +161,10 @@ gopts.var('cpus', val='CPUS',
|
||||
fn=set_int, default=None,
|
||||
use="CPUS to run the domain on.")
|
||||
|
||||
gopts.var('pae', val='PAE',
|
||||
fn=set_int, default=0,
|
||||
use="Disable or enable PAE of HVM domain.")
|
||||
|
||||
gopts.var('acpi', val='ACPI',
|
||||
fn=set_int, default=0,
|
||||
use="Disable or enable ACPI of HVM domain.")
|
||||
@@ -545,7 +549,7 @@ def configure_vifs(config_devs, vals):
|
||||
def configure_hvm(config_image, vals):
|
||||
"""Create the config for HVM devices.
|
||||
"""
|
||||
args = [ 'device_model', 'vcpus', 'cdrom', 'boot', 'fda', 'fdb',
|
||||
args = [ 'device_model', 'pae', 'vcpus', 'cdrom', 'boot', 'fda', 'fdb',
|
||||
'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'audio',
|
||||
'vnc', 'vncviewer', 'sdl', 'display', 'ne2000', 'acpi', 'apic',
|
||||
'xauthority' ]
|
||||
|
||||