Re: [PATCH] WorkStruct: Implement generic UP cmpxchg() where an arch doesn't support it

From: Matthew Wilcox
Date: Wed Dec 06 2006 - 14:30:04 EST


On Wed, Dec 06, 2006 at 11:25:35AM -0800, Linus Torvalds wrote:
> Ok. For SMP-safety, it's important that any architecture that can't do
> this needs to _share_ the same spinlock (on SMP only, of course) that it
> uses for the bitops.

That doesn't help, since assignment can't be guarded by any lock.

> It would be good (but perhaps not as strict a requirement) if the atomic
> counters also use the same lock. But that is probably impossible on
> sparc32 (since it has a per-counter "lock"-like thing, iirc). So doing a
> cmpxchg() on an atomic_t would be a bug.

sparc32 switched over to the parisc way of doing things, so they could
expand their atomic_t to a full 32 bits. They still have the old
atomic_24_t lying around for their arch-private use, but atomic_t uses a
hashed spinlock.
-
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/