[patch] Re: using long instead of atomic_t when only set/read is required

Pavel Machek
2008-03-03T14:44:39Z

Hi!

> > Alan thinks that `subj` is correct...
>
> More precisely, reads and writes of pointers are always atomic. That
> is, if a write and a read occur concurrently, it is guaranteed that the
> read will obtain either the old or the new value of the pointer, never
> a mish-mash of the two. If this were not so then RCU wouldn't work.

Ok, so linux actually atomicity of long?

If so, this should probably be applied...

Signed-off-by: Pavel Machek <pavel@suse.cz>

diff --git a/Documentation/atomic_ops.txt b/Documentation/atomic_ops.txt
index 4ef2450..0a7d180 100644
--- a/Documentation/atomic_ops.txt
+++ b/Documentation/atomic_ops.txt
@@ -21,6 +21,9 @@ local_t is very similar to atomic_t. If
updated by one CPU, local_t is probably more appropriate. Please see
Documentation/local_ops.txt for the semantics of local_t.

+long (and int and void *) can be used instead of atomic_t, if all you
+need is atomic setting and atomic reading.
+
The first operations to implement for atomic_t's are the initializers and
plain reads.

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html