[PATCH v3 1/2] ARM: tango: add HOTPLUG_CPU support
From: Marc Gonzalez <hidden>
Date: 2016-06-28 15:04:17
Also in:
linux-pm
On 28/06/2016 14:30, Robin Murphy wrote:
On 28/06/16 12:59, Marc Gonzalez wrote:quoted
+#ifdef CONFIG_HOTPLUG_CPU +/* + * cpu_kill() and cpu_die() run concurrently on different cores. + * Firmware will only "kill" a core once it has properly "died". + * Keep trying to kill a core until the operation succeeds, but + * sleep between tries to give the core time to die. + */ +static int tango_cpu_kill(unsigned int cpu) +{ + do { + msleep(10); + } while (tango_aux_core_kill(cpu) != 0);Does the firmware guarantee that this will succeed (or at least report success) in finite time, regardless of how messed up the system might be? I'd imagine this should probably have either a timeout or a comment clarifying why it doesn't need a timeout.
Good point. The FW allows only one thread at a time. If a thread is wedged inside the FW, no other thread can use the FW. In that situation, cpu0 would remain stuck inside tango_cpu_kill(). Note, that if tango_cpu_kill() starts failing, then secondary cores will remain "zombies". So the system is mostly hosed anyway... Only cpu0 will be available. Regards.