[PATCH v2 2/3] ARM: mcpm: Implement cpu_kill() to synchronise on powerdown
Nicolas Pitre
nicolas.pitre at linaro.org
Tue Oct 1 11:10:43 EDT 2013
On Tue, 1 Oct 2013, Dave Martin wrote:
> CPU hotplug and kexec rely on smp_ops.cpu_kill(), which is supposed
> to wait for the CPU to park or power down, and perform the last
> rites (such as disabling clocks etc., where the platform doesn't do
> this automatically).
>
> kexec in particular is unsafe without performing this
> synchronisation to park secondaries. Without it, the secondaries
> might not be parked when kexec trashes the kernel.
>
> There is no generic way to do this synchronisation, so a new mcpm
> platform_ops method power_down_finish() is added by this patch.
>
> The new method is mandatory. A platform which provides no way to
> detect when CPUs are parked is likely broken.
>
> Signed-off-by: Dave Martin <Dave.Martin at arm.com>
We're getting there. ;-)
[...]
> +int mcpm_cpu_power_down_finish(unsigned int cpu, unsigned int cluster)
> +{
> + int ret;
> +
> + if (WARN_ON_ONCE(!platform_ops || !platform_ops->power_down_finish))
> + return 0;
You'd have to return a non-zero value here to be consistent.
Nicolas
More information about the linux-arm-kernel
mailing list