lkml.org 
[lkml]   [2011]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH tip/core/rcu 0/6] Check for use of RCU from dyntick-idle mode
    On Mon, Jul 11, 2011 at 06:44:08PM +0200, Frederic Weisbecker wrote:
    > On Mon, Jul 11, 2011 at 09:38:48AM -0700, Paul E. McKenney wrote:
    > > On Mon, Jul 11, 2011 at 06:03:32PM +0200, Frederic Weisbecker wrote:
    > > > On Fri, Jul 08, 2011 at 08:43:31AM -0700, Paul E. McKenney wrote:
    > > > > Hello!
    > > > >
    > > > > This set of patches adds checks for use of RCU from "extended quiescent
    > > > > states" such as dyntick-idle mode. Such use is grossly illegal because
    > > > > RCU by definition ignores CPUs that are in extended quiescent states.
    > > > > In the case of dyntick-idle mode, the only way for RCU to avoid ignoring
    > > > > such CPUs would be to wake them up periodically, which would defeat the
    > > > > whole purpose of dyntick-idle mode.
    > > > >
    > > > > The good news is that Frederic got this effort started. The bad news is
    > > > > that there are several cases where RCU read-side critical sections appear
    > > > > in dyntick-idle mode.
    > > >
    > > > Ok, let me send to you the patch that splits up rcu/tickless logic and I'll try
    > > > to fix up what you reported to me in ppc.
    > >
    > > Very good, thank you!
    > >
    > > > BTW, are you aware of other cases? You mentioned "several" :)
    > >
    > > PowerPC's hypercall-exit trace event will also cause this complaint.
    >
    > Ok looking at this.

    Oh, and I removed some of my RCU dyntick-idle trace events because
    they triggered this warning. This would of course be a problem regardless
    of where the RCU dyntick-idle APIs were called from, so I just took the
    approach of more carefully placing the trace events.

    > > Plus I thought you saw some others.
    >
    > Nope, mine were spurious. In my v1 rcu_dereference_check warned if rcu read lock
    > wasn't held but didn't handle the rest of the conditional (another lock held or
    > simply 1 in rcu_dereference_raw()).
    >
    > In the v3, the one you applied, they legitimately disappeared.

    OK, good to know!

    Thanx, Paul


    \
     
     \ /
      Last update: 2011-07-11 19:03    [W:0.023 / U:0.520 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site