From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
To: arm@kernel.org, linux-arm-kernel@lists.infradead.org
Subject: arm64: WARN_ON_ONCE issue when resuming from hibernation
Date: Fri, 07 Dec 2018 10:40:50 +0900 [thread overview]
Message-ID: <20181207104049.5F64.4A936039@socionext.com> (raw)
Hello all,
I found that a WARN_ON_ONCE dump occured in the resuming sequence from
hibernation on arm64 SoC (I use UniPhier LD20 environment).
...
Disabling non-boot CPUs ...
CPU1: shutdown
psci: CPU1 killed.
CPU2: shutdown
psci: CPU2 killed.
CPU3: shutdown
psci: CPU3 killed.
WARNING: CPU: 0 PID: 1 at ../kernel/smp.c:416 smp_call_function_many+0xd4/0x350
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.20.0-rc4 #1
...
I show the result of reading the code, however,
I'm not sure that this issue occurs in other arm64 SoC.
In the resuming sequence, once all CPUs are stopped and local IRQs
are disabled [1].
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/power/hibernate.c?h=v4.20-rc4#n450
In case of arm64, flush_icache_range() will be called after that.
This calls kick_all_cpus_sync() to sync all CPUs with IPI, and
since local IRQs are disabled, WARN_ON_ONCE() will be called in
smp_call_function_many() [2].
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/smp.c?h=v4.20-rc4#n415
The following tree shows a part of the callgraph.
resume_target_kernel()
+- local_irq_disable()
+- swsusp_arch_resume() /* for arm64 */
+- create_safe_exec_page() /* for arm64 */
+- flush_icache_range() /* for arm64 */
+- kick_all_cpus_sync()
+- smp_call_function()
+- smp_call_function_many()
+- WARN_ON_ONCE(irq_disabled())
What is the possible way to solve this issue?
Thank you,
---
Best Regards,
Kunihiko Hayashi
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2018-12-07 1:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-07 1:40 Kunihiko Hayashi [this message]
2018-12-07 10:47 ` arm64: WARN_ON_ONCE issue when resuming from hibernation Will Deacon
2018-12-07 12:02 ` James Morse
2018-12-07 12:24 ` Kunihiko Hayashi
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=20181207104049.5F64.4A936039@socionext.com \
--to=hayashi.kunihiko@socionext.com \
--cc=arm@kernel.org \
--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;
as well as URLs for NNTP newsgroup(s).