All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: arm-soc <arm@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
	Sebastian Frias <sf84@laposte.net>, Mason <slash.tmp@free.fr>,
	Thibaud Cornic <thibaud_cornic@sigmadesigns.com>,
	linux-pm <linux-pm@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 1/2] ARM: tango: add HOTPLUG_CPU support
Date: Tue, 28 Jun 2016 17:04:17 +0200	[thread overview]
Message-ID: <577291F1.8060105@sigmadesigns.com> (raw)
In-Reply-To: <57726DE0.8090308@arm.com>

On 28/06/2016 14:30, Robin Murphy wrote:

> On 28/06/16 12:59, Marc Gonzalez wrote:
>
>> +#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.


WARNING: multiple messages have this Message-ID (diff)
From: marc_gonzalez@sigmadesigns.com (Marc Gonzalez)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/2] ARM: tango: add HOTPLUG_CPU support
Date: Tue, 28 Jun 2016 17:04:17 +0200	[thread overview]
Message-ID: <577291F1.8060105@sigmadesigns.com> (raw)
In-Reply-To: <57726DE0.8090308@arm.com>

On 28/06/2016 14:30, Robin Murphy wrote:

> On 28/06/16 12:59, Marc Gonzalez wrote:
>
>> +#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.

  reply	other threads:[~2016-06-28 15:04 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-28 11:55 [PATCH v3 0/2] [for arm-soc] mach-tango updates for v4.8 Marc Gonzalez
2016-06-28 11:59 ` [PATCH v3 1/2] ARM: tango: add HOTPLUG_CPU support Marc Gonzalez
2016-06-28 11:59   ` Marc Gonzalez
2016-06-28 12:30   ` Robin Murphy
2016-06-28 12:30     ` Robin Murphy
2016-06-28 15:04     ` Marc Gonzalez [this message]
2016-06-28 15:04       ` Marc Gonzalez
2016-06-28 15:16       ` Robin Murphy
2016-06-28 15:16         ` Robin Murphy
2016-06-29 12:28         ` Marc Gonzalez
2016-06-29 12:28           ` Marc Gonzalez
2016-06-29 12:21   ` [PATCH v4 " Marc Gonzalez
2016-06-29 12:21     ` Marc Gonzalez
2016-06-28 12:01 ` [PATCH v3 2/2] Update ARM/TANGO section Marc Gonzalez
2016-07-05 12:32 ` [PATCH v3 0/2] [for arm-soc] mach-tango updates for v4.8 Mason
2016-07-06  3:57   ` Olof Johansson
2016-07-06 20:04     ` Arnd Bergmann
2016-07-07  4:45       ` Olof Johansson
2016-07-07  8:50         ` Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=577291F1.8060105@sigmadesigns.com \
    --to=marc_gonzalez@sigmadesigns.com \
    --cc=arm@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robin.murphy@arm.com \
    --cc=sf84@laposte.net \
    --cc=slash.tmp@free.fr \
    --cc=thibaud_cornic@sigmadesigns.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.