Re: [X86][BISECTED] WARNING: at kernel/lockdep.c:2680

From: Kevin Winchester
Date: Thu Jun 05 2008 - 19:53:34 EST


Ingo Molnar wrote:
* Sitsofe Wheeler <sitsofe@xxxxxxxxx> wrote:

OK I've managed to bisect this down to commit [c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4] (sched: do not trace sched_clock):

commit c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4
Author: Ingo Molnar <mingo@xxxxxxx>
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@xxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

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@xxxxxxx>
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@xxxxxxx>
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@xxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/