Messages in this thread | | | Date | Thu, 05 Jun 2008 20:53:13 -0300 | From | Kevin Winchester <> | Subject | Re: [X86][BISECTED] WARNING: at kernel/lockdep.c:2680 |
| |
Ingo Molnar wrote: > * Sitsofe Wheeler <sitsofe@yahoo.com> wrote: > >> OK I've managed to bisect this down to commit >> [c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4] (sched: do not trace >> sched_clock): >> >> commit c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4 >> Author: Ingo Molnar <mingo@elte.hu> >> Date: Mon May 12 21:21:14 2008 +0200 >> >> sched: do not trace sched_clock >> >> The tracer uses sched_clock, so do not trace it. >> >> Signed-off-by: Ingo Molnar <mingo@elte.hu> >> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> >> >> Reverting this made the lockdep warning go away. Here is the bisection log: > > ah, good find! Does the patch below (instead of the full revert) fix it > as well? I've queued the fix up into tip/tracing/ftrace. > > 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; > } >
I didn't manage to get through a bisection run for the warning - thanks to Sitsofe for doing it. The patch does eliminate the warning for me.
Thanks,
-- Kevin Winchester
| |