lkml.org 
[lkml]   [2008]   [Aug]   [8]   [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 23:46 +0200, Andrea Arcangeli wrote:

    > As for 8/7 you know my opinion from somebody who's way beyond the
    > point: check_deadlock should be dropped

    I'll try again one more time, don't feel obliged to reply or
    anything :-)

    Suppose you have objects initialized from a single site:

    struct my_obj *create_obj()
    {
    ...
    spin_lock_init(&obj->lock);
    ...

    return obj;
    }


    So that all these object's their locks are in a single class.

    Now, put these objects into two lists without fixed order.

    L1: A B C D
    L2: B A D C

    If you were to lock-couple your way through these lists there is a
    deadlock potential.

    The check_noncircular stuff will not catch this due to it all being of a
    single class. The only thing we have to indicate you need to pay
    attention is check_deadlock.

    Yes, check_deadlock is a tad too sensitive in the amount of false
    positives, but without it there are gaping holes in 'proving' lock
    correctness.

    Currently - if you get 100% code coverage and lockdep doesn't shout,
    you're good. If we were to drop check_deadlock we can't say that
    anymore.




    \
     
     \ /
      Last update: 2008-08-08 09:19    [W:0.019 / U:0.260 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site