From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH 03/15] kvm: Install optimized interrupt handlers Date: Sat, 05 Mar 2011 19:11:53 +0100 Message-ID: <4D727CE9.8010107@web.de> References: <29e857949ee4ff738c7c2f27063ee945a1af4875.1299233998.git.jan.kiszka@siemens.com> <20110305153759.GA2692@amt.cnet> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig7BC352FB970F52B498ED13E6" Cc: Avi Kivity , kvm@vger.kernel.org, qemu-devel@nongnu.org To: Marcelo Tosatti Return-path: Received: from fmmailgate03.web.de ([217.72.192.234]:51553 "EHLO fmmailgate03.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752387Ab1CESMP (ORCPT ); Sat, 5 Mar 2011 13:12:15 -0500 In-Reply-To: <20110305153759.GA2692@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: 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--