From: Stephen Boyd <sboyd@codeaurora.org>
To: Lina Iyer <lina.iyer@linaro.org>
Cc: rjw@rjwysocki.net, ulf.hansson@linaro.org, khilman@linaro.org,
geert@linux-m68k.org, k.kozlowski@samsung.com,
linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
msivasub@codeaurora.org, agross@codeaurora.org,
Catalin Marinas <catalin.marinas@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Subject: Re: [PATCH 9/9] ARM: smp: Add runtime PM support for CPU hotplug
Date: Wed, 12 Aug 2015 16:47:56 -0700 [thread overview]
Message-ID: <20150812234756.GO26614@codeaurora.org> (raw)
In-Reply-To: <1438731339-58317-10-git-send-email-lina.iyer@linaro.org>
On 08/04, Lina Iyer wrote:
> @@ -137,7 +138,6 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle)
> pr_err("CPU%u: failed to boot: %d\n", cpu, ret);
> }
>
> -
Remove noise please.
> memset(&secondary_data, 0, sizeof(secondary_data));
> return ret;
> }
> @@ -205,6 +205,9 @@ int __cpu_disable(void)
> unsigned int cpu = smp_processor_id();
> int ret;
>
> + /* We dont need the CPU device anymore. */
> + pm_runtime_put_sync(get_cpu_device(cpu));
This is all very generic. Any reason it can't be done at a higher
level for all architectures? It certainly seems like
cpu_startup_entry() could be modifed to do the
pm_runtime_get_sync().
> +
> ret = platform_cpu_disable(cpu);
> if (ret)
> return ret;
> @@ -272,6 +275,13 @@ void __ref cpu_die(void)
> {
> unsigned int cpu = smp_processor_id();
>
> + /*
> + * We dont need the CPU device anymore.
> + * Lets do this before IRQs are disabled to allow
> + * runtime PM to suspend the domain as well.
> + */
> + pm_runtime_put_sync(get_cpu_device(cpu));
The two put calls is confusing. __cpu_disable() is called on the
CPU that's dying, and cpu_die() is called on the CPU that's doing
the takedown. That would be two decrements but only one increment
in secondary_start_kernel()? How is this properly balanced?
> +
> idle_task_exit();
>
> local_irq_disable();
> @@ -401,6 +412,11 @@ asmlinkage void secondary_start_kernel(void)
> local_irq_enable();
> local_fiq_enable();
>
> + /* We are running, enable runtime PM for the CPU. */
> + cpu_dev = get_cpu_device(cpu);
> + if (cpu_dev)
> + pm_runtime_get_sync(cpu_dev);
Also, where would the dev->power.irq_safe flag be set if we
aren't using the genpd DT stuff? It looks like we're going to
start causing warnings on devices that don't have the DT magic.
Please add a hotplug test with some device that isn't using this
genpd code to catch problems. Also please turn on lockdep and RCU
lockdep, touching the idle code like this
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2015-08-12 23:47 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 23:35 [PATCH 0/9] ARM: PM / Domains: Generic PM domains for CPUs/Clusters Lina Iyer
2015-08-04 23:35 ` [PATCH 1/9] PM / Domains: Allocate memory outside domain locks Lina Iyer
2015-08-12 19:47 ` Kevin Hilman
2015-09-01 12:40 ` Ulf Hansson
2015-08-04 23:35 ` [PATCH 2/9] PM / Domains: Remove dev->driver check for runtime PM Lina Iyer
2015-08-12 19:50 ` Kevin Hilman
2015-08-13 8:57 ` Geert Uytterhoeven
2015-08-14 3:40 ` Kevin Hilman
2015-08-14 7:24 ` Geert Uytterhoeven
2015-08-14 17:19 ` Kevin Hilman
2015-08-16 9:24 ` Geert Uytterhoeven
2015-08-21 21:04 ` Kevin Hilman
2015-08-24 19:50 ` Lina Iyer
2015-08-25 9:24 ` Geert Uytterhoeven
2015-09-01 13:28 ` Ulf Hansson
2015-08-04 23:35 ` [PATCH 3/9] PM / Domains: Support IRQ safe PM domains Lina Iyer
2015-08-12 20:12 ` Kevin Hilman
2015-08-12 20:47 ` Lina Iyer
2015-08-12 23:03 ` Stephen Boyd
2015-08-04 23:35 ` [PATCH 4/9] kernel/cpu_pm: fix cpu_cluster_pm_exit comment Lina Iyer
2015-08-12 20:13 ` Kevin Hilman
2015-08-04 23:35 ` [PATCH 5/9] ARM: common: Introduce PM domains for CPUs/clusters Lina Iyer
2015-08-06 3:14 ` Rob Herring
2015-08-07 23:45 ` Kevin Hilman
2015-08-11 13:07 ` Geert Uytterhoeven
2015-08-11 15:58 ` Lina Iyer
2015-08-11 20:12 ` Rob Herring
2015-08-11 22:29 ` Lina Iyer
2015-08-12 19:00 ` [PATCH v2 1/2] " Lina Iyer
2015-08-13 17:29 ` Rob Herring
2015-08-13 20:12 ` Lina Iyer
2015-08-13 22:01 ` Rob Herring
2015-08-14 14:38 ` Lina Iyer
2015-08-12 19:00 ` [PATCH v2 2/2] ARM: domain: Add platform handlers for CPU PM domains Lina Iyer
2015-08-13 15:01 ` [PATCH 5/9] ARM: common: Introduce PM domains for CPUs/clusters Lorenzo Pieralisi
2015-08-13 15:45 ` Lina Iyer
2015-08-13 15:52 ` Lorenzo Pieralisi
2015-08-13 16:22 ` Lina Iyer
2015-08-14 3:51 ` Kevin Hilman
2015-08-14 4:02 ` Lina Iyer
2015-08-14 15:49 ` Lorenzo Pieralisi
2015-08-14 19:11 ` Kevin Hilman
2015-08-13 17:26 ` Sudeep Holla
2015-08-13 19:27 ` Lina Iyer
2015-08-14 9:52 ` Sudeep Holla
2015-08-04 23:35 ` [PATCH 6/9] ARM: domain: Add platform handlers for CPU PM domains Lina Iyer
2015-08-05 14:45 ` Rob Herring
2015-08-05 16:38 ` Lina Iyer
2015-08-05 19:23 ` Lina Iyer
2015-08-06 3:01 ` Rob Herring
2015-08-10 15:36 ` Lina Iyer
2015-08-04 23:35 ` [PATCH 7/9] ARM: cpuidle: Add runtime PM support for CPU idle Lina Iyer
2015-08-04 23:35 ` [PATCH 8/9] ARM64: smp: Add runtime PM support for CPU hotplug Lina Iyer
2015-08-04 23:35 ` [PATCH 9/9] ARM: " Lina Iyer
2015-08-12 20:28 ` Kevin Hilman
2015-08-12 20:43 ` Lina Iyer
2015-08-14 18:59 ` Kevin Hilman
2015-08-12 23:47 ` Stephen Boyd [this message]
2015-08-13 16:00 ` Lina Iyer
2015-08-13 19:18 ` Stephen Boyd
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=20150812234756.GO26614@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=agross@codeaurora.org \
--cc=catalin.marinas@arm.com \
--cc=geert@linux-m68k.org \
--cc=k.kozlowski@samsung.com \
--cc=khilman@linaro.org \
--cc=lina.iyer@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=msivasub@codeaurora.org \
--cc=rjw@rjwysocki.net \
--cc=ulf.hansson@linaro.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;
as well as URLs for NNTP newsgroup(s).