Re: [patch 2/2] x86_64: ticket lock spinlock

From: Valdis . Kletnieks
Date: Wed Aug 08 2007 - 13:32:39 EST


On Wed, 08 Aug 2007 06:24:44 +0200, Nick Piggin said:

> After this, we can no longer spin on any locks with preempt enabled,
> and cannot reenable interrupts when spinning on an irq safe lock, because
> at that point we have already taken a ticket and the would deadlock if
> the same CPU tries to take the lock again. These are hackish anyway: if
> the lock happens to be called under a preempt or interrupt disabled section,
> then it will just have the same latency problems. The real fix is to keep
> critical sections short, and ensure locks are reasonably fair (which this
> patch does).

Any guesstimates how often we do that sort of hackish thing currently, and
how hard it will be to debug each one? "Deadlock if the same CPU tries to
take the lock again" is pretty easy to notice - are there more subtle failure
modes (larger loops of locks, etc)?

Attachment: pgp00000.pgp
Description: PGP signature