lkml.org 
[lkml]   [2007]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC][PATCH 2/6] lockdep: validate rcu_dereference() vs rcu_read_lock()
    On Wed, Sep 19, 2007 at 11:16:21AM -0400, Dmitry Torokhov wrote:
    > On 9/19/07, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
    > > On Wed, 19 Sep 2007 10:17:25 -0400 "Dmitry Torokhov"
    > > <dmitry.torokhov@gmail.com> wrote:
    > >
    > > > Hi Peter,
    > > >
    > > > On 9/19/07, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
    > > > > Warn when rcu_dereference() is not used in combination with rcu_read_lock()
    > > > >
    > > >
    > > > According to Paul it is fine to use RCU primitives (when accompanied
    > > > with proper comments) when the read-size critical section is guarded
    > > > by spin_lock_irqsave()/spin_lock_irqsrestore() instead of
    > > > rcu_read_lock()/rcu_read_unlock() and writers synchronize with
    > > > synchronize_sched(), not synchronize_rcu(). Your patch will trigger
    > > > warnign on such valid usages.
    > > >
    > >
    > > Sounds fragile to begin with. But you're right in that that is valid
    > > for Linux as you know it. However in -rt most/all spinlocks are
    > > converted to sleeping locks. In that case sync_sched() is not enough.
    >
    > OK, then it goes beyond RCU... We need to come up with something that
    > can be used to synchronize with IRQ handlers (quite often in driver
    > code one needs to be sure that current invocation of IRQ handler
    > completed before doing something). And once we have it splinlock + RCU
    > users can just use that method.

    But Peter's approach would not cause a problem here -- you wouldn't be
    doing an rcu_dereference from within the IRQ handler in this case, right?

    That said, we will need something to handle threaded interrupts, since
    synchronize_sched() only waits for hardirq, NMI, SMI, etc., and not
    threaded IRQs.

    Thanx, Paul
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-09-19 17:41    [W:0.023 / U:90.732 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site