From: Simon Horman <horms@verge.net.au>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2] ARM: smp: Only expose /sys/.../cpuX/online if hotpluggable
Date: Fri, 13 Feb 2015 20:20:04 +0000 [thread overview]
Message-ID: <20150213202002.GB29727@verge.net.au> (raw)
In-Reply-To: <1423850799-4028-1-git-send-email-sboyd@codeaurora.org>
Hi Stephen,
On Fri, Feb 13, 2015 at 10:06:39AM -0800, Stephen Boyd wrote:
> Writes to /sys/.../cpuX/online fail if we determine the platform
> doesn't support hotplug for that CPU. Furthermore, if the cpu_die
> op isn't specified the system hangs when we try to offline a CPU
> and it comes right back online unexpectedly. Let's figure this
> stuff out before we make the sysfs nodes so that the online file
> doesn't even exist if it isn't (at least sometimes) possible to
> hotplug the CPU.
>
> We re-purpose the cpu_disable smp op here and rename it to
> cpu_can_disable because all users use the op to indicate if a CPU
> can be hotplugged or not in a static fashion. With PSCI we may
> need to reintroduce the cpu_disable op so that the secure OS can
> be migrated off the CPU we're trying to hotplug. We'll need to
> indicate that all CPUs are hotpluggable in that case but this
> shouldn't be any worse than something like x86 where we indicate
> that all CPUs are hotpluggable but occasionally we can't offline
> a CPU due to check_irq_vectors_for_cpu_disable().
>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Nicolas Pitre <nico@linaro.org>
> Cc: Dave Martin <Dave.Martin@arm.com>
> Cc: Simon Horman <horms@verge.net.au>
> Cc: Magnus Damm <magnus.damm@gmail.com>
> Cc: <linux-sh@vger.kernel.org>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[snip]
> diff --git a/arch/arm/mach-shmobile/platsmp.c b/arch/arm/mach-shmobile/platsmp.c
> index 3923e09e966d..a614cef18db1 100644
> --- a/arch/arm/mach-shmobile/platsmp.c
> +++ b/arch/arm/mach-shmobile/platsmp.c
> @@ -31,8 +31,8 @@ void shmobile_smp_hook(unsigned int cpu, unsigned long fn, unsigned long arg)
> }
>
> #ifdef CONFIG_HOTPLUG_CPU
> -int shmobile_smp_cpu_disable(unsigned int cpu)
> +int shmobile_smp_cpu_can_disable(unsigned int cpu)
> {
> - return 0; /* Hotplug of any CPU is supported */
> + return 1; /* Hotplug of any CPU is supported */
> }
> #endif
> diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c
> index 3f761f839043..b45206f93ddf 100644
> --- a/arch/arm/mach-shmobile/smp-r8a7779.c
> +++ b/arch/arm/mach-shmobile/smp-r8a7779.c
> @@ -124,19 +124,12 @@ static int r8a7779_cpu_kill(unsigned int cpu)
>
> return 0;
> }
> -
> -static int r8a7779_cpu_disable(unsigned int cpu)
> -{
> - /* only CPU1->3 have power domains, do not allow hotplug of CPU0 */
> - return cpu = 0 ? -EPERM : 0;
> -}
> #endif /* CONFIG_HOTPLUG_CPU */
>
> struct smp_operations r8a7779_smp_ops __initdata = {
> .smp_prepare_cpus = r8a7779_smp_prepare_cpus,
> .smp_boot_secondary = r8a7779_boot_secondary,
> #ifdef CONFIG_HOTPLUG_CPU
> - .cpu_disable = r8a7779_cpu_disable,
> .cpu_die = shmobile_smp_scu_cpu_die,
> .cpu_kill = r8a7779_cpu_kill,
> #endif
Its not clear to me why r8a7779_cpu_disable() has been
removed rather than replaced by r8a7779_cpu_can_disable()
next prev parent reply other threads:[~2015-02-13 20:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-13 18:06 [PATCH v2] ARM: smp: Only expose /sys/.../cpuX/online if hotpluggable Stephen Boyd
2015-02-13 20:20 ` Simon Horman [this message]
2015-02-13 20:23 ` Stephen Boyd
2015-02-13 20:54 ` Magnus Damm
2015-02-13 20:59 ` Stephen Boyd
2015-02-13 21:44 ` Magnus Damm
2015-02-13 23:01 ` Russell King - ARM Linux
2015-02-14 0:01 ` Stephen Boyd
2015-02-14 10:01 ` Magnus Damm
2015-02-16 15:29 ` Mark Rutland
2015-02-13 22:58 ` Russell King - ARM Linux
2015-02-13 22:57 ` Russell King - ARM Linux
2015-02-13 23:24 ` Simon Horman
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=20150213202002.GB29727@verge.net.au \
--to=horms@verge.net.au \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox