ARM: mcpm_head.S: vlock-based first man election
authorDave Martin <dave.martin@linaro.org>
Fri, 17 Aug 2012 15:07:02 +0000 (16:07 +0100)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 24 Apr 2013 14:37:01 +0000 (10:37 -0400)
commit1ae98561b16f305e43151405f226727c00ee52bc
treef48c7fa44fdd147340f00d4a51555cbd7c476e27
parent9762f12d3e05c8d6a0651f4c7e76ae72ce27fc3a
ARM: mcpm_head.S: vlock-based first man election

Instead of requiring the first man to be elected in advance (which
can be suboptimal in some situations), this patch uses a per-
cluster mutex to co-ordinate selection of the first man.

This should also make it more feasible to reuse this code path for
asynchronous cluster resume (as in CPUidle scenarios).

We must ensure that the vlock data doesn't share a cacheline with
anything else, or dirty cache eviction could corrupt it.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
arch/arm/common/Makefile
arch/arm/common/mcpm_head.S
arch/arm/kernel/asm-offsets.c