LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [GIT PULL] : cpuidle-big.little fix when mcpm is not available
@ 2015-01-25 14:39 Daniel Lezcano
2015-01-25 20:53 ` [PATCH] drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is unavailable Daniel Lezcano
2015-01-26 0:30 ` [GIT PULL] : cpuidle-big.little fix when mcpm is not available Rafael J. Wysocki
0 siblings, 2 replies; 3+ messages in thread
From: Daniel Lezcano @ 2015-01-25 14:39 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Sudeep Holla, lorenzo Pieralisi, Linux PM mailing list,
Linux Kernel Mailing List
Hi Rafael,
This pull request has a single patch which is a fix for the
cpuidle-big.little driver. If the mcpm backend is not available because
the CCI is not defined in the DT, the cpuidle driver will
unconditionally assume it is and call the mcpm functions leading to a
kernel WARNING.
Sudeep Holla fixed that by checking at the init time the mcpm is
available before initializing the deeper idle states.
Thanks
-- Daniel
The following changes since commit ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc:
Linux 3.19-rc5 (2015-01-18 18:02:20 +1200)
are available in the git repository at:
http://git.linaro.org/people/daniel.lezcano/linux.git cpuidle/3.20
for you to fetch changes up to 194fe6f28e2819d3f50fbed24c3b72f21501dbfa:
drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is
unavailable (2015-01-23 15:05:48 +0100)
----------------------------------------------------------------
Sudeep Holla (1):
drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is
unavailable
drivers/cpuidle/cpuidle-big_little.c | 4 ++++
1 file changed, 4 insertions(+)
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is unavailable
2015-01-25 14:39 [GIT PULL] : cpuidle-big.little fix when mcpm is not available Daniel Lezcano
@ 2015-01-25 20:53 ` Daniel Lezcano
2015-01-26 0:30 ` [GIT PULL] : cpuidle-big.little fix when mcpm is not available Rafael J. Wysocki
1 sibling, 0 replies; 3+ messages in thread
From: Daniel Lezcano @ 2015-01-25 20:53 UTC (permalink / raw)
To: rjw; +Cc: Sudeep.Holla, Lorenzo.Pieralisi, linux-pm, linux-kernel
From: Sudeep Holla <sudeep.holla@arm.com>
If big.LITTLE driver is initialized even when MCPM is unavailable,
we get the below warning the first time cpu tries to enter deeper
C-states.
------------[ cut here ]------------
WARNING: CPU: 4 PID: 0 at kernel/arch/arm/common/mcpm_entry.c:130 mcpm_cpu_suspend+0x6d/0x74()
Modules linked in:
CPU: 4 PID: 0 Comm: swapper/4 Not tainted 3.19.0-rc3-00007-gaf5a2cb1ad5c-dirty #11
Hardware name: ARM-Versatile Express
[<c0013fa5>] (unwind_backtrace) from [<c001084d>] (show_stack+0x11/0x14)
[<c001084d>] (show_stack) from [<c04fe7f1>] (dump_stack+0x6d/0x78)
[<c04fe7f1>] (dump_stack) from [<c0020645>] (warn_slowpath_common+0x69/0x90)
[<c0020645>] (warn_slowpath_common) from [<c00206db>] (warn_slowpath_null+0x17/0x1c)
[<c00206db>] (warn_slowpath_null) from [<c001cbdd>] (mcpm_cpu_suspend+0x6d/0x74)
[<c001cbdd>] (mcpm_cpu_suspend) from [<c03c6919>] (bl_powerdown_finisher+0x21/0x24)
[<c03c6919>] (bl_powerdown_finisher) from [<c001218d>] (cpu_suspend_abort+0x1/0x14)
[<c001218d>] (cpu_suspend_abort) from [<00000000>] ( (null))
---[ end trace d098e3fd00000008 ]---
This patch fixes the issue by checking for the availability of MCPM
before initializing the big.LITTLE cpuidle driver
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
drivers/cpuidle/cpuidle-big_little.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/cpuidle/cpuidle-big_little.c b/drivers/cpuidle/cpuidle-big_little.c
index e3e225f..40c34fa 100644
--- a/drivers/cpuidle/cpuidle-big_little.c
+++ b/drivers/cpuidle/cpuidle-big_little.c
@@ -182,6 +182,10 @@ static int __init bl_idle_init(void)
*/
if (!of_match_node(compatible_machine_match, root))
return -ENODEV;
+
+ if (!mcpm_is_available())
+ return -EUNATCH;
+
/*
* For now the differentiation between little and big cores
* is based on the part number. A7 cores are considered little
--
1.9.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [GIT PULL] : cpuidle-big.little fix when mcpm is not available
2015-01-25 14:39 [GIT PULL] : cpuidle-big.little fix when mcpm is not available Daniel Lezcano
2015-01-25 20:53 ` [PATCH] drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is unavailable Daniel Lezcano
@ 2015-01-26 0:30 ` Rafael J. Wysocki
1 sibling, 0 replies; 3+ messages in thread
From: Rafael J. Wysocki @ 2015-01-26 0:30 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Sudeep Holla, lorenzo Pieralisi, Linux PM mailing list,
Linux Kernel Mailing List
On Sunday, January 25, 2015 03:39:40 PM Daniel Lezcano wrote:
> Hi Rafael,
>
> This pull request has a single patch which is a fix for the
> cpuidle-big.little driver. If the mcpm backend is not available because
> the CCI is not defined in the DT, the cpuidle driver will
> unconditionally assume it is and call the mcpm functions leading to a
> kernel WARNING.
>
> Sudeep Holla fixed that by checking at the init time the mcpm is
> available before initializing the deeper idle states.
>
> Thanks
> -- Daniel
>
> The following changes since commit ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc:
>
> Linux 3.19-rc5 (2015-01-18 18:02:20 +1200)
>
> are available in the git repository at:
>
> http://git.linaro.org/people/daniel.lezcano/linux.git cpuidle/3.20
>
> for you to fetch changes up to 194fe6f28e2819d3f50fbed24c3b72f21501dbfa:
>
> drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is
> unavailable (2015-01-23 15:05:48 +0100)
>
> ----------------------------------------------------------------
> Sudeep Holla (1):
> drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is
> unavailable
>
> drivers/cpuidle/cpuidle-big_little.c | 4 ++++
> 1 file changed, 4 insertions(+)
Pulled, thanks!
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-26 0:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-25 14:39 [GIT PULL] : cpuidle-big.little fix when mcpm is not available Daniel Lezcano
2015-01-25 20:53 ` [PATCH] drivers: cpuidle: Don't initialize big.LITTLE driver if MCPM is unavailable Daniel Lezcano
2015-01-26 0:30 ` [GIT PULL] : cpuidle-big.little fix when mcpm is not available Rafael J. Wysocki
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).