Messages in this thread Patch in this message | | | From | Itzcak Pechtalt <> | Subject | Race condition in HR timers that cause double insertion and hard lockup -- all latest versions | Date | Tue, 2 Sep 2014 15:45:59 +0000 |
| |
Hi,
I opened a bug in https://bugzilla.kernel.org/show_bug.cgi?id=83601 for this subject with full description. There is also a short fix patch for kernel/hrtimer.c file. Even if this bug occurs rary, however it resolves system hard lockup option.
I suspect that it was targeted by mistake to not active list (timers_realtime-clock@kernel-bugs.osdl.org). Following is the fix patch based on kernel 3.16.1 (just simple): diff -uNr a/kernel/hrtimer.c b/kernel/hrtimer.c --- a/kernel/hrtimer.c 2014-08-31 20:59:52.177452123 +0300 +++ b/kernel/hrtimer.c 2014-08-31 21:02:14.972166540 +0300 @@ -941,7 +941,7 @@ if (!timerqueue_getnext(&base->active)) base->cpu_base->active_bases &= ~(1 << base->index); out: - timer->state = newstate; + timer->state = (newstate | (timer_state & HRTIMER_STATE_CALLBACK)); }
/*
Is there a chance for this patch fix to insert into next kernel release?
Thanks
Itzcak Pechtalt
| |