powerpc: Introduce local (non-broadcast) forms of tlb invalidates
authorKumar Gala <galak@kernel.crashing.org>
Tue, 15 Jul 2008 21:12:25 +0000 (16:12 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Wed, 24 Sep 2008 21:29:40 +0000 (16:29 -0500)
commit0ba3418b8b1c85ee1771c63f1dd12041614e56ff
tree6f77bf668e76725710aae5126054eebd5913d319
parent1afb7f809bfb8fad9eec9419f3dfd75cee746ebd
powerpc: Introduce local (non-broadcast) forms of tlb invalidates

Introduced a new set of low level tlb invalidate functions that do not
broadcast invalidates on the bus:

_tlbil_all - invalidate all
_tlbil_pid - invalidate based on process id (or mm context)
_tlbil_va  - invalidate based on virtual address (ea + pid)

On non-SMP configs _tlbil_all should be functionally equivalent to _tlbia and
_tlbil_va should be functionally equivalent to _tlbie.

The intent of this change is to handle SMP based invalidates via IPIs instead
of broadcasts as the mechanism scales better for larger number of cores.

On e500 (fsl-booke mmu) based cores move to using MMUCSR for invalidate alls
and tlbsx/tlbwe for invalidate virtual address.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/include/asm/reg_booke.h
arch/powerpc/include/asm/tlbflush.h
arch/powerpc/kernel/misc_32.S
arch/powerpc/kernel/ppc_ksyms.c