Messages in this thread | | | Date | Mon, 25 Jun 2012 20:49:53 +0200 | From | Thomas Lange <> | Subject | Re: [BUG] sched: clock wrap bug in 2.6.35-stable kills scheduling |
| |
On 2012-06-25 12:38, Peter Zijlstra wrote: > On Mon, 2012-06-25 at 11:45 +0200, Peter Zijlstra wrote: >> On Sun, 2012-06-24 at 19:32 +0200, Thomas Lange wrote: >>> Bug was introduced in 2.6.35.12 and is still present in linux-2.6.35.y HEAD. >> >> Ok, so nobody cares about that.. what does something recent like 3.5-rc4 >> do?
I haven't tested yet. I will try to find the time to do that.
>> If that's fixed, find the patch that fixes it. If not, we'll have a >> look.
Commit fe44d62 removed the if-clause that caused the problem. Most likely, this solved the problem.
> > > If anything, I think something like the below ought to cure things.
I agree. Either we make sure that sched_clock() never wraps or if it wraps, that it wraps shortly after boot to catch problems early.
> > --- > kernel/sched/clock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/sched/clock.c b/kernel/sched/clock.c > index c685e31..a1a128a 100644 > --- a/kernel/sched/clock.c > +++ b/kernel/sched/clock.c > @@ -74,7 +74,7 @@ > */ > unsigned long long __attribute__((weak)) sched_clock(void) > { > - return (unsigned long long)(jiffies - INITIAL_JIFFIES) > + return (unsigned long long)(get_jiffies_64() - INITIAL_JIFFIES) > * (NSEC_PER_SEC / HZ); > } > EXPORT_SYMBOL_GPL(sched_clock);
/Thomas
| |