Re: [PATCH RFC tip/core/rcu 38/41] rcu: Rework detection of use ofRCU by offline CPUs

From: Josh Triplett
Date: Fri Feb 03 2012 - 04:18:17 EST


On Thu, Feb 02, 2012 at 10:31:22AM -0800, Paul E. McKenney wrote:
> On Wed, Feb 01, 2012 at 10:11:06PM -0800, Josh Triplett wrote:
> > On Wed, Feb 01, 2012 at 11:41:56AM -0800, Paul E. McKenney wrote:
> > > From: "Paul E. McKenney" <paul.mckenney@xxxxxxxxxx>
> > >
> > > Because newly offlined CPUs continue executing after completing the
> > > CPU_DYING notifiers, they legitimately enter the scheduler and use
> > > RCU while appearing to be offline. This calls for a more sophisticated
> > > approach as follows:
> > >
> > > 1. RCU marks the CPU online during the CPU_UP_PREPARE phase.
> > >
> > > 2. RCU marks the CPU offline during the CPU_DEAD phase.
> > >
> > > 3. Diagnostics regarding use of read-side RCU by offline CPUs use
> > > RCU's accounting rather than the cpu_online_map. (Note that
> > > __call_rcu() still uses cpu_online_map to detect illegal
> > > invocations within CPU_DYING notifiers.)
> > >
> > > 4. Offline CPUs are prevented from hanging the system by
> > > force_quiescent_state(), which pays attention to cpu_online_map.
> > > Some additional work (in a later commit) will be needed to
> > > guarantee that force_quiescent_state() waits a full jiffy before
> > > assuming that a CPU is offline, for example, when called from
> > > idle entry.
> > >
> > > This approach avoids the false positives encountered when attempting to
> > > use more exact classification of CPU online/offline state.
> >
> > Doesn't this fix need to happen *before* the earlier patches in this
> > series that add splats for RCU usage while offline? Otherwise,
> > bisection can hit those splats.
>
> If someone actually does hit the splats during a real bisection, I will
> buy you the beverage of your choice. ;-)

Funny, but while the likelihood of any particular bug getting hit during
bisection remains relatively low simply due to the chance of hitting
the small range of commits where it can happen, I still think it would
make sense to reorder the patch series so it can't happen at all. :)

- Josh Triplett
--
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/