structure because the first field is 32 bits and the next is 64 bits,
whereas x86-32 doesn't pad. The quick fix is to read the cpu id
separately as a 32bit value, then read the rest of the trace record.
Here is a little patch that does that. Tested on x86/32 SMP and x86/64.
Signed-off-by: Rob Gardner <rob.gardner@hp.com>
seriously harm Xen's health. Better to just disable it in the
tools until the outstanding issues are resolved.
Signed-off-by: Keir Fraser <keir@xensource.com>
This is the first change to the ramdisk since v0.1.0. So, we now build
the image as initrd-X.Y.img, and link initrd.img to it. This lets us
have a few checks to make sure that people rebuild their ramdisks when
necessary.
uses of goto that reduce down to return NULL in any case, breaking the common
code out for returning values based upon the success or failure of an
operation, and the common code that parses transaction and path parameters,
used by xspy_read, xspy_ls, and xspy_mkdir. Break out also the common code
that removes a watch token from the XsHandle watches list.
Use bool rather than int for result values, where this matches the same use
by tools/xenstore/xs.c.
Added missing free in xspy_get_permissions.
Use PySequence_SetItem inside xs_watch, rather than Py_INCREF followed by
PyList_SetItem. If there is no None entry in the watches list, the code goes
on to append to the list using PyList_Append, and that call takes its own
reference rather than stealing one like PyList_SetItem. This means that we
were previously leaking a reference if the list was full and so PyList_Append
was necessary.
Use PySequence_SetItem rather than Py_INCREF/PyList_SetItem also where we are
using assigning Py_None into the list, for neatness.
Remove meaningless pipe from xspy_release_domain's arg_spec.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
buffer that has grown beyond max_capacity. This fixes a Xenconsoled segfault
that was caused by stomping around above the buffer's allocated region. It
became possible to set the max_capacity with changeset 7431, and ever
since then we have been exposed to this bug. It would most easily be triggered
by running a domain without a client attached to the console, so that the
max_capacity was reached more easily.
Closes bug #380.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
We need to attach a console before rebooting to make sure the domain did
actually boot in the first place. Also, use a better method for pulling out
the uptime string.
internal state if the store is configured by an external tool.
We react properly to changes in name and on_{reboot,poweroff,crash}. Reacting
correctly to vcpus, vcpu_avail, memory, and maxmem will come soon (those code
aspects are already under review). cpu_weight and bootloader to be considered.
Removed unused and semantically invalid method XendDomainInfo.setDomid.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Even though we are checking for a working iptables installation, it is still
possible that the user does not have the PHYSDEV matcher installed, so just
issue a diagnostic instead.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
correctly. Many checks were looking using output.find("Error") > 1, which is
incorrect, as we do not guarantee that the word "Error" will be first in the
output (never mind the fact that strings are indexed from 0).
All these checks have been changed to compare against -1. In particular, this
should fix the failure of create_noparm_neg and create_badparm_neg on a machine
with the /etc/xen/xmdefconfig file in place, as xm create issues the
Using config file "/etc/xen/xmdefconfig" diagnostic before reporting the error.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Upon further investigation it sets Device parameters that don't exist any
longer, thus causing exceptions. As it looks like this is completely
obsolete, and no one is actively working on it, we should just rip it out to
end the confusion.
Signed-off-by: Sean Dague <sean@dague.net>
continue to receive watches. This means that it is not necessary to probe
around in the xswatch internals to unregister a watch.
Tidy up the hotplug watch handling, moving the nested function out to a
separate place (I don't think that this was a problem in the end, but it was
making me nervous as I was debugging the recent race condition, and I find it
clearer out of the class in any case. Pass an integer code representing
hotplug status, once it has been parsed from the store, as there are now a few
different places we can detect failure, and it's cleaner to pass a code from
those places.
Small tidy up to XendDomain, removing the unused releaseDomain field.
when given a non-convertible value, as claimed by the comment, as the exception
ValueError is thrown in that situation. TypeError is only thrown on int(None),
which cannot actually take place in this code, because of the explicit check
for None.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
config files (e.g. dom0) don't set info['vcpus'] correctly resulting in
incorrect cpu availablity values in the store. This prevents hotplug
from functioning.
Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
1. xm vcpu-list now shows info for all vcpus by using
info['max_vcpu_id']+1 as end of the range to query
vcpu_info.
2. Add new vcpu fields, online_vcpus, max_vcpu_id to
XendDomainInfo.sxpr()
3. Remove filter_cpump() which isn't needed now that
the per vcpu cpumap field is correct.
4. Update xm/main.py to use online_vcpus as the number
vcpus to display in list.
Signed-off-by: Ryan Harper <ryanh@us.ibm.com>