Re: [PATCH] spinlock: __raw_spin_is_locked() should return true for UP

From: Kumar Gala
Date: Tue Aug 18 2009 - 21:18:40 EST



On Aug 18, 2009, at 7:07 PM, Steven Rostedt wrote:

On Tue, 18 Aug 2009, Linus Torvalds wrote:

Thinking about it, UP probably should have spin_is_locked always return
false, but if you want to make sure you are not in a critical section
with the lock not held, then use assert_spin_locked, which on UP should be
a nop.

That's what we do. That said, I also think we should generally try to
avoid the kind of code that depends on spin_is_locked always returning
false, for the same reason we should try to avoid any code that depends on
it always returning true.

Perhaps we can deprecate spin_is_locked and replace it with
"expect_spin_locked" and "expect_spin_unlocked" which on SMP would return
true and false respectively if the lock was locked. But both would always
return true on UP.

Or do some thing similar, that would remove the ambiguity on UP.

I agree its a little too easy to abuse spin_is_locked. However we should be consistent between spin_is_locked on UP between with and without CONFIG_DEBUG_SPINLOCK enabled. How much of this do we want to try and address in .31?

The PPC test really should be using assert_spin_locked and I'll send a patch to Ben for that.

- k
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/