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

From: Paul E. McKenney
Date: Fri Feb 08 2013 - 11:17:57 EST


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
> <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 ?)

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/