From: Avi Kivity <avi@redhat.com>
To: Christoffer Dall <c.dall@virtualopensystems.com>
Cc: Marc.Zyngier@arm.com, tech@virtualopensystems.com,
android-virt@lists.cs.columbia.edu, kvm@vger.kernel.org
Subject: Re: [Android-virt] [PATCH v5 11/13] ARM: KVM: Support SMP hosts
Date: Tue, 13 Dec 2011 16:17:16 +0200 [thread overview]
Message-ID: <4EE75E6C.4080903@redhat.com> (raw)
In-Reply-To: <CANM98qKUM5W2k20BXnXS5qc3Hqx73v0rgXHQ2qDt8EvqEAGwSw@mail.gmail.com>
On 12/13/2011 03:36 PM, Christoffer Dall 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.
Ah, if the register is virtualized, indeed you need to signal immediately.
> >> But, if I am doing atomic bitops on an unsigned long field, how do I
> >> read that (or test two bits at once) atomically?
> >
> > Reads (and writes) are always atomic. Its read-modify-write that needs
> > special treatment.
> >
> embarrassing. I actually thought read/writes of a word could be
> partial to the byte between SMP nodes, but it turns out, and as you
> say, they cannot. Got it.
Read Documentation/atomic_ops.txt and Documentation/memory-barriers.txt,
it's a tricky subject.
--
error compiling committee.c: too many arguments to function
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 [this message]
2011-12-13 14:36 ` Christoffer Dall
2011-12-13 14:17 ` Marc Zyngier
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=4EE75E6C.4080903@redhat.com \
--to=avi@redhat.com \
--cc=Marc.Zyngier@arm.com \
--cc=android-virt@lists.cs.columbia.edu \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.