Re: [PATCH] dm.c - device-mapper I/O path fixes

Kevin Corry (corryk@us.ibm.com)
Thu, 12 Dec 2002 06:30:56 -0600


On Wednesday 11 December 2002 15:12, Paul Mackerras wrote:
> Kevin Corry writes:
> > Storing an int is *not* atomic unless it is declared as atomic_t and you
> > use the appropriate macros (see include/asm-*/atomic.h). Remember, we are
> > talking about a field in a data structure that can be accessed from
> > multiple threads on multiple CPUs.
>
> As a practical matter, I believe that storing an int to an int-aligned
> address _is_ actually atomic on any CPU that can run Linux. The
> PowerPC architecture spec requires that single-word (i.e. 32-bit)
> aligned stores are atomic, for instance, and I think that would be the
> case on any other sane architecture as well.

Given the constraints of having properly aligned data on an SMP machine with
the correct cache-coherency hardware, then yes, I will agree that such stores
should be atomic. However, it has been my understanding that these conditions
cannot be guaranteed on every architecture. Thus we're stuck with atomic_t's
so everyone can play nicely together.

-- 
Kevin Corry
corryk@us.ibm.com
http://evms.sourceforge.net/
-
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/