lkml.org 
[lkml]   [2012]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH RFC tip/core/rcu 38/41] rcu: Rework detection of use of RCU by offline CPUs
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@linaro.org>
> > >
> > > 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


\
 
 \ /
  Last update: 2012-02-03 10:21    [W:0.191 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site