On Sat, 11 Sep 2004, Andrew Morton wrote:
Now, maybe Paul has tied himself into sufficiently tangly locking knots
that in some circumstances he needs to spin on the lock and cannot schedule
away. But he can still use a semaphore and spin on down_trylock.
Confused by all of this.
Well currently it just enables preempt and spins like a mad man until the lock is free. The idea is to allow preempt to get some scheduling done during the spin.. But! if you accept this patch today, you get the i386 version which will allow your processor to halt until a write to the lock occurs whilst allowing interrupts to also trigger the preempt scheduling, much easier on the caches.