lkml.org 
[lkml]   [2008]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC][PATCH 9/7] mm: fix mm_take_all_locks() locking order
    From
    Date
    On Thu, 2008-08-07 at 13:14 +0100, Hugh Dickins wrote:
    > On Thu, 7 Aug 2008, Peter Zijlstra wrote:
    > >
    > > Which the locking hierarchy in mm/rmap.c confirms as 'valid'.
    > >
    > > Although I don't think there are any users of these two locks that don't
    > > hold the mmap_sem, therefore the nesting is strictly ok, but since we
    > > already have an established order, we might as well respect it.
    >
    > Yes, I agree.
    >
    > > Fix this by first taking all the mapping->i_mmap_lock instances and then
    > > take all anon_vma->lock instances.
    >
    > Okay. I'd have preferred taking anon_vma lock after i_mmap_lock
    > each time around the loop, but imagine that's just as problematic
    > for lockdep as the original.

    I'm a little confused as to what you mean here, are you suggesting:

    for_each_vma() {
    if (file)
    vm_lock_mapping();
    if (anon)
    vm_lock_anon();
    }

    ?

    That can still create the inverse lock order due to each vma being only
    of a single type, and therefore the lock order is set by the vma order,
    which can be anything.




    \
     
     \ /
      Last update: 2008-08-07 14:45    [W:0.023 / U:153.696 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site