Messages in this thread |  | | Date | Thu, 11 Jul 2002 19:52:45 -0400 | From | Sandy Harris <> | Subject | Re: spinlock assertion macros |
| |
Oliver Xymoron wrote: > > On Thu, 11 Jul 2002, Daniel Phillips wrote: > > > I was thinking of something as simple as: > > > > #define spin_assert_locked(LOCK) BUG_ON(!spin_is_locked(LOCK)) > > > > but in truth I'd be happy regardless of the internal implementation. A note > > on names: Linus likes to shout the names of his BUG macros. I've never been > > one for shouting, but it's not my kernel, and anyway, I'm happy he now likes > > asserts. I bet he'd like it more spelled like this though: > > > > MUST_HOLD(&lock); > > I prefer that form too.
Is it worth adding MUST_NOT_HOLD(&lock) in an attempt to catch potential deadlocks?
Say that if two or more of locks A, B and C are to be taken, then they must be taken in that order. You might then have code like:
MUST_NOT_HOLD(&lock_B) ; MUST_NOT_HOLD(&lock_C) ; spinlock(&lock_A) ;
I think you need a separate asertion for this !MUST_NOT_HOLD(&lock) has different semantics. - 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/
|  |