Messages in this thread | | | Subject | Re: Spinlocks: Factor our GENERIC_LOCKBREAK in order to avoid spin with irqs disable | From | Peter Zijlstra <> | Date | Mon, 23 Jun 2008 22:39:53 +0200 |
| |
On Mon, 2008-06-23 at 11:20 -0700, Christoph Lameter wrote: > On Mon, 23 Jun 2008, Petr Tesarik wrote: > > > Maybe I'm just blind, but doesn't this change effectively disable any > > arch-specific optimized code for _raw_*_lock? > > True. Only the __raw_xxx_trylock is still used. > > > If CONFIG_DEBUG_LOCK_ALLOC is set, then CONFIG_DEBUG_SPINLOCK must also > > be set, so in that case the debugging versions of _raw_*_lock are used. > > But if CONFIG_DEBUG_LOCK_ALLOC is _not_ set, then the locks are built > > with _trylock and _can_lock primitives. > > > > What am I missing here? > > It is good that the locks are build with _trylock and _can_lock because > then we can reenable interrupts while spinning.
Well, good and bad, the turn side is that fairness schemes like ticket locks are utterly defeated.
| |