Re: [rcu] BUG: unable to handle kernel NULL pointer dereference at 000000da

From: Fengguang Wu
Date: Fri Sep 12 2014 - 20:20:45 EST


On Fri, Sep 12, 2014 at 12:26:59PM -0700, Paul E. McKenney wrote:
> On Fri, Sep 12, 2014 at 02:19:57PM -0500, Christoph Lameter wrote:
> > On Fri, 12 Sep 2014, Paul E. McKenney wrote:
> >
> > > So, I am not seeing this failure in my testing, but my best guess is
> > > that the problem is due to the fact that force_quiescent_state() is
> > > sometimes invoked with preemption enabled, which breaks __this_cpu_read()
> > > though perhaps with very low probability. The common-case call (from
> > > __call_rcu_core()) -does- have preemption disabled, in fact, it has
> > > interrupts disabled.
> >
> > How could __this_cpu_read() break in a way that would make a difference to
> > the code? There was no disabling/enabling of preemption before the patch
> > and there is nothing like that after the patch. If there was a race then
> > it still exists. The modification certainly cannot create a race.
>
> Excellent question. Yet Fengguang's tests show breakage.
>
> Fengguang, any possibility of a false positive here?

Yes, it is possible. I find the first bad commit and its parent
commit's kernels are built in 2 different machines which might
cause subtle changes. I'll redo the bisect.

Thanks,
Fengguang
--
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/