Andrew Morton wrote:
On Thu, 24 Aug 2006 13:10:09 +1000
Nick Piggin <[email protected]> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]