On Thu, Feb 07, 2013 at 09:11:14PM -0800, Michel Lespinasse wrote: > On Thu, Feb 7, 2013 at 9:03 PM, Paul E. McKenney > <paul...@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 ?)
Makes sense! The spinlocks that disable hardirqs should get extra contention-reduction attention, after which the main benefit for queued spinlocks is process-level spinlocks. Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/