From: Marc Zyngier <marc.zyngier@arm.com>
To: Christoffer Dall <c.dall@virtualopensystems.com>
Cc: Avi Kivity <avi@redhat.com>,
"tech@virtualopensystems.com" <tech@virtualopensystems.com>,
"android-virt@lists.cs.columbia.edu"
<android-virt@lists.cs.columbia.edu>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [Android-virt] [PATCH v5 11/13] ARM: KVM: Support SMP hosts
Date: Tue, 13 Dec 2011 14:17:33 +0000 [thread overview]
Message-ID: <4EE75E7D.1070902@arm.com> (raw)
In-Reply-To: <CANM98qKUM5W2k20BXnXS5qc3Hqx73v0rgXHQ2qDt8EvqEAGwSw@mail.gmail.com>
On 13/12/11 13:36, Christoffer Dall wrote:
> On Tue, Dec 13, 2011 at 4:37 AM, Avi Kivity <avi@redhat.com> wrote:
>> if (new_virt_intr == IRQ | FIQ && virt_intr == FIQ) {
>> /* IRQ raised, FIQ already set */
>> return;
>> }
>>
>
> hmm, so what you want to avoid here is sending an IPI to the other CPU
> in case we already have FIQ raised? But I think we have to do this
> anyhow. If a guest is servicing a raised FIQ and have FIQs masked, but
> the GIC hasn't lowered the FIQ line yet, and now comes an IRQ, if the
> IRQ is unmasked we want to change the hypervisor virtual IRQ register
> right away as to signal an IRQ immediately and if the guest masks IRQ
> we still want to change the hypervisor virtual register so that the
> moment the guest unmasks the IRQ, an exception is raised. The only way
> to set the hypervisor register for another CPU would be to have it
> take a world-switch round.
>
> So, I think if we simply change either of these lines, we need to
> signal the other CPU.
>
> Marc, can you confirm?
We definitely need to signal the CPU an IRQ is pending. The VGIC may
help us here, as we can access another CPU's VGIC List Registers (via
the processor-specific base address of the Virtual interface control).
That would save sending an IPI to the target CPU.
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2011-12-13 14:17 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-11 10:24 [PATCH v5 00/13] KVM/ARM Implementation Christoffer Dall
2011-12-11 10:24 ` [PATCH v5 01/13] ARM: KVM: Initial skeleton to compile KVM support Christoffer Dall
2011-12-11 10:24 ` [PATCH v5 02/13] ARM: KVM: Hypervisor identity mapping Christoffer Dall
2011-12-11 10:24 ` [PATCH v5 03/13] ARM: KVM: Add hypervisor inititalization Christoffer Dall
2011-12-11 10:24 ` [PATCH v5 04/13] ARM: KVM: Memory virtualization setup Christoffer Dall
2011-12-12 14:40 ` Avi Kivity
2011-12-12 15:09 ` [Android-virt] " Christoffer Dall
2011-12-12 15:15 ` Avi Kivity
2011-12-12 15:25 ` Peter Maydell
2011-12-12 15:49 ` Avi Kivity
2011-12-12 17:40 ` Christoffer Dall
2011-12-13 17:10 ` Antonios Motakis
2011-12-13 17:13 ` Christoffer Dall
2011-12-11 10:24 ` [PATCH v5 05/13] ARM: KVM: Inject IRQs and FIQs from userspace Christoffer Dall
2011-12-11 15:18 ` Jan Kiszka
2011-12-11 16:03 ` Peter Maydell
2011-12-11 19:30 ` Christoffer Dall
2011-12-11 19:48 ` Peter Maydell
2011-12-11 20:07 ` [Android-virt] " Christoffer Dall
2011-12-11 20:25 ` Peter Maydell
2011-12-11 21:36 ` Christoffer Dall
2011-12-11 22:12 ` Peter Maydell
2011-12-11 22:35 ` Peter Maydell
2011-12-11 22:53 ` Christoffer Dall
2011-12-11 23:01 ` Jan Kiszka
2011-12-12 16:31 ` Peter Maydell
2011-12-12 17:40 ` Avi Kivity
2011-12-29 1:29 ` Christoffer Dall
2012-02-09 1:15 ` Peter Maydell
2011-12-12 11:06 ` Marc Zyngier
2011-12-12 12:54 ` Christoffer Dall
2011-12-12 6:35 ` Alexander Graf
2011-12-11 19:16 ` Christoffer Dall
2011-12-12 13:28 ` Avi Kivity
2011-12-12 14:38 ` [Android-virt] " Christoffer Dall
2011-12-12 14:50 ` Avi Kivity
2011-12-12 15:11 ` Christoffer Dall
2011-12-12 15:16 ` Avi Kivity
2011-12-11 10:24 ` [PATCH v5 06/13] ARM: KVM: World-switch implementation Christoffer Dall
2011-12-11 10:25 ` [PATCH v5 07/13] ARM: KVM: Emulation framework and CP15 emulation Christoffer Dall
2011-12-12 13:44 ` Avi Kivity
2011-12-12 16:17 ` Christoffer Dall
2011-12-11 10:25 ` [PATCH v5 08/13] ARM: KVM: Handle guest faults in KVM Christoffer Dall
2011-12-12 15:05 ` Avi Kivity
2011-12-12 19:53 ` Christoffer Dall
2011-12-13 9:45 ` Avi Kivity
2011-12-13 13:10 ` [Android-virt] " Christoffer Dall
2011-12-13 13:17 ` Marc Zyngier
2011-12-13 13:23 ` Avi Kivity
2011-12-13 13:44 ` Christoffer Dall
2011-12-13 14:27 ` Avi Kivity
2011-12-11 10:25 ` [PATCH v5 09/13] ARM: KVM: Handle I/O aborts Christoffer Dall
2011-12-12 13:54 ` Avi Kivity
2011-12-12 14:56 ` [Android-virt] " Christoffer Dall
2011-12-11 10:25 ` [PATCH v5 10/13] ARM: KVM: Guest wait-for-interrupts (WFI) support Christoffer Dall
2011-12-12 14:12 ` Avi Kivity
2011-12-12 16:20 ` Christoffer Dall
2011-12-12 17:44 ` Avi Kivity
2011-12-12 19:21 ` [Android-virt] " Christoffer Dall
2011-12-13 9:41 ` Avi Kivity
2011-12-11 10:25 ` [PATCH v5 11/13] ARM: KVM: Support SMP hosts Christoffer Dall
2011-12-12 14:30 ` Avi Kivity
2011-12-12 17:37 ` Christoffer Dall
2011-12-12 17:56 ` Avi Kivity
2011-12-12 19:38 ` [Android-virt] " Christoffer Dall
[not found] ` <CAEDV+gJ=zeDpfp0kS2uBvmgRMyCpsV1LitjKR66R4W9Y3VGgWw@mail.gmail.com>
[not found] ` <4EE71CF1.5080705@redhat.com>
2011-12-13 13:36 ` Christoffer Dall
2011-12-13 14:17 ` Avi Kivity
2011-12-13 14:36 ` Christoffer Dall
2011-12-13 14:17 ` Marc Zyngier [this message]
2011-12-19 6:15 ` Antonios Motakis
2011-12-19 14:57 ` [Android-virt] " Christoffer Dall
2011-12-19 15:19 ` Marc Zyngier
2011-12-19 15:30 ` Antonios Motakis
2011-12-19 15:37 ` Marc Zyngier
2011-12-19 15:40 ` Christoffer Dall
2011-12-19 15:42 ` Antonios Motakis
2011-12-19 15:45 ` Marc Zyngier
[not found] ` <CAEDV+gL929Hpa=PncVWeHRNAa5fBuorNNYFC=iix=PO+5aO2cg@mail.gmail.com>
2011-12-19 17:19 ` Peter Maydell
2011-12-19 17:24 ` Christoffer Dall
2011-12-19 17:36 ` Peter Maydell
2011-12-19 17:40 ` Christoffer Dall
2011-12-11 10:25 ` [PATCH v5 12/13] ARM: KVM: Fix guest view of MPIDR Christoffer Dall
2011-12-12 14:32 ` Avi Kivity
2011-12-12 17:39 ` Christoffer Dall
2011-12-12 17:44 ` Marc Zyngier
2011-12-12 19:43 ` Christoffer Dall
2011-12-13 9:46 ` Avi Kivity
2011-12-13 13:38 ` Christoffer Dall
2011-12-11 10:25 ` [PATCH v5 13/13] ARM: KVM: Support SMP guests Christoffer Dall
2011-12-11 11:32 ` [PATCH v5 00/13] KVM/ARM Implementation Peter Maydell
2011-12-11 19:23 ` Christoffer Dall
2011-12-11 19:27 ` Peter Maydell
2012-01-11 16:48 ` Peter Maydell
2012-01-12 3:29 ` Christoffer Dall
2012-01-12 8:19 ` Peter Maydell
2012-01-12 16:15 ` [Android-virt] " Christoffer Dall
2012-01-20 2:59 ` Christoffer Dall
2012-01-30 22:46 ` Peter Maydell
2012-01-30 23:02 ` Alexander Graf
2012-01-31 14:39 ` Antonios Motakis
2012-02-01 12:11 ` Marc Zyngier
2012-02-01 12:20 ` Peter Maydell
2012-02-01 13:40 ` Marc Zyngier
2012-02-01 13:57 ` Peter Maydell
2012-02-01 13:59 ` Christoffer Dall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EE75E7D.1070902@arm.com \
--to=marc.zyngier@arm.com \
--cc=android-virt@lists.cs.columbia.edu \
--cc=avi@redhat.com \
--cc=c.dall@virtualopensystems.com \
--cc=kvm@vger.kernel.org \
--cc=tech@virtualopensystems.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).