expected. Xend actually creates two children and the XEND_DAEMONIZE
flag only prevents one of the children from being created. This
patch causes none of the children to be created. With this patch,
Xend functionality is performed in the process executed from the
command line (i.e., /usr/sbin/xend). This patch makes it possible to
debug Xend with pdb.
Signed-off-by: Randy Thelen <rthelen@netapp.com>
staying alive to watch the child. If the child crashes, then the parent
starts another one in its place. This provides robustness in the face of
crashes like one currently tracked as bug #411.
Tidy up chunks of SrvDaemon.py on the way past.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
* For setsid to effectively detach a process from the terminal,
the following needs to occur:
fork () Return control to the shell
setsid () New session with no controlling terminal
fork () The session leader (parent) exits and thus
the resulting child process can never regain the terminal
This patch adds the second fork
* The call to self.daemonize(), which now forks, is moved to
run before self.tracing(), as now that it actually disconnects
from the terminal, and thus the prevailing process, the trace
loses the processes created in self.run().
Signed-off-by: Ewan Mellor <ewan@xensource.com>
forking implied by the start method. This makes it easier to run valgrind
against Xend, or run it with a pydebug-compiled Python.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
It doesn't make sense to undo the network configuration when stopping
xend since that would cut off all VMs from the network. Undoing the
network setup should be an option independent of xend stop.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
This is Kurt Garloff's reworked network-bridge script:
* we got rid of ifconfig
* it works for netdev != eth0
* arp on and off are symmetric as are ifdown and ifup
* ifup will be passed the ifcfg config file name if needed
(the ifup may otherwise figure that the veth0 hardware is
NOT the same as the original ${netdev} and not use the same
config -- this happens on SUSE. Charles Coffing tracked this
one down.)
Plus Kurt's avoid-dash patch:
the network setup scripts on SUSE have trouble with the bridge
name xen-br0; they don't expect the '-'.
Arguably this should be fixed.
But I assume there's more scripts out there which may not like it,
so I suggest the following patch to rename xen-br0 to xenbr0.
Plus Charles Duffy's patch to support multiple bridges:
The attached patch allows the network-bridge script to be used to
generate multiple bridges corresponding to different physical
interfaces. It adds a new parameter, "vifnum", used to refer both to
the loopback interface to be used and to set defaults regarding the
physical interface and bridge name.
Thus, if one wishes to start xenbr0 on eth0 and xenbr1 on eth1, one
need only call:
network-bridge start ## vifnum is 0 by default
network-bridge start vifnum=1
...well, that and set loopback.nloopbacks=2 in the Dom0 kernel
parameters.
Plus renaming of virtnum to vifnum in Charles' patch, as requested by Ian Pratt.
Plus a fix to DevController to allocate vif IDs starting from 0 (i.e. vif2.0
is now domain 2's first vif, as opposed to vif2.1 in the recent past).
Plus tidying up inside network-bridge using some helper variables.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
and xenconsole out of /usr/libexec/xen and into one of /usr/lib/xen/bin or
/usr/lib64/xen/bin. Remove all the PATH hacking inside Xend, and rely upon
the PATH being set correctly from outside. Added an auxbin module for
handling the hacky stuff.
Replace the few /usr/bin/python bang paths with /usr/bin/env python.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
messages. This closes bug #281. Removed references to XendRoot where these
have become unnecessary either through the work above or just through time.
Renamed some parameters in event.py, to mark them as unused. Fix a call to a
base class constructor there too.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Directly modifying the sysfs entries causes the xenstore state of
a cpu's availability to be incorrect. Also slightly modify the
dom0-cpus description in the xend-config. Rather than specifying which
dom0 vcpus are to be used, it is now a target of how many vcpus to use
as pinvcpu ops are the preferred method for setting which physical cpu a
vcpu uses.
Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
three patches to fix a problem with Xend starting consoled. consoled
depends on xenstored to be running and xenstored is started on demand in
Xend. The patches change xenstored to manage its own pidfile, and have
xend start actually start up xenstored.
- Enforce the number of CPUs dom0 will take. See the new variable
"dom0-cpus" in xend-config.sxp (you will want to set this variable to
1 on SMP systems)
- Balloon out dom0 memory when creating domU, if there is not enough
free memory. The lowest level we will balloon out is configured via
the new variable "dom0-min-mem" in xend-config.sxp
I still have a doubt: where to put the code to enforce dom0-cpus. At
the moment I put it into
python/xen/xend/server/SrvDaemon.py, and hopefully that is resonable
enough. Any comment?
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
SrvDaemon.py:
Disable kill of xenstored on xend exit.
xu.c:
Set error reason in failure case.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
xend cleanups from Mike Wray.
XendDomain.py:
Add comment for domain_mem_target_set.
SrvDaemon.py:
Use XEND_DAEMONIZE, XEND_DEBUG and XEND_DEBUGLOG.
XendRoot.py:
Use XEND_DEBUG.
netif.py:
Unknown domains are called "Domain-%d" % dom.
params.py:
Add additional parameters and set some parameters from
environment variables.
blkif.py, XendDomain.py:
Cleanup whitespace.
XendRoot.py:
enable_dump default is 'no'.
enable_dump is a bool.
Add 'true' and 'false' to get_config_bool.
XendDomainInfo.py:
Add DOMAIN_CRASH shutdown code.
XendDomain.py:
Simplify.
Add domain_dumpcore.
Move class XendDomainDict outside of class XendDomain.
Import shutdown_reason from XendDomainInfo.
Update comment for xen_domain.
PrettyPrint.py:
Cleanup prettyprintstring.
SrvDir.py:
Cleanup render_GET.
xc.c:
Various cleanups.
Signed-off-by: Mike Wray <mike.wray@hp.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Many files:
g/c _readline{,s} and use regular readline{,s} functions -- the special
_readline{,s} functions were only needed because of Twisted.
ip.py:
Also use readlines() instead of xreadlines().
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Remove twisted from save/migrate handling.
This needs to use threads, so add thread support for
http server requests.
Signed-off-by: Mike Wray <mike.wray@hp.com>
Remove twisted from the HTTP server and replace with a
threaded server. Add classes to provide tcp and unix servers
using threads instead of twisted. Remove use of twisted from
the consoles, event server and HTTP resources
Signed-off-by: Mike Wray <mike.wray@hp.com>
Refactor domain construction and device controllers to
remove use of twisted. Use threads to dispatch channel
input. Move device controllers into domains.
Signed-off-by: Mike Wray <mike.wray@hp.com>