From: Ingo Molnar <mingo@elte.hu>
To: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Steven Rostedt <srostedt@redhat.com>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: -tip: WARNING: at kernel/lockdep.c:2738
Date: Sun, 29 Jun 2008 15:05:54 +0200 [thread overview]
Message-ID: <20080629130554.GA16703@elte.hu> (raw)
In-Reply-To: <19f34abd0806290532k1b176d97k96f7c5bb2bb9e830@mail.gmail.com>
* Vegard Nossum <vegard.nossum@gmail.com> wrote:
> Hi,
>
> I just got this on the latest tip/master shortly after finishing initcalls:
>
> ------------[ cut here ]------------
> WARNING: at kernel/lockdep.c:2738 check_flags+0x142/0x160()
> Pid: 5, comm: watchdog/0 Not tainted 2.6.26-rc8-tip-00206-g3248a70-dirty #49
> [<c0139684>] warn_on_slowpath+0x54/0x70
> [<c015be00>] ? trace_hardirqs_off_caller+0x40/0xe0
> [<c010a7c5>] ? native_sched_clock+0xb5/0x110
> [<c018076e>] ? ftrace_record_ip+0x12e/0x240
> [<c05ab8c8>] ? _spin_unlock_irqrestore+0x48/0x80
> [<c029ffd3>] ? debug_locks_off+0x3/0x50
> [<c018076e>] ? ftrace_record_ip+0x12e/0x240
> [<c0104f6b>] ? mcount_call+0x5/0xa
> [<c015b322>] check_flags+0x142/0x160
> [<c015f6e9>] lock_acquire+0x59/0xd0
> [<c01769f1>] ? watchdog+0xb1/0x1e0
> [<c05ab2fd>] _read_lock+0x3d/0x70
> [<c01769f1>] ? watchdog+0xb1/0x1e0
> [<c01769f1>] watchdog+0xb1/0x1e0
> [<c05ab8c8>] ? _spin_unlock_irqrestore+0x48/0x80
> [<c012bae9>] ? complete+0x49/0x60
> [<c0176940>] ? watchdog+0x0/0x1e0
> [<c014e637>] kthread+0x47/0x80
> [<c014e5f0>] ? kthread+0x0/0x80
> [<c0104f53>] kernel_thread_helper+0x7/0x10
> =======================
> ---[ end trace 8e23f95b45fa05f7 ]---
> possible reason: unannotated irqs-on.
> irq event stamp: 18
> hardirqs last enabled at (17): [<c015e02b>] trace_hardirqs_on+0xb/0x10
> hardirqs last disabled at (18): [<c015beab>] trace_hardirqs_off+0xb/0x10
> softirqs last enabled at (0): [<c0137cd8>] copy_process+0x268/0x10b0
> softirqs last disabled at (0): [<00000000>] 0x0
>
> I hope this wasn't caused by any of my patches :-S
>
> $ addr2line -e vmlinux -i c01769f1
> kernel/softlockup.c:232
> kernel/softlockup.c:271
>
> It seems that Andrew reported this too,
> http://lkml.org/lkml/2008/6/9/41, but I already have the fix,
>
> commit 040ec23d07f95285e9777a85cda29cb339a3065b
> Author: Ingo Molnar <mingo@elte.hu>
> Date: Mon Jun 9 01:45:29 2008 -0700
>
> sched: sched_clock() lockdep fix
>
> so it can't be the same one.
>
> (It seems to be something ftrace-related, adding Steven to Cc.)
perhaps caused by this one:
| commit 76a2a6ee8a0660a29127f05989ac59ae1ce865fa
| Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
| Date: Fri Jun 27 13:41:15 2008 +0200
|
| sched: sched_clock_cpu() based cpu_clock()
?
Does the patch below (or the tip/master i just pushed out) fix it?
Ingo
------------->
commit 2d452c9b10caeec455eb5e56a0ef4ed485178213
Author: Ingo Molnar <mingo@elte.hu>
Date: Sun Jun 29 15:01:59 2008 +0200
sched: sched_clock_cpu() based cpu_clock(), lockdep fix
Vegard Nossum reported:
> WARNING: at kernel/lockdep.c:2738 check_flags+0x142/0x160()
which happens due to:
unsigned long long cpu_clock(int cpu)
{
unsigned long long clock;
unsigned long flags;
raw_local_irq_save(flags);
as lower level functions can take locks, we must not do that, use
proper lockdep-annotated irq save/restore.
Reported-by: Vegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c
index ed5a8c4..60094e2 100644
--- a/kernel/sched_clock.c
+++ b/kernel/sched_clock.c
@@ -250,9 +250,9 @@ unsigned long long cpu_clock(int cpu)
unsigned long long clock;
unsigned long flags;
- raw_local_irq_save(flags);
+ local_irq_save(flags);
clock = sched_clock_cpu(cpu);
- raw_local_irq_restore(flags);
+ local_irq_restore(flags);
return clock;
}
next prev parent reply other threads:[~2008-06-29 13:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-29 12:32 -tip: WARNING: at kernel/lockdep.c:2738 Vegard Nossum
2008-06-29 13:05 ` Ingo Molnar [this message]
2008-06-29 13:51 ` Vegard Nossum
2008-06-29 14:43 ` Eduard - Gabriel Munteanu
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=20080629130554.GA16703@elte.hu \
--to=mingo@elte.hu \
--cc=a.p.zijlstra@chello.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=srostedt@redhat.com \
--cc=vegard.nossum@gmail.com \
--cc=x86@kernel.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.