qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 0/3] ppc: Broadcast tlb flush should have glo


From: Benjamin Herrenschmidt
Subject: Re: [Qemu-devel] [PATCH v3 0/3] ppc: Broadcast tlb flush should have global effect
Date: Mon, 12 Sep 2016 16:05:43 +1000

On Mon, 2016-09-12 at 11:18 +0530, Nikunj A Dadhania wrote:
> PowerPC targets should do tlb invalidation on other cpus on 
> instructions that expect a global effect.
> 
> * ptesync for BookS
> * tlbsync primarily for BookE
>   (for BookS make it a nop, as it always come along with ptesync)
> * tlbivax for other ppc tragets
> * H_REMOVE, H_BULK_REMOVE and H_PROTECT hcalls in case of pseries

The above is confusing.

The instructions that have global effects are tlbie (BookS) and tlbivax
(BookE) plus the H_CALLs since they contain a tlbie on a real
hypervisor.

The ptesync and tlbsync instructions are barriers use to synchronize
with the global invalidations. That means that we don't need to ensure
the global invalidations have completed until we hit those barriers.

We typically use them as a way to "batch" the invalidations in TCG.

> The implementation provides a single point that can be used in MTTCG
> for 
> doing async-flushes.
> 
> The patchset introduces bit-flags in CPUPPCState::tlb_need_flush:
> 
>   TLB_NEED_LOCAL_FLUSH (0x1) - Flush local tlb
>   TLB_NEED_GLOBAL_FLUSH (0x2) - Flush tlb on other cpus.
> 
> Nikunj A Dadhania (3):
>   target-ppc: add TLB_NEED_LOCAL_FLUSH flag
>   target-ppc: add flag in chech_tlb_flush()
>   target-ppc: tlbie should have global effect
> 
>  hw/ppc/spapr_hcall.c     |  6 ++++--
>  target-ppc/cpu.h         |  2 ++
>  target-ppc/excp_helper.c |  4 ++--
>  target-ppc/helper.h      |  2 +-
>  target-ppc/helper_regs.h | 25 +++++++++++++++++++++----
>  target-ppc/mmu-hash64.c  |  6 +++---
>  target-ppc/mmu_helper.c  | 20 ++++++++++++--------
>  target-ppc/translate.c   | 26 ++++++++++++++++----------
>  8 files changed, 61 insertions(+), 30 deletions(-)
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]