From: christoffer.dall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM64: KVM: Fix coherent_icache_guest_page() for host with external L3-cache.
Date: Wed, 14 Aug 2013 10:37:53 -0700 [thread overview]
Message-ID: <20130814173753.GE11390@cbox> (raw)
In-Reply-To: <1376480832-18705-1-git-send-email-pranavkumar@linaro.org>
On Wed, Aug 14, 2013 at 05:17:12PM +0530, Pranavkumar Sawargaonkar wrote:
> Systems with large external L3-cache (few MBs), might have dirty
> content belonging to the guest page in L3-cache. To tackle this,
> we need to flush such dirty content from d-cache so that guest
> will see correct contents of guest page when guest MMU is disabled.
>
> The patch fixes coherent_icache_guest_page() for external L3-cache.
>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> ---
> arch/arm64/include/asm/kvm_mmu.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
> index efe609c..5129038 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -123,6 +123,8 @@ static inline void coherent_icache_guest_page(struct kvm *kvm, gfn_t gfn)
> if (!icache_is_aliasing()) { /* PIPT */
> unsigned long hva = gfn_to_hva(kvm, gfn);
> flush_icache_range(hva, hva + PAGE_SIZE);
> + /* Flush d-cache for systems with external caches. */
This comment is nowhere near explanatory enough for someone who comes by
later and tries to figure out why we're flushing the dcache on every
page we swap in under given circumstances. Yes, you can do git blame,
until you modify the line for some other reason and it just becomes a
pain.
> + __flush_dcache_area((void *) hva, PAGE_SIZE);
eh, why is this only relevant for a non-aliasing icache? In fact, this
does not seem to be icache related at all, but rather instruction-stream
to dcache related, which would warrant either a rename of the function
to something more generic or a separate function.
> } else if (!icache_is_aivivt()) { /* non ASID-tagged VIVT */
> /* any kind of VIPT cache */
> __flush_icache_all();
> --
> 1.7.9.5
>
> _______________________________________________
> kvmarm mailing list
> kvmarm at lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm
next prev parent reply other threads:[~2013-08-14 17:37 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-14 11:47 [PATCH] ARM64: KVM: Fix coherent_icache_guest_page() for host with external L3-cache Pranavkumar Sawargaonkar
2013-08-14 12:04 ` Marc Zyngier
2013-08-14 14:22 ` Anup Patel
2013-08-14 15:06 ` Alexander Graf
2013-08-14 15:34 ` Marc Zyngier
2013-08-14 15:41 ` Peter Maydell
2013-08-14 15:57 ` Marc Zyngier
2013-08-14 16:36 ` Anup Patel
2013-08-14 15:23 ` Marc Zyngier
2013-08-14 15:35 ` Peter Maydell
2013-08-14 15:49 ` Marc Zyngier
2013-08-14 17:34 ` Christoffer Dall
2013-08-15 4:44 ` Marc Zyngier
2013-08-15 16:58 ` Christoffer Dall
2013-08-14 15:36 ` Anup Patel
2013-08-15 4:52 ` Marc Zyngier
2013-08-15 6:26 ` Anup Patel
2013-08-15 8:31 ` Marc Zyngier
2013-08-15 13:31 ` Anup Patel
2013-08-15 14:47 ` Marc Zyngier
2013-08-15 15:13 ` Anup Patel
2013-08-15 15:37 ` Marc Zyngier
2013-08-15 15:45 ` Anup Patel
2013-08-15 16:53 ` Christoffer Dall
2013-08-16 5:02 ` Anup Patel
2013-08-16 6:57 ` Anup Patel
2013-08-16 17:19 ` Christoffer Dall
2013-08-16 17:42 ` Anup Patel
2013-08-16 17:50 ` Christoffer Dall
2013-08-16 18:06 ` Christoffer Dall
2013-08-16 18:20 ` Anup Patel
2013-08-16 18:11 ` Anup Patel
2013-08-16 18:20 ` Christoffer Dall
2013-08-30 9:52 ` Catalin Marinas
2013-08-30 10:44 ` Anup Patel
2013-08-30 13:02 ` Catalin Marinas
2013-08-30 13:21 ` Marc Zyngier
2013-08-30 14:04 ` Catalin Marinas
2013-08-30 14:22 ` Marc Zyngier
2013-08-30 14:30 ` Will Deacon
2013-08-30 14:52 ` Anup Patel
2013-08-30 15:12 ` Marc Zyngier
2013-08-29 10:52 ` Catalin Marinas
2013-08-29 12:31 ` Anup Patel
2013-08-29 12:53 ` Catalin Marinas
2013-08-29 16:02 ` Anup Patel
2013-08-30 9:44 ` Catalin Marinas
2013-08-30 10:36 ` Anup Patel
2013-08-30 12:52 ` Catalin Marinas
2013-08-16 17:14 ` Christoffer Dall
[not found] ` <CALrVBkvEP1Q0mKpv8ViOTLRvW2ks18MQXgmurSBHn+aJcz+=gw@mail.gmail.com>
2013-08-16 17:28 ` Christoffer Dall
2013-08-16 17:42 ` Christoffer Dall
2013-08-15 8:39 ` Pranavkumar Sawargaonkar
2013-08-15 15:42 ` Marc Zyngier
2013-08-14 14:23 ` Sudeep KarkadaNagesha
2013-08-14 14:35 ` Anup Patel
2013-08-14 17:37 ` Christoffer Dall [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-08-14 11:45 Pranavkumar Sawargaonkar
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=20130814173753.GE11390@cbox \
--to=christoffer.dall@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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 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).