Thread (13 messages) 13 messages, 5 authors, 2016-07-07
STALE3623d
Revisions (5)
  1. v3 [diff vs current]
  2. v3 [diff vs current]
  3. v3 current
  4. v3 [diff vs current]
  5. v3 [diff vs current]

[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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help