MIPS: Initialise MAARs on secondary CPUs
authorPaul Burton <[email protected]>
Fri, 25 Sep 2015 15:59:38 +0000 (08:59 -0700)
committerRalf Baechle <[email protected]>
Sun, 27 Sep 2015 12:15:26 +0000 (14:15 +0200)
commite060f6ed281669b6d2f22d8dafd664b532386918
treefa74247359834941661b76a318ca6ad790b01041
parent651ca7f4dab77f07fdac9cfb68bcab6bd2b7f827
MIPS: Initialise MAARs on secondary CPUs

MAARs should be initialised on each CPU (or rather, core) in the system
in order to achieve consistent behaviour & performance. Previously they
have only been initialised on the boot CPU which leads to performance
problems if tasks are later scheduled on a secondary CPU, particularly
if those tasks make use of unaligned vector accesses where some CPUs
don't handle any cases in hardware for non-speculative memory regions.
Fix this by recording the MAAR configuration from the boot CPU and
applying it to secondary CPUs as part of their bringup.

Reported-by: Doug Gilmore <[email protected]>
Signed-off-by: Paul Burton <[email protected]>
Cc: [email protected]
Cc: Rusty Russell <[email protected]>
Cc: Steven J. Hill <[email protected]>
Cc: Andrew Bresticker <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: David Hildenbrand <[email protected]>
Cc: [email protected]
Cc: Aaro Koskinen <[email protected]>
Cc: James Hogan <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Markos Chandras <[email protected]>
Cc: Hemmo Nieminen <[email protected]>
Cc: Alex Smith <[email protected]>
Cc: Peter Zijlstra (Intel) <[email protected]>
Patchwork: https://patchwork.linux-mips.org/patch/11239/
Signed-off-by: Ralf Baechle <[email protected]>
arch/mips/include/asm/maar.h
arch/mips/kernel/smp.c
arch/mips/mm/init.c