From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=59050 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pvvxg-0005Bx-Qc for qemu-devel@nongnu.org; Sat, 05 Mar 2011 13:12:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pvvxf-0007vD-GD for qemu-devel@nongnu.org; Sat, 05 Mar 2011 13:12:16 -0500 Received: from fmmailgate03.web.de ([217.72.192.234]:51546) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pvvxf-0007uz-49 for qemu-devel@nongnu.org; Sat, 05 Mar 2011 13:12:15 -0500 Message-ID: <4D727CE9.8010107@web.de> Date: Sat, 05 Mar 2011 19:11:53 +0100 From: Jan Kiszka MIME-Version: 1.0 References: <29e857949ee4ff738c7c2f27063ee945a1af4875.1299233998.git.jan.kiszka@siemens.com> <20110305153759.GA2692@amt.cnet> In-Reply-To: <20110305153759.GA2692@amt.cnet> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig7BC352FB970F52B498ED13E6" Sender: jan.kiszka@web.de Subject: [Qemu-devel] Re: [PATCH 03/15] kvm: Install optimized interrupt handlers List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcelo Tosatti Cc: Avi Kivity , kvm@vger.kernel.org, qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig7BC352FB970F52B498ED13E6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 2011-03-05 16:37, Marcelo Tosatti wrote: > On Fri, Mar 04, 2011 at 11:20:00AM +0100, Jan Kiszka wrote: >> KVM only requires to set the raised IRQ in CPUState and, if the user >> space irqchip is used, to kick the receiving vcpu if it is remote. >> >> Signed-off-by: Jan Kiszka >> --- >> kvm-all.c | 17 +++++++++++++++++ >> 1 files changed, 17 insertions(+), 0 deletions(-) >> >> diff --git a/kvm-all.c b/kvm-all.c >> index 226843c..c460d45 100644 >> --- a/kvm-all.c >> +++ b/kvm-all.c >> @@ -650,6 +650,20 @@ static CPUPhysMemoryClient kvm_cpu_phys_memory_cl= ient =3D { >> .log_stop =3D kvm_log_stop, >> }; >> =20 >> +static void kvm_handle_interrupt(CPUState *env, int mask) >> +{ >> + env->interrupt_request |=3D mask; >> + >=20 > If the env->interrupt_request request is processed in userspace, such a= s > MCE, the kick is still necessary for irqchip case. CPU_INTERRUPT_DEBUG > is another example, no? [this probably targeted kvm_handle_interrupt_kernel_irqchip] In principle, you are right. But MCE must be injected synchronously over the target VCPU, see do_inject_x86_mce, and CPU_INTERRUPT_DEBUG is also synchronous and not even used in KVM mode. >=20 >> + if (!qemu_cpu_self(env)) { >> + qemu_cpu_kick(env); >> + } >> +} >> + >> +static void kvm_handle_interrupt_kernel_irqchip(CPUState *env, int ma= sk) >> +{ >> + env->interrupt_request |=3D mask; >> +} >> + Jan --------------enig7BC352FB970F52B498ED13E6 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAk1yfOkACgkQitSsb3rl5xSX+ACglHSkIys5SZ6oPmeZCYeUejXk YFsAn0Cw/GebQafeK6XV07Xn9HHV4VZV =ZVP1 -----END PGP SIGNATURE----- --------------enig7BC352FB970F52B498ED13E6--