All of lore.kernel.org
 help / color / mirror / Atom feed
From: ming.lei@canonical.com (Ming Lei)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: annotate irq off before schedule
Date: Wed,  9 Dec 2015 15:23:49 +0800	[thread overview]
Message-ID: <1449645829-1070-1-git-send-email-ming.lei@canonical.com> (raw)

Before schedule in ret_to_user(), irq has been disabled,
so irq off should be annotated for killing the following
lockdep warning during kernel booting:

[   13.762775] DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled)
[   13.768065] ------------[ cut here ]------------
[   13.772843] WARNING: at kernel/locking/lockdep.c:3519
[   13.777866] Modules linked in:
[   13.782398] CPU: 1 PID: 1 Comm: init Not tainted 4.4.0-rc4+ #54
[   13.788287] Hardware name: AppliedMicro Mustang/Mustang, BIOS 2.0.0 Oct 23 2015
[   13.795557] task: fffffe07c0440000 ti: fffffe07c0480000 task.ti: fffffe07c0480000
[   13.803005] PC is at check_flags.part.35+0x144/0x19c
[   13.807943] LR is at check_flags.part.35+0x144/0x19c
[   13.812882] pc : [<fffffe000011479c>] lr : [<fffffe000011479c>] pstate: 800001c5
[   13.820238] sp : fffffe07c0483d90
[   13.823534] x29: fffffe07c0483d90 x28: fffffe07c0480000
[   13.828839] x27: fffffe0000cc2000 x26: fffffe0000861bd0
[   13.834144] x25: 0000000000000001 x24: 000003ffe3504d50
[   13.839450] x23: 0000000000000000 x22: fffffe0000db5000
[   13.844755] x21: fffffe0000aba788 x20: fffffe0000ceaa98
[   13.850059] x19: fffffe0001b7e000 x18: 0000000000000000
[   13.855364] x17: 000003ffb2ba4440 x16: 000003ffb2bbd000
[   13.860670] x15: 000003ffb27241a0 x14: 0ffffffffffffffd
[   13.865975] x13: 0000000000000008 x12: 0101010101010101
[   13.871280] x11: 7f7f7f7f7f7f7f7f x10: fefefefefefeff63
[   13.876585] x9 : 000000000000013d x8 : fffffe07c0483ae0
[   13.881889] x7 : fffffe07c0440000 x6 : fffffe0000122008
[   13.887196] x5 : 0000000000000000 x4 : fffffe0000cc2000
[   13.892501] x3 : fffffe07c0483c10 x2 : 0000000000000002
[   13.897807] x1 : 0000000000000000 x0 : 000000000000002e
[   13.904593] ---[ end trace 42e2299dc2cf1b7d ]---
[   13.909184] Call trace:
[   13.911618] [<fffffe000011479c>] check_flags.part.35+0x144/0x19c
[   13.917594] [<fffffe00001151a4>] lock_is_held+0x7c/0x88
[   13.922793] [<fffffe000012c514>] rcu_read_lock_sched_held+0xa0/0xac
[   13.929028] [<fffffe0000132fe4>] rcu_note_context_switch+0x28c/0x56c
[   13.935350] [<fffffe0000861020>] __schedule+0x4c/0xa28
[   13.940462] [<fffffe0000861bd0>] schedule+0x40/0xa0
[   13.945315] [<fffffe0000093bb0>] ret_to_user+0x0/0x24
[   13.950339] possible reason: unannotated irqs-off.
[   13.955104] irq event stamp: 2488963
[   13.958660] hardirqs last  enabled at (2488963): [<fffffe0000093a98>] el0_irq_naked+0x1c/0x24
[   13.967151] hardirqs last disabled at (2488962): [<fffffe0000093a84>] el0_irq_naked+0x8/0x24
[   13.975557] softirqs last  enabled at (2488958): [<fffffe00000cb1f4>] __do_softirq+0x308/0x4f8
[   13.984137] softirqs last disabled at (2488935): [<fffffe00000cb6f0>] irq_exit+0x9c/0xec

Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
 arch/arm64/kernel/entry.S | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
index 7ed3d75..4769190 100644
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -634,6 +634,9 @@ work_pending:
 	bl	do_notify_resume
 	b	ret_to_user
 work_resched:
+#ifdef CONFIG_TRACE_IRQFLAGS
+	bl	trace_hardirqs_off
+#endif
 	bl	schedule
 
 /*
-- 
1.9.1

             reply	other threads:[~2015-12-09  7:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-09  7:23 Ming Lei [this message]
2015-12-09 10:55 ` [PATCH] arm64: annotate irq off before schedule Catalin Marinas
2015-12-10  6:04   ` Ming Lei
2015-12-10 10:31     ` Will Deacon

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=1449645829-1070-1-git-send-email-ming.lei@canonical.com \
    --to=ming.lei@canonical.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.