From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z4X0L-0004O3-9F for qemu-devel@nongnu.org; Mon, 15 Jun 2015 12:12:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z4X0I-00073U-Jg for qemu-devel@nongnu.org; Mon, 15 Jun 2015 12:12:57 -0400 Received: from mxout-1k.itc.hs-rm.de ([195.72.102.133]:56655) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z4X0I-00073E-99 for qemu-devel@nongnu.org; Mon, 15 Jun 2015 12:12:54 -0400 Message-ID: <557EF983.1060708@hs-rm.de> Date: Mon, 15 Jun 2015 18:12:51 +0200 From: =?UTF-8?B?QWxleCBaw7xwa2U=?= MIME-Version: 1.0 References: <557B0B21.2030009@hs-rm.de> <557EEA46.10507@hs-rm.de> <557EF0EB.70601@hs-rm.de> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] QEMU ARM SMP: IPI delivery delayed until next main loop event // how to improve IPI latency? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: QEMU Developers Am 15.06.2015 um 17:49 schrieb Peter Maydell: > On 15 June 2015 at 16:36, Alex Z=C3=BCpke w= rote: >> So this is the way to go: >> >> --- a/target-arm/translate.c >> +++ b/target-arm/translate.c >> @@ -4084,6 +4084,7 @@ static void gen_nop_hint(DisasContext *s, int va= l) >> gen_set_pc_im(s, s->pc); >> s->is_jmp =3D DISAS_WFI; >> break; >> + case 1: /* yield */ >> case 2: /* wfe */ >> gen_set_pc_im(s, s->pc); >> s->is_jmp =3D DISAS_WFE; >=20 > Actually I want to split out the yield code path from the wfe > one, because some day we may actually implement WFE as WFE, > at which point WFE has some trap-to-EL2 logic that YIELD > doesn't. I was about to write a patch to do that... OK. Both the cpu_exit-after-sending-IPI or the YIELD patch would fix my issue= , but I think the YIELD one fits better. I updated my testcase to YIELD during polling: http://www.cs.hs-rm.de/~zuepke/qemu/ipi_yield.elf 3174 bytes, md5sum e74897e6b6d70f472db9e9d657780035 > (If you plan to run your custom OS under a hypervisor you > might prefer SEV/WFE over YIELD, because then if your custom OS > is under heavy load the hypervisor has a chance to swap this > vcpu out and run some other one.) >=20 > thanks > -- PMM >=20 Thanks for the hint! Best regards Alex