[PATCH 1/3] arm: ls1: add CPU hotplug platform support
From: Li Yang <hidden>
Date: 2014-09-28 10:57:22
Also in:
linux-pm, lkml
On Fri, Sep 26, 2014 at 9:20 PM, Mark Rutland [off-list ref] wrote:
quoted
quoted
This looks to be a carbon copy of the vexpress pseudo-hotplug in arch/arm/mach-vexpress/hotplug.c, which is obviously broken in the way you describe above. Perhaps we should go about ripping that out?The Versatile Express does not support suspend so the only problem case is kexec. However, isn't this support needed for big.LITTLE, and as the Versatile Express is the platform which these features get developed on, having working CPU hotplug seems rather fundamental for ARM kernel feature development. In that regard, Versatile Express is something of a special case.It is admittedly helpful during development to perform pseudo-hotplug on Versatile Express. I have a local patch adding vexpress_cpu_disable so I can test for bugs that only trigger if CPU0 is hotplugged. Given that, perhaps we should make it clearer that Versatile Express is not a reference implementation for CPU hotplug; add some Kconfig (e.g. VEXPRESS_PSEUDO_HOTPLUG) that depends on !KEXEC && !SUSPEND, and putting a note in hotplug.c stating it's not suitable as a reference implementation. ...but perhaps that's overkill.
I agree that the pseudo-hotplug is breaking the kexec. However, I don't think it breaks the system suspend case as tasks and interrupts have been moved out of the non-booting CPU. The pseudo-hotplug would be even better than real hotplug as it introduces less latency. Regards, Leo