Messages in this thread | | | Date | Fri, 24 Oct 2014 17:58:05 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] sched: reset sched_entity depth on changing parent |
| |
On Fri, Oct 24, 2014 at 11:07:46AM -0400, Burke Libbey wrote: > From 2014-02-15: https://lkml.org/lkml/2014/2/15/217 > > This issue was reported and patched, but it still occurs in some situations on > newer kernel versions. > > [2249353.328452] BUG: unable to handle kernel NULL pointer dereference at 0000000000000150 > [2249353.336528] IP: [<ffffffff810b1cf7>] check_preempt_wakeup+0xe7/0x210 > > se.parent gets out of sync with se.depth, causing a panic when the algorithm in > find_matching_se assumes they are correct. This patch forces se.depth to be > updated every time se.parent is, so they can no longer become desync'd. > > CC: Ingo Molnar <mingo@kernel.org> > CC: Peter Zijlstra <peterz@infradead.org> > Signed-off-by: Burke Libbey <burke.libbey@shopify.com> > --- > > I haven't been able to isolate the problem. Though I'm pretty confident this > fixes the issue I've been having, I have not been able to prove it.
So this isn't correct, switching rq should not change depth. I suspect you're just papering over the issue by frequently resetting the value, which simply narrows the race window.
| |