Thread (82 messages) 82 messages, 12 authors, 2012-10-08

[kvmarm] [PATCH 10/15] KVM: ARM: World-switch implementation

From: Marc Zyngier <hidden>
Date: 2012-09-25 17:42:21
Also in: kvm

On Tue, 25 Sep 2012 18:15:50 +0100, Peter Maydell
[off-list ref] wrote:
On 25 September 2012 18:00, Will Deacon [off-list ref] wrote:
quoted
On Sat, Sep 15, 2012 at 04:35:33PM +0100, Christoffer Dall wrote:
quoted
 ENTRY(__kvm_tlb_flush_vmid)
+       hvc     #0                      @ Switch to Hyp mode
+       push    {r2, r3}
+
+       add     r0, r0, #KVM_VTTBR
+       ldrd    r2, r3, [r0]
+       mcrr    p15, 6, r2, r3, c2      @ Write VTTBR
+       isb
+       mcr     p15, 0, r0, c8, c3, 0   @ TLBIALLIS (rt ignored)
+       dsb
+       isb
+       mov     r2, #0
+       mov     r3, #0
+       mcrr    p15, 6, r2, r3, c2      @ Back to VMID #0
+       isb
Do you need this isb, given that you're about to do an hvc?
quoted
+       pop     {r2, r3}
+       hvc     #0                      @ Back to SVC
        bx      lr
...you probably don't want to do the memory accesses involved
in the 'pop' under the wrong VMID ?
Well, we're still in HYP mode when performing the pop, so the VMID is
pretty much irrelevant. Same for the initial push, actually. As long as
we're sure VTTBR has been updated when we do the exception return, I think
we're safe.

        M.
-- 
Fast, cheap, reliable. Pick two.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help