[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 08 Aug 2008 09:16:15 +0200
From: Peter Zijlstra <a.p.zijlstra@...llo.nl>
To: Andrea Arcangeli <andrea@...ranet.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
David Miller <davem@...emloft.net>, jeremy@...p.org,
hugh@...itas.com, mingo@...e.hu, akpm@...ux-foundation.org,
linux-kernel@...r.kernel.org, davej@...hat.com
Subject: Re: [RFC][PATCH 9/7] mm: fix mm_take_all_locks() locking order
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists