Messages in this thread | | | Date | Thu, 24 Aug 2006 08:53:39 -0700 | From | Martin Bligh <> | Subject | Re: [PATCH] Fix x86_64 _spin_lock_irqsave() |
| |
Andrew Morton wrote: > On Thu, 24 Aug 2006 13:10:09 +1000 > Nick Piggin <nickpiggin@yahoo.com.au> wrote: > > >>Edward Falk wrote: >> >>>Add spin_lock_string_flags and _raw_spin_lock_flags() to >>>asm-x86_64/spinlock.h so that _spin_lock_irqsave() has the same >>>semantics on x86_64 as it does on i386 and does *not* have interrupts >>>disabled while it is waiting for the lock. >>> >>>This fix is courtesy of Michael Davidson >> >>So, what's the bug? You shouldn't rely on these semantics anyway >>because you should never expect to wait for a spinlock for so long >>(and it may be the case that irqs can't be enabled anyway). >> >>BTW. you should be cc'ing Andi Kleen (x86+/-64 maintainer) on >>this type of stuff. >> >>No comments on the merits of adding this feature. I suppose parity >>with i386 is a good thing, though. >> > > > We put this into x86 ages ago and Andi ducked the x86_64 patch at the time. > > I don't recall any reports about the x86 patch (Zwane?) improving or > worsening anything. I guess there are some theoretical interrupt latency > benefits.
Spinlocks are indeed meant to be held for a short time, but irq disabling is meant to be shorter.
I think the real question is: what is the justification for disabling interrupts when spinning for a lock? We should never disable interrupts unless we have to.
M. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |