[SPARC64]: Fix TLB context allocation with SMT style shared TLBs.
The context allocation scheme we use depends upon there being a 1<-->1
mapping from cpu to physical TLB for correctness. Chips like Niagara
break this assumption.
So what we do is notify all cpus with a cross call when the context
version number changes, and if necessary this makes them allocate
a valid context for the address space they are running at the time.
Stress tested with make -j1024, make -j2048, and make -j4096 kernel
builds on a 32-strand, 8 core, T2000 with 16GB of ram.
Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- arch/sparc64/kernel/smp.c 29 additions, 11 deletionsarch/sparc64/kernel/smp.c
- arch/sparc64/mm/init.c 8 additions, 1 deletionarch/sparc64/mm/init.c
- include/asm-sparc64/mmu.h 1 addition, 0 deletionsinclude/asm-sparc64/mmu.h
- include/asm-sparc64/mmu_context.h 12 additions, 13 deletionsinclude/asm-sparc64/mmu_context.h
Loading
Please register or sign in to comment