From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH] Allow to call vm_stop from vcpu thread Date: Thu, 15 Jan 2009 15:19:36 +0100 Message-ID: <496F45F8.5050901@siemens.com> References: <20090115132327.GB11299@redhat.com> <496F3D95.2040901@siemens.com> <20090115134735.GC11299@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Gleb Natapov Return-path: Received: from lizzard.sbs.de ([194.138.37.39]:19106 "EHLO lizzard.sbs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755587AbZAOOTm (ORCPT ); Thu, 15 Jan 2009 09:19:42 -0500 In-Reply-To: <20090115134735.GC11299@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Gleb Natapov wrote: > On Thu, Jan 15, 2009 at 02:43:49PM +0100, Jan Kiszka wrote: >> Gleb Natapov wrote: >>> Signed-off-by: Gleb Natapov >>> diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c >>> index e4fba78..484a232 100644 >>> --- a/qemu/qemu-kvm.c >>> +++ b/qemu/qemu-kvm.c >>> @@ -296,11 +296,15 @@ static void pause_all_threads(void) >>> { >>> CPUState *penv = first_cpu; >>> >>> - assert(!cpu_single_env); >>> - >>> while (penv) { >>> - penv->kvm_cpu_state.stop = 1; >>> - pthread_kill(penv->kvm_cpu_state.thread, SIG_IPI); >>> + if (penv != cpu_single_env) { >>> + penv->kvm_cpu_state.stop = 1; >>> + pthread_kill(penv->kvm_cpu_state.thread, SIG_IPI); >>> + } else { >>> + penv->kvm_cpu_state.stop = 0; >>> + penv->kvm_cpu_state.stopped = 1; >>> + cpu_interrupt(penv, CPU_INTERRUPT_EXIT); >>> + } >>> penv = (CPUState *)penv->next_cpu; >>> } >> Who do you have in mind to use this? At least the debugging > I need this for ENOSPC patches. When IDE is in PIO mode KVM do > synchronous writes from vcpu context. We have to be able to call > vm_stop() if synchronous write returns ENOSPC. > >> infrastructure could do so, but I do not recall ATM if there were >> limitations that the above change may not overcome. Maybe you could test >> your patch by changing (probably simplifying) the path from a breakpoint >> hit to vm_stop. >> > I am testing it with my ENOSPC patches and 2 cpus and don't see any ill > effects yet. Great! When done, a supplementary patch to overcome kvm_debug_cpu_requested would be welcome, too. :) Jan -- Siemens AG, Corporate Technology, CT SE 26 Corporate Competence Center Embedded Linux