ARCv2: mm: TLB Miss optim: SMP builds can cache pgd pointer in mmu scratch reg
authorVineet Gupta <vgupta@synopsys.com>
Thu, 13 Nov 2014 13:57:24 +0000 (19:27 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 28 Oct 2019 19:12:31 +0000 (12:12 -0700)
commitcfd9d70a855edf6adb37d0ed88be9e35274dbe49
tree3be75666a3101764e58a227672dbf5e25f945da4
parent7b491c0b62594a21cab357e0118603830a500de3
ARCv2: mm: TLB Miss optim: SMP builds can cache pgd pointer in mmu scratch reg

ARC700 exception (and intr handling) didn't have auto stack switching
thus had to rely on stashing a reg temporarily (to free it up) at a
known place in memory, allowing to code up the low level stack switching.
This however was not re-entrant in SMP which thus had to repurpose the
per-cpu MMU SCRATCH DATA register otherwise used to "cache" the task pdg
pointer (vs. reading it from mm struct)

The newer HS cores do have auto-stack switching and thus even SMP builds
can use the MMU SCRATCH reg as originally intended.

This patch fixes the restriction to ARC700 SMP builds only

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/entry-compact.h
arch/arc/include/asm/mmu.h
arch/arc/include/asm/mmu_context.h
arch/arc/include/asm/pgtable.h
arch/arc/mm/tlb.c
arch/arc/mm/tlbex.S