MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core
The pm-cps code has up until now used per-CPU variables indexed by core, rather than CPU number, in order to share data amongst sibling CPUs (ie. VPs/threads in a core). This works fine for single cluster systems, but with multi-cluster systems a core number is no longer unique in the system, leading to sharing between CPUs that are not actually siblings. Avoid this issue by using per-CPU variables as they are more generally used - ie. access them using CPU numbers rather than core numbers. Sharing between siblings is then accomplished by: - Assigning the same pointer to entries for each sibling CPU for the nc_asm_enter & ready_count variables, which allow this by virtue of being per-CPU pointers. - Indexing by the first CPU set in a CPUs cpu_sibling_map in the case of pm_barrier, for which we can't use the previous approach because the per-CPU variable is not a pointer. Signed-off-by:Paul Burton <paulburton@kernel.org> Signed-off-by:
Dragan Mladjenovic <dragan.mladjenovic@syrmia.com> Signed-off-by:
Aleksandar Rikalo <arikalo@gmail.com> Tested-by:
Serge Semin <fancer.lancer@gmail.com> Tested-by:
Gregory CLEMENT <gregory.clement@bootlin.com> Signed-off-by:
Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Loading
Please register or sign in to comment