Re: [RFC PATCH 1/6] kernel: implement queue spinlock API

From: Michel Lespinasse
Date: Fri Feb 08 2013 - 00:11:20 EST


On Thu, Feb 7, 2013 at 9:03 PM, Paul E. McKenney
<paulmck@xxxxxxxxxxxxxxxxxx> wrote:
> Right... For spinlocks that -don't- disable irqs, you need to deal with
> the possibility that a CPU gets interrupted while spinning, and the
> interrupt handler also tries to acquire a queued lock. One way to deal
> with this is to have a node per CPUxirq. Of course, if interrupts
> handlers always disable irqs when acquiring a spinlock, then you only
> need CPUx2.

The simple solution would be to do like I proposed in my faster queue
spinlock proposal, have one function for process context lock
acquisitions, another for bh-disabled acquisitions, and just say that
hardirqs can't use the queue spinlocks (I don't expect we have any
locks taken from hardirq context where contention might be an issue ?)

--
Michel "Walken" Lespinasse
A program is never fully debugged until the last user dies.
--
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/