From: Marc Zyngier <marc.zyngier@arm.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Christoffer Dall <christoffer.dall@linaro.org>,
kvm-devel <kvm@vger.kernel.org>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>
Subject: Re: [PATCH 4/4] arm/arm64: KVM: use kernel mapping to perform invalidation on page fault
Date: Thu, 08 Jan 2015 15:06:55 +0000 [thread overview]
Message-ID: <54AE9D0F.3060002@arm.com> (raw)
In-Reply-To: <CAFEAcA9s9-x+aodi0NgWxx2CjdTf8BRfkMkVKCv5JQV0TaU6EA@mail.gmail.com>
On 08/01/15 13:16, Peter Maydell wrote:
> On 8 January 2015 at 13:07, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>> Can you remind me why it's OK not to flush the icache for an
>>> ASID tagged VIVT icache? Making this page coherent might actually
>>> be revealing a change in the instructions associated with the VA,
>>> mightn't it?
>>
>> ASID cached VIVT icaches are also VMID tagged. It is thus impossible for
>> stale cache lines to come with a new page. And if by synchronizing the
>> caches you obtain a different instruction stream, it means you've
>> restored the wrong page.
>
> ...is that true even if the dirty data in the dcache comes from
> the userspace process doing DMA or writing the initial boot
> image or whatever?
We perform this on a page that is being brought in stage-2. Two cases:
- This is a page is mapped for the first time: the icache should be
invalid for this page (the guest should have invalidated it the first
place),
- This is a page that we bring back from swap: the page must match the
one that has been swapped out. If it has been DMA'ed in in the meantime,
then the guest surely has flushed its icache if it intends to branch to
it, hasn't it?
I have the feeling I'm missing something from your question...
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2015-01-08 15:07 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-08 11:59 [PATCH 0/4] arm/arm64: KVM: Random selection of MM related fixes Marc Zyngier
2015-01-08 11:59 ` [PATCH 1/4] mm: Correct ordering of *_clear_flush_young_notify Marc Zyngier
2015-01-08 13:12 ` Paolo Bonzini
2015-01-08 19:00 ` Andrea Arcangeli
2015-01-12 10:15 ` Steve Capper
2015-01-08 11:59 ` [PATCH 2/4] arm/arm64: KVM: Use set/way op trapping to track the state of the caches Marc Zyngier
2015-01-09 11:19 ` Christoffer Dall
2015-01-09 11:38 ` Marc Zyngier
2015-01-09 12:12 ` Christoffer Dall
2015-01-08 11:59 ` [PATCH 3/4] arm/arm64: KVM: Flush caches to memory on unmap Marc Zyngier
2015-01-09 12:30 ` Christoffer Dall
2015-01-09 14:35 ` Marc Zyngier
2015-01-11 12:30 ` Christoffer Dall
2015-01-12 11:15 ` Marc Zyngier
2015-01-12 20:13 ` Christoffer Dall
2015-01-13 13:47 ` Christoffer Dall
2015-01-13 13:57 ` Marc Zyngier
2015-01-08 11:59 ` [PATCH 4/4] arm/arm64: KVM: use kernel mapping to perform invalidation on page fault Marc Zyngier
2015-01-08 12:30 ` Peter Maydell
2015-01-08 13:07 ` Marc Zyngier
2015-01-08 13:16 ` Peter Maydell
2015-01-08 15:06 ` Marc Zyngier [this message]
2015-01-08 15:21 ` Peter Maydell
2015-01-09 12:50 ` Christoffer Dall
2015-01-09 13:03 ` Peter Maydell
2015-01-09 14:16 ` Marc Zyngier
2015-01-09 15:28 ` Peter Maydell
2015-01-09 17:18 ` Marc Zyngier
2015-01-11 12:33 ` Christoffer Dall
2015-01-11 17:37 ` Peter Maydell
2015-01-11 17:58 ` Christoffer Dall
2015-01-11 18:27 ` Peter Maydell
2015-01-11 18:38 ` Christoffer Dall
2015-01-12 9:58 ` Marc Zyngier
2015-01-12 20:10 ` Christoffer Dall
2015-01-13 11:38 ` Marc Zyngier
2015-01-13 12:04 ` Christoffer Dall
2015-01-13 12:12 ` Peter Maydell
2015-01-13 13:35 ` Christoffer Dall
2015-01-13 13:41 ` Peter Maydell
2015-01-13 13:49 ` Christoffer Dall
2015-01-15 12:00 ` Mark Rutland
2015-01-15 13:00 ` Christoffer Dall
2015-01-15 15:47 ` Mark Rutland
2015-01-09 12:51 ` 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=54AE9D0F.3060002@arm.com \
--to=marc.zyngier@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=peter.maydell@linaro.org \
/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.