aboutsummaryrefslogtreecommitdiffstats
path: root/tools/flask/libflask
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-11-23 07:01:51 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-11-23 07:01:51 +0000
commit2a9c410269bb1907fd1549a992e4c631f8efbad0 (patch)
treed7cfe02baa1dd3d10e9c851021f48ce87d5be95f /tools/flask/libflask
parentaf7af769b97af63b70e38b607dc389d1b689e8bc (diff)
downloadxen-2a9c410269bb1907fd1549a992e4c631f8efbad0.tar.gz
xen-2a9c410269bb1907fd1549a992e4c631f8efbad0.tar.bz2
xen-2a9c410269bb1907fd1549a992e4c631f8efbad0.zip
libxenlight: check for early failures of qemu-dm
This patch makes xl create check whether qemu-dm has started correctly, and causes it to fail immediately with appropriate errors if not. There are other bugfixes too. More specifically: * libxl_create_device_model forks twice rather than once so that the process which calls libxl does not end up being the actual parent of qemu. That avoids the need for the qemu-dm process to be reaped at some indefinite time in the future. * The first fork generates an intermediate process which is responsible for writing the qemu-dm pid to xenstore and then merely waits to collect and report on qemu-dm's exit status during startup. New arguments to libxl_create_device_model allow the preservation of its pid so that a later call can check whether the startup is successful. * The core of this functionality (the double fork, waitpid, signal handling and so forth) is abstracted away into a new facility libxl_spawn_... in libxl_exec.c. Consequential changes: * libxl_wait_for_device_model now takes a callback function parameter which is called repeatedly in the loop iteration and allows the caller to abort the wait. * libxl_exec no longer calls fork; there is a new libxl_fork. * There is a hook to override waitpid, which will be necessary for some callers. Remaining problems and other issues I noticed or we found: * The error handling is rather inconsistent still and lacking in places. * destroy_device_model can kill random dom0 processes (!) Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Diffstat (limited to 'tools/flask/libflask')
0 files changed, 0 insertions, 0 deletions