The xen core files record a magic number,
but when they are loaded it isn't checked.
This patch resolves this.
Signed-Off-By: Horms <horms@verge.net.au>
* xc_ptrace
- Merge xc_ptrace_core into xc_ptrace
- ATTACH now reads the data argument. If non-zero then
a corefile is being debuged. Otherwise a thread has
been attached to. This allows xc_waitdomain_core() or
xc_waitdomain() to be called as appropriate in
subsequent xc_ptrace() calls.
* xc_waitdomain
- Rename xc_waitdomain (xc_ptrace.c version) __xc_waitdomain
- Rename xc_waitdomain (xc_ptrace_core.c version) xc_waitdomain_core
- Create xc_waitdomain (in xc_ptrace.c), a wrapper for __xc_waitdomain
and xc_waitdomain_core.
Consolidation seemed difficult but ctxt needs to be
passed into xc_waitdomain_core or made global.
Alternatively, xc_waitdomain_core could be moved into xc_ptrace.c,
but this seems messy.
* map_domain_va
- Rename map_domain_va (xc_ptrace_core.c version) map_domain_va_core
- Have it accept ctxt, like xc_waitdomain_core
* myptrace and myxcwait (linux-xen-low.c)
Removed, call the now generic xc_ptrace() and xc_waitdomain() instead
When calling xc_ptrace ATTACH, if a corefile is in use, a fd will
be passed, otherwise a pid. The fd part is important, as this
is saved internally in xc_ptrace_core.c, and passed to xc_waitdomain_core()
as neccessary. Pereviously xc_waitdomain_core() received a pid and
thus could not open the corefile.
Signed-Off-By: Horms <horms@verge.net.au>
General Cleanups
* Use { after if consistently in xc_ptrace.c and xc_ptrace_core.c
(But not in xc_ptrace_core() which should be removed shortly)
* Remove duplicate code and centralise around xc_ptrace.h
* Avoid ifing values covered by case in xc_ptrace()
- PTRACE_GETREGS, PTRACE_GETFPREGS and PTRACE_GETFPXREGS are grouped into
a single case, and then with the exception of a call to FETCH_REGS(),
different code is executed based on ifing the values covered by the
case. The PTRACE_GETFPREGS and PTRACE_GETFPXREGS code is actually a
duplicate. This patch breaks the code out to two different cases.
Error Handling
* Eliminate FETCH_REGS macro as it forces several functions
to have an otherwise uneeded error_out label, mittigating
any code savins.
* Rework error handling in xc_ptrace().
- Remove FETCH_REGS as above
- Make sure that all dom0 errors are caught
- Make sure errno is always set on error
* Eliminate gotos in xc_ptrace_core.c that do nothing but return
Signed-Off-By: Horms <horms@verge.net.au>
turn detail off when doing vcpu-list. This avoids calls to xenstore just to
get the list of domains for the vcpu-list call, significantly increasing
performance of that command on loaded systems.
Closes bug #545.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
list of domains each time XendDomainInfo.refresh is called, and spawning
threads for each shutdown still in progress, we watch the control/shutdown
node and spawn just the one thread immediately. When the daemon starts (say
after a crash) all domains are checked for entries in the store indicating a
reboot in progress.
This avoids a large cost on the store and in threads when the list of domains
is refreshed. This happens every time the server is queried, so the cost can
be quite high. It's especially a high cost when using xm shutdown -a -w --
this operation should perform a lot better now.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
entries and for orphaned nodes in the database.
Added two flags, -R and -L, to disable the recovery code and the remove of
/local at start-up. This makes it much easier to analyse corrupted tdb files.
Added some missing talloc_free calls in the previous integrity checking code.
Removed the transaction handle from the trace_io message -- unfortunately,
the transaction is always null at this point, as it's not yet been looked up.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
does expose a bug in xenstored when it is killed & restarted, but that
is not caused by this code.
My sincere appology to Ke Yu for the long wait and assuming his code
was broken. His code was perfectly fine. Its just that my test scripts
did something for a historical reason that I should have removed a long
time ago.
Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
an incorrect path to a file-backed VBD (disk image) or the file-backed
VBD does not exist.
Without this patch, if someone mis-types the path to the disk image,
he/she would have no indication as to what's wrong when the domain
fails to get created.
Signed-off-by: Khoa Huynh <khoa@us.ibm.com>
no dmis exist
The first bug prevented the TPM tests from running successfully more
than once in a row.
Signed-off-by: Vinnie Scarlata <vincent.r.scarlata@intel.com>
- Fixed several overflows, off-by-one, and uninitialized variables.
- Added well-defined exit codes.
- Proper handling of system()'s return value.
- Errors parsing partition table cause it to stop now.
- etcetera...
Tested on 32 and 64 bit, with valgrind, with physical disks and disk
images.
Signed-off-by: Charles Coffing <ccoffing@novell.com>
corruption, rather than just spewing error messages and exiting.
Added a xenstore-control executable, which sends commands to xenstored.
Currently, the only command is 'check', which triggers an integrity check.
(The integrity check is also triggered whenever a corrupted store is detected).
Signed-off-by: Ewan Mellor <ewan@xensource.com>
and the hotplug scripts checking whether that domain is still alive. This
triggers the "xenstore-read: couldn't read path /local/domain/107/vm" message
in /var/log/xen-hotplug.log, followed by "Device XYZ is mounted in a guest
domain and so cannot be mounted now".
Closes bug #514.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
This issue can be reproduced on SMP platform, while the domain 0
is UP. The reason is, after finishing a dma request, the dma thread will
trigger the interrupt and then clear the call back function. When guest
get the interrupt , it will try to check the call back function, if it
is set, then it will trigger a dma request again. So if the checking for
the callbackfunction happens between trigger interrupt and clear
callback function on dma thread, it will cause NULL function calling.
After with domain 0 UP and smp platform, this situation can be
reproduced easily.
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Guest configuration files may now contain a features= declaration
listing the features which should be enabled in a | separated
list.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
script's lock before doing the cleanup, to avoid a race that causes the message
"xenstore-list: could not list path backend/vbd/40" in /var/log/hotplug.log,
with a subsequent refusal to create the domain, after a domain reboot.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
IP addressing scheme
used by xm-test: each machine running network tests is using the same IP
addresses, so two machines
in the same network can cross-pollinate/interfere with each other's tests.
This patch changes the IP addressing scheme to add some randomness. It's
gone through a couple of dozen
passes of xm-test, some on -bridge and some on -route, while xm-test was
running on another box on the same network.
Signed-off-by: Jim Dykman <dykman@us.ibm.com>
- introduces two basic tests for the virtual TPM (skipped on hardware
where a TPM is not available or vtpm manager has not been started
manually before)
- adapts the Makefiles to make the test cases available
- splits up the hotplug files into two files where the vtpm-common.sh
can be sourced by 'other' scripts as well
- uses echo "$var" to return variables from functions
- gets rid of the 'set +e" work-around
- introduces a script (vtpm-delete) to delete entries from the virtual
TPM directory in /etc/xen/vtpm.db
The xm-tests will skip over the 2nd test on most systems and the patch
has otherwise no effect on existing tests.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
- log() function from xen-hotplug-common.sh -> logging.sh
- locking-related functions from xen-hotplug-common.sh -> locking.sh
- xen-hotplug-common.sh 'sources' both those files now to not loose
these functions (which should make the break-out atomic)
- adapts the Makefile to install locking.sh and logging.sh at the right
place.
I ran the xm-tests over it and no (additional) errors appear due to this
change.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
if it can't figure out partitions and filesystems. This then makes it
balloon to absurd sizes. Make this only happen if you pass a debugging
flag
Signed-off-by: Jeremy Katz <katzj@redhat.com>