Re: [PATCH] Fix x86_64 _spin_lock_irqsave()

From: Andi Kleen
Date: Fri Aug 25 2006 - 02:19:48 EST


On Friday 25 August 2006 06:38, Andrew Morton wrote:
> On 24 Aug 2006 08:45:11 +0200
> Andi Kleen <ak@xxxxxxx> wrote:
>
> > Edward Falk <efalk@xxxxxxxxxx> writes:
> >
> > > 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.
> >
> > Did it fix anything for you?
> >
>
> It's the rendezvous-via-IPI problem. Suppose we want to capture all CPUs
> in an IPI handler (TSC sync, for example).
>
> - CPUa holds read_lock(&tasklist_lock)
> - CPUb is spinning in write_lock_irq(&taslist_lock)

But he didn't actually change the rwlocks, only the plain old spinlocks!

Anyways I applied the patch for now (and cleaned it up in the next patch),
but I could have probably gotten away with not.

Edward, next time please add a Signed-off-by line.

-Andi
-
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/