lkml.org 
[lkml]   [2010]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch 11/33] fs: dcache scale subdirs
    From
    Date
    On Tue, 2010-06-22 at 09:27 +0200, Peter Zijlstra wrote:
    > On Mon, 2010-06-21 at 23:02 -0700, john stultz wrote:
    > > On Mon, 2010-06-21 at 16:55 +0200, Peter Zijlstra wrote:
    > > > On Tue, 2010-06-22 at 00:48 +1000, Nick Piggin wrote:
    > > > > > Right, so I was staring at the -rt splat, so its John who created that
    > > > > > wreckage?
    > > > >
    > > > > It was, but apparently they saw an RCU bug there somewhere and hit it
    > > > > with the big hammer. I haven't been able to reproduce it on a non-rt
    > > > > kernel yet, and I see yet why RCU is not good enough here.
    > > >
    > > > John, could you describe the failure you spotted?
    > >
    > > The problem was that the rcu_read_lock() on the dentry ascending wasn't
    > > preventing d_put/d_kill from removing entries from the parent node. So
    > > the next entry we tried to follow was invalid. So we were getting odd
    > > oopses from select_parent().
    > >
    > > I'm not as familiar with the rcu rules there, so the patch I made just
    > > held the locks as it went down the chain. Not ideal of course, but still
    > > an improvement over the dcache_lock that was there prior.
    > >
    > > Peter: I'm sorry, I've been out for a few days. Can you give me some
    > > background on what brought this up and what -rt splat you mean?
    >
    > Well, you make lockdep very unhappy by locking multiple dentries
    > (unbounded number) all in the same lock class.

    So.. Is there a way to tell lockdep that the nesting is ok (I thought
    that was what the spin_lock_nested call was doing...)?

    Or is locking a (possibly quite long) chain of objects really just a
    do-not-do type of operation?

    thanks
    -john




    \
     
     \ /
      Last update: 2010-06-23 04:05    [W:3.934 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site