From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dor Laor Subject: [PATCH] Don't quit IO thread before all lvcpus stopped Date: Thu, 24 Apr 2008 01:33:20 +0300 Message-ID: <1208990000.3374.20.camel@localhost.localdomain> Reply-To: dor.laor@qumranet.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-cL79uPJI4ckVVSeA3G+Z" To: Avi Kivity , kvm-devel Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces@lists.sourceforge.net Errors-To: kvm-devel-bounces@lists.sourceforge.net List-Id: kvm.vger.kernel.org --=-cL79uPJI4ckVVSeA3G+Z Content-Type: text/plain Content-Transfer-Encoding: 7bit while investigating the revert of "fix sci irq set when acpi timer" I discovered the reason. Please also re-revert the original patch. Thanks, Dor ------------- [PATCH] Don't quit IO thread before all lvcpus stopped Call pause_all_threads() before exiting the i/o thread main loop. This scenario happened on system_powerdown request: The vcpu eventually makes pm_ioport_writew (soft power off) access that calls qemu_system_shutdown_request. It causes the i/o thread to exit although the vcpu did not exit yet. One of the symptoms is that vcpu may trigger timers thus causing a segfault since the i/o thread stopped the timer. [This is what happened on the sci irq timer, now there is no need to revert it[ Signed-off-by: Dor Laor --- qemu/qemu-kvm.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c index 50589a7..78127de 100644 --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -452,7 +452,9 @@ int kvm_main_loop(void) pthread_mutex_unlock(&qemu_mutex); } + pause_all_threads(); pthread_mutex_unlock(&qemu_mutex); + return 0; } -- 1.5.4.1 --=-cL79uPJI4ckVVSeA3G+Z Content-Disposition: attachment; filename=0001-Don-t-quit-IO-thread-before-all-vcpus-stopped.patch Content-Type: application/mbox; name=0001-Don-t-quit-IO-thread-before-all-vcpus-stopped.patch Content-Transfer-Encoding: 7bit >>From d74366f603f5b16077af93523e6ba072eb7d7aa1 Mon Sep 17 00:00:00 2001 From: Dor Laor Date: Thu, 24 Apr 2008 00:51:19 +0300 Subject: [PATCH] Don't quit IO thread before all vcpus stopped. Call pause_all_threads() before exiting the i/o thread main loop. This scenario happened on system_powerdown request: The vcpu eventually makes pm_ioport_writew (soft power off) access that calls qemu_system_shutdown_request. It causes the i/o thread to exit although the vcpu did not exit yet. One of the symptoms is that vcpu may trigger timers thus causing a segfault since the i/o thread stopped the timer. [This is what happened on the sci irq timer, now there is no need to revert it[ Signed-off-by: Dor Laor --- qemu/qemu-kvm.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c index 50589a7..78127de 100644 --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -452,7 +452,9 @@ int kvm_main_loop(void) pthread_mutex_unlock(&qemu_mutex); } + pause_all_threads(); pthread_mutex_unlock(&qemu_mutex); + return 0; } -- 1.5.4.1 --=-cL79uPJI4ckVVSeA3G+Z Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone --=-cL79uPJI4ckVVSeA3G+Z Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel --=-cL79uPJI4ckVVSeA3G+Z--