Skip to contentSkip to conversation

stubdom: support save/restore

PATCH New Samuel Thibault 1 participant 1 message Mar 11, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 stubdom: support save/restore

stubdom: support save/restore
by passing the -loadvm parameter, letting the stubdomain access the save area, and having it watch the correct xenstore node.

stubdom/stubdom-dm +15 -3
diff -r 86e64b684fb2 stubdom/stubdom-dm
@@ -14,18 +14,30 @@ domname=
 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" &
stubdom/README +2 -0
diff -r 9ac1d76dcbdd 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
tools/ioemu/xenstore.c +2 -2
diff -r 9ac1d76dcbdd 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 do
         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;