Messages in this thread | | | Date | Thu, 7 Feb 2013 21:11:14 -0800 | Subject | Re: [RFC PATCH 1/6] kernel: implement queue spinlock API | From | Michel Lespinasse <> |
| |
On Thu, Feb 7, 2013 at 9:03 PM, Paul E. McKenney <paulmck@linux.vnet.ibm.com> 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.
| |