needed any of the state of image.py was the bootloader code, which says there,
but all the rest was doing something that belonged more properly in
XendDomainInfo, with all the other generic domain initialisation code.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
This is one of the first things to be used when xenstored starts up, so a
corrupted filesystem may manifest itself here.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Fix the use of configuration inside domain_configure. The config written by
XendDomainInfo.sxpr has moved, and this function needs to change to match.
Re-add a call to _add_domain inside domain_restore.
Inside XendDomainInfo.restore, perform the appropriate configuration to restore
the domain.
Validate maxmem_KiB, and cap it at memory_KiB if over that value. Save
requires that value to be correct, as the logic for saving only the pages
in use is not in place inside Xen.
Output the device configuration in sxpr(), as required for save-restore.
Check for image being null when trying to call createDeviceModel -- configure
is called on restore as well as create, and the ImageHandler instance is not
present in the former.
Remove dead code create_blkif.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
destroy Dom0. Currently, xm does not return an error for this case.
Xend tries to destroy dom0 and leaves the system in an unstable
state. Subsequent attempts to create a domain result in the following
error message:
Error: Error creating domain: (106, 'Transport endpoint is already \
connected')
This will fix bugzilla bug #243
Signed-off-by: Dan Smith <danms@us.ibm.com>
6984, this patch fixes it.
Also print vmx builder parameters before calling vmx builer, just like
what's done before calling linux builder.
With this patch, qemu dm using SDL can work, however qemu dm using VNC
still has bug, we will fix it soon.
Signed-off-by: Xin Li <xin.b.li@intel.com>
x86-64. When compiling you would get the following error since on x86-64
it was passing a long , when you are expecting an int.
Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
XendDomainInfo out from the rest of the code, creating an intermediate
dictionary of common format. This means that the rest of XendDomainInfo can
work whether creating a domain for the first time, or whether xend is
restarted but the domains still exist. This means that xend is now robust in
the face of restarts. The phase of validation of configuration details is
now more explicit, and stronger too.
Change the handling of memory sizes in XendDomainInfo's interface to use KiB
in setMemoryTarget and getMemoryTarget. This gives reasonable granularity
whilst ensuring that we can handle values up to 2TiB without overflowing a
signed 32 bit value. It is not clear that the xend code, especially the C /
Python interface, is either 64-bit clean or unsigned 32-bit clean, so this is
the safest choice for now. The behaviour of Python's shift operator will
change in Python 2.4, so it is best to address this problem once we have moved
to that version.
Determine the backend flags on-the-fly, in getBackendFlags, rather than
computing them in advance in configureBackends and storing the value. Change
addControllerClass so that backend flag information is in this table too,
rather than hard-coded elsewhere.
Improve the error reporting for name clashes.
Remove XendDomainInfo's dependence upon DBMap, and use xstransact directly
instead. This changes the interface from XendDomain to XendDomainInfo, as
paths rather than DBMaps are passed in.
Remove the XendDomainInfo.recreate and restore flags. Since the device and
domain handling is now stateless inside xend, much less work is necessary for
recreate and restore procedures, so we can do without these flags.
Remove XendDomainInfo's unused dependency upon SrvDaemon, and its unnecessary
dependence upon PrettyPrint. Remove the unused show method.
Decouple image.py from XendDomainInfo.bootloader by passing a bootloading flag
into initDomain instead. Decouple it from XendDomainInfo.config by passing
the semiparsed device configuration into create(). Move configuration in
VmxImageHandler so that rather than being scattered around the class it is in
or called from the configure method. Device configuration is no longer
available anywhere else.
From Dan Smith <danms@us.ibm.com>:
I could not find in the existing code the point at which
a domain was added to the XendDomain list after restore. Several
attempts to restore would result in positive log messages, but the
restored domain would not show up in "xm list". This patch includes a
call to _add_domain(), which results in restore working for me.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
_read and _write. Fix gather to not return the string 'None' when reading a
value of type string that does not exist. The value None should be returned
instead.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
parameters between functions in the base classes and those that override them
in subclasses. It's hard to see how this code worked at all.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
previously. This would have caused a memory leak when attempting to get info
on a domain that does not exist.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
underlying xc_domain_setmaxmem already took an unsigned int, and
PyArg_ParseTupleAndKeywords call was only parsing an int, so there is no way
that longer values would get through here in any case. Fixing the documentation
and the local variable is the best solution, until someone decides that we need
to support maxmem values greater than 2TiB.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
The VTPM manager and VTPMs fully support both 32 and 64 bit OSes. The
tpm_emulator (provided for debugging on TPM-less machines) does not
support 64-bit kernels by default though. See the README for details on
how to use it on 64-bit kernels.
(Vinnie Scarlata, Intel Corporation)
Signed-off-by: Joe Cihula <joe.cihula@intel.com>
The number of local apic entries is decided by the #vcpus passed
from the config file (eg./etc/xen/xmexample.vmx).
This feature is required by the SMP VMX domain.
Signed-off-by: Ke Yu <ke.yu@intel.com>
Signed-off-by: Xin Li <xin.b.li@intel.com>
Signed-off-by: Asit Mallick <asit.k.mallick@intel.com>
It matches the model of programming used to avoid races with watches,
and also makes re-establishing watches on daemon restart easier.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
xs_write with O_CREAT|O_EXCL causes problems over daemon restarts, since
it's not idempotent.
It turns out noone really needs the flags word at all, so get rid of it.
It's now as if everyone specified "O_CREAT".
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
When modifying libxenstore to transparently restart when the daemon dies,
it became apparent that life is simpler when all commands can simply be
restarted. So this patch makes a slight semantic change to xs_rm and xs_mkdir:
xs_rm now succeeds if the file doesn't exist (as long as the parent exists),
and xs_mkdir succeeds if the directory already exists.
Noone should notice.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Also don't add XendDomainInfo object to XendDomain dictionary from
XendDomainInfo object but do it in XendDomain.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>