diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-03-18 11:27:36 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-03-18 11:27:36 +0000 |
commit | caa44aa73f8b0020883911b9947d3ca031d225c1 (patch) | |
tree | 68df6994cff10750fb44451e624ca47f4634c5ea | |
parent | 37a1d36134c14c297416204b6cc13888483e2eea (diff) | |
download | xen-caa44aa73f8b0020883911b9947d3ca031d225c1.tar.gz xen-caa44aa73f8b0020883911b9947d3ca031d225c1.tar.bz2 xen-caa44aa73f8b0020883911b9947d3ca031d225c1.zip |
stubdom: support save/restore by passing the -loadvm parameter,
letting the stubdomain access the save area, and having it watch the
correct xenstore node.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
-rw-r--r-- | stubdom/README | 2 | ||||
-rw-r--r-- | stubdom/stubdom-dm | 18 | ||||
-rw-r--r-- | tools/ioemu/xenstore.c | 4 |
3 files changed, 19 insertions, 5 deletions
diff --git a/stubdom/README b/stubdom/README index d4e1664b4f..ee4ec700d8 100644 --- a/stubdom/README +++ b/stubdom/README @@ -78,6 +78,8 @@ To run mkdir -p /exports/usr/share/qemu ln -s /usr/share/qemu/keymaps /exports/usr/share/qemu +mkdir -p /exports/var/lib +ln -s /var/lib/xen /exports/var/lib /usr/sbin/fs-backend & xm create hvmconfig diff --git a/stubdom/stubdom-dm b/stubdom/stubdom-dm index 256501bf0b..03fbd3ba0d 100644 --- a/stubdom/stubdom-dm +++ b/stubdom/stubdom-dm @@ -14,18 +14,30 @@ domid= domname= vncviewer=0 vncpid= +extra= while [ "$#" -gt 0 ]; do if [ "$#" -ge 2 ]; then case "$1" in - -d) domid=$2; shift ;; - -domain-name) domname=$2; shift ;; + -d) + domid=$2; + extra="$extra -d $domid"; + shift + ;; + -domain-name) + domname=$2; + shift + ;; -vnc) ip=${2%:*}; vnc_port=${2#*:}; shift ;; + -loadvm) + extra="$extra -loadvm $2"; + shift + ;; esac fi case "$1" in @@ -60,7 +72,7 @@ do sleep 1 done -creation="xm create -c stubdom-$domname target=$domid memory=32" +creation="xm create -c stubdom-$domname target=$domid memory=32 extra=\"$extra\"" (while true ; do sleep 60 ; done) | $creation & #xterm -geometry +0+0 -e /bin/sh -c "$creation ; echo ; echo press ENTER to shut down ; read" & diff --git a/tools/ioemu/xenstore.c b/tools/ioemu/xenstore.c index e1c253221b..8ff396b09f 100644 --- a/tools/ioemu/xenstore.c +++ b/tools/ioemu/xenstore.c @@ -81,7 +81,7 @@ static void waitForDevice(char *fn) #define DIRECT_PCI_STR_LEN 160 char direct_pci_str[DIRECT_PCI_STR_LEN]; -void xenstore_parse_domain_config(int domid) +void xenstore_parse_domain_config(int hvm_domid) { char **e = NULL; char *buf = NULL, *path; @@ -100,7 +100,7 @@ void xenstore_parse_domain_config(int domid) return; } - path = xs_get_domain_path(xsh, domid); + path = xs_get_domain_path(xsh, hvm_domid); if (path == NULL) { fprintf(logfile, "xs_get_domain_path() error\n"); goto out; |