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]>