From: Shawn Guo <shawn.guo@linaro.org>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Bill Huang <bilhuang@nvidia.com>,
"'linux-tegra@vger.kernel.org'" <linux-tegra@vger.kernel.org>,
"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
"'linux-arm-kernel@lists.infradead.org'"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: Shutdown problem in SMP system happened on Tegra20
Date: Sat, 25 Aug 2012 18:33:01 +0800 [thread overview]
Message-ID: <20120825103257.GN31998@S2101-09.ap.freescale.net> (raw)
In-Reply-To: <20120825075221.GH18957@n2100.arm.linux.org.uk>
On Sat, Aug 25, 2012 at 08:52:21AM +0100, Russell King - ARM Linux wrote:
> On Sat, Aug 25, 2012 at 03:36:27PM +0800, Shawn Guo wrote:
> > On Fri, Aug 24, 2012 at 07:21:33PM +0100, Russell King - ARM Linux wrote:
> > > Why not just ensure that CONFIG_PM_SLEEP_SMP is enabled if your platform
> > > requires that the lowest CPU number be the CPU dealing with reboot?
> >
> > I have CONFIG_PM_SLEEP_SMP enabled for imx6q, but still see the imx6q
> > restart hook running on cpu1 than cpu0. It seems that
> > disable_nonboot_cpus is only called in kernel_power_off but never
> > kernel_restart. We should probably patch kernel_restart or
> > machine_restart to have disable_nonboot_cpus called?
>
> Remember that this path gets called from IRQ context which makes calling
> functions which sleep very dodgy.
I'm so familiar with the code/context. Are you saying disable_nonboot_cpus
sleeps and kernel_power_off never gets called from IRQ context?
I tested the code change below on kernel_restart with
CONFIG_DEBUG_ATOMIC_SLEEP enabled. It fixes imx6q restart issue (with
no change on cpu_relax) while no sleep-inside-atomic-section warning
is seen.
Regards,
Shawn
diff --git a/kernel/sys.c b/kernel/sys.c
index 241507f..0359328 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -373,6 +373,7 @@ void kernel_restart(char *cmd)
else
printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd);
kmsg_dump(KMSG_DUMP_RESTART);
+ disable_nonboot_cpus();
machine_restart(cmd);
}
EXPORT_SYMBOL_GPL(kernel_restart);
prev parent reply other threads:[~2012-08-25 10:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-24 8:23 Bill Huang
2012-08-24 18:21 ` Russell King - ARM Linux
2012-08-25 0:00 ` Bill Huang
2012-08-25 7:17 ` Russell King - ARM Linux
2012-08-27 5:43 ` Bill Huang
2012-08-25 7:36 ` Shawn Guo
2012-08-25 7:52 ` Russell King - ARM Linux
2012-08-25 10:33 ` Shawn Guo [this message]
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=20120825103257.GN31998@S2101-09.ap.freescale.net \
--to=shawn.guo@linaro.org \
--cc=bilhuang@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
/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
all inboxes | Powered by JetHome®