lkml.org 
[lkml]   [2008]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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



\
 
 \ /
  Last update: 2008-06-06 01:55    [W:0.061 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site