Messages in this thread Patch in this message | | | Date | Mon, 9 Jun 2008 10:39:52 +0200 | From | Ingo Molnar <> | Subject | Re: lockdep internal warning in linux-next |
| |
* Andrew Morton <akpm@linux-foundation.org> wrote:
> When I boot the 2-way using > http://userweb.kernel.org/~akpm/config-vmm.txt
this is probably the same as the known problem fixed by the patch below.
Ingo
-----------------> Subject: sched: sched_clock() lockdep fix From: Ingo Molnar <mingo@elte.hu> Date: Thu Jun 05 15:04:17 CEST 2008
Sitsofe Wheeler reported a lockdep warning and bisected it down to:
> commit c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4 > Author: Ingo Molnar <mingo@elte.hu> > Date: Mon May 12 21:21:14 2008 +0200 > > sched: do not trace sched_clock
do not use raw irq flags in cpu_clock() as it causes lockdep to lose track of the true state of the IRQ flag.
Reported-and-bisected-by: Sitsofe Wheeler <sitsofe@yahoo.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- kernel/sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux/kernel/sched.c =================================================================== --- linux.orig/kernel/sched.c +++ linux/kernel/sched.c @@ -862,7 +862,7 @@ unsigned long long notrace cpu_clock(int unsigned long long prev_cpu_time, time, delta_time; unsigned long flags; - raw_local_irq_save(flags); + local_irq_save(flags); prev_cpu_time = per_cpu(prev_cpu_time, cpu); time = __cpu_clock(cpu) + per_cpu(time_offset, cpu); delta_time = time-prev_cpu_time; @@ -871,7 +871,7 @@ unsigned long long notrace cpu_clock(int time = __sync_cpu_clock(time, cpu); per_cpu(prev_cpu_time, cpu) = time; } - raw_local_irq_restore(flags); + local_irq_restore(flags); return time; }
| |