From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH 16/22] Introduce VCPU self-signaling service Date: Tue, 1 Feb 2011 11:14:04 -0200 Message-ID: <20110201131404.GA13162@amt.cnet> References: <7e0c7b87e31857bf017d7dd96074ed11e7257529.1296133797.git.jan.kiszka@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Avi Kivity , kvm@vger.kernel.org, qemu-devel@nongnu.org To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:45608 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752474Ab1BANPH (ORCPT ); Tue, 1 Feb 2011 08:15:07 -0500 Content-Disposition: inline In-Reply-To: <7e0c7b87e31857bf017d7dd96074ed11e7257529.1296133797.git.jan.kiszka@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On Thu, Jan 27, 2011 at 02:10:00PM +0100, Jan Kiszka wrote: > Introduce qemu_cpu_kick_self to send SIG_IPI to the calling VCPU > context. First user will be kvm. > > Signed-off-by: Jan Kiszka > --- > cpus.c | 21 +++++++++++++++++++++ > qemu-common.h | 1 + > 2 files changed, 22 insertions(+), 0 deletions(-) > > diff --git a/cpus.c b/cpus.c > index bba59e5..88bed4e 100644 > --- a/cpus.c > +++ b/cpus.c > @@ -531,6 +531,17 @@ void qemu_cpu_kick(void *env) > return; > } > > +void qemu_cpu_kick_self(void) > +{ > +#ifndef _WIN32 > + assert(cpu_single_env); > + > + raise(SIG_IPI); > +#else > + abort(); > +#endif > +} > + > void qemu_notify_event(void) > { > CPUState *env = cpu_single_env; > @@ -808,6 +819,16 @@ void qemu_cpu_kick(void *_env) > } > } > > +void qemu_cpu_kick_self(void) > +{ > + assert(cpu_single_env); > + > + if (!cpu_single_env->thread_kicked) { > + qemu_thread_signal(cpu_single_env->thread, SIG_IPI); > + cpu_single_env->thread_kicked = true; > + } > +} > + There is no need to use cpu_single_env, can pass CPUState instead. From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=55637 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PkG4Y-0007N3-4c for qemu-devel@nongnu.org; Tue, 01 Feb 2011 08:15:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PkG4W-0006U3-QK for qemu-devel@nongnu.org; Tue, 01 Feb 2011 08:15:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:1025) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PkG4W-0006Tm-Jg for qemu-devel@nongnu.org; Tue, 01 Feb 2011 08:15:04 -0500 Date: Tue, 1 Feb 2011 11:14:04 -0200 From: Marcelo Tosatti Message-ID: <20110201131404.GA13162@amt.cnet> References: <7e0c7b87e31857bf017d7dd96074ed11e7257529.1296133797.git.jan.kiszka@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7e0c7b87e31857bf017d7dd96074ed11e7257529.1296133797.git.jan.kiszka@siemens.com> Subject: [Qemu-devel] Re: [PATCH 16/22] Introduce VCPU self-signaling service List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Avi Kivity , kvm@vger.kernel.org, qemu-devel@nongnu.org On Thu, Jan 27, 2011 at 02:10:00PM +0100, Jan Kiszka wrote: > Introduce qemu_cpu_kick_self to send SIG_IPI to the calling VCPU > context. First user will be kvm. > > Signed-off-by: Jan Kiszka > --- > cpus.c | 21 +++++++++++++++++++++ > qemu-common.h | 1 + > 2 files changed, 22 insertions(+), 0 deletions(-) > > diff --git a/cpus.c b/cpus.c > index bba59e5..88bed4e 100644 > --- a/cpus.c > +++ b/cpus.c > @@ -531,6 +531,17 @@ void qemu_cpu_kick(void *env) > return; > } > > +void qemu_cpu_kick_self(void) > +{ > +#ifndef _WIN32 > + assert(cpu_single_env); > + > + raise(SIG_IPI); > +#else > + abort(); > +#endif > +} > + > void qemu_notify_event(void) > { > CPUState *env = cpu_single_env; > @@ -808,6 +819,16 @@ void qemu_cpu_kick(void *_env) > } > } > > +void qemu_cpu_kick_self(void) > +{ > + assert(cpu_single_env); > + > + if (!cpu_single_env->thread_kicked) { > + qemu_thread_signal(cpu_single_env->thread, SIG_IPI); > + cpu_single_env->thread_kicked = true; > + } > +} > + There is no need to use cpu_single_env, can pass CPUState instead.