[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Revert 16963:d29d74d4eeac and 16750:2ac0fd9fd4b4.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1202029761 0
# Node ID 39ddd51318e9faa7517b8d3d2a385a19f4d357f7
# Parent  a47ac24951379f066483484eb39623e3e270076e
Revert 16963:d29d74d4eeac and 16750:2ac0fd9fd4b4.
Continue to SIGKILL qemu-dm so that 'xm destroy' should always work
rather than hang if qemu-dm is in a bad state.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 tools/ioemu/target-i386-dm/helper2.c |   31 ++++---------------------------
 tools/python/xen/xend/image.py       |    2 +-
 2 files changed, 5 insertions(+), 28 deletions(-)

diff -r a47ac2495137 -r 39ddd51318e9 tools/ioemu/target-i386-dm/helper2.c
--- a/tools/ioemu/target-i386-dm/helper2.c      Sat Feb 02 13:40:43 2008 +0000
+++ b/tools/ioemu/target-i386-dm/helper2.c      Sun Feb 03 09:09:21 2008 +0000
@@ -637,7 +637,6 @@ int main_loop(void)
     int evtchn_fd = xce_handle == -1 ? -1 : xc_evtchn_fd(xce_handle);
     char *qemu_file;
     fd_set fds;
-    int ret = 0;
 
     buffered_io_timer = qemu_new_timer(rt_clock, handle_buffered_io,
                                       cpu_single_env);
@@ -648,14 +647,9 @@ int main_loop(void)
 
     xenstore_record_dm_state("running");
     while (1) {
-        while (!((vm_running && suspend_requested) || shutdown_requested))
+        while (!(vm_running && suspend_requested))
             /* Wait up to 10 msec. */
             main_loop_wait(10);
-
-        if (shutdown_requested) {
-            ret = EXCP_INTERRUPT;
-            break;
-        }
 
         fprintf(logfile, "device model saving state\n");
 
@@ -672,34 +666,17 @@ int main_loop(void)
         xenstore_record_dm_state("paused");
 
         /* Wait to be allowed to continue */
-        while (suspend_requested && !shutdown_requested) {
-            /*
-             * Poll for shutdown via SDL every 10ms.
-             * This is needed because SDL steals SIGTERM and only lets us
-             * know about it after gui_update().
-             */
-            struct timeval tv;
-            tv.tv_sec  = 0;
-            tv.tv_usec = 10000;
-
+        while (suspend_requested) {
             FD_ZERO(&fds);
             FD_SET(xenstore_fd(), &fds);
-            if (select(xenstore_fd() + 1, &fds, NULL, NULL, &tv) > 0)
+            if (select(xenstore_fd() + 1, &fds, NULL, NULL, NULL) > 0)
                 xenstore_process_event(NULL);
-
-            /* Refresh SDL state and pick up any pending shutdown request. */
-            gui_update();
-        }
-
-        if (shutdown_requested) {
-            ret = EXCP_INTERRUPT;
-            break;
         }
 
         xenstore_record_dm_state("running");
     }
 
-    return ret;
+    return 0;
 }
 
 void destroy_hvm_domain(void)
diff -r a47ac2495137 -r 39ddd51318e9 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Sat Feb 02 13:40:43 2008 +0000
+++ b/tools/python/xen/xend/image.py    Sun Feb 03 09:09:21 2008 +0000
@@ -329,7 +329,7 @@ class ImageHandler:
             return
         if self.pid:
             try:
-                os.kill(self.pid, signal.SIGTERM)
+                os.kill(self.pid, signal.SIGKILL)
             except OSError, exn:
                 log.exception(exn)
             try:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.