From: "Joseph Seigh" <jseigh_02@xemaps.com>
To: linux-kernel@vger.kernel.org
Subject: Re: What does atomic_read actually do?
Date: Sat, 18 Dec 2004 13:14:25 -0500 [thread overview]
Message-ID: <opsi7uaby0s29e3l@grunion> (raw)
In-Reply-To: 20041218181102.69c37e84@tux.homenet
On Sat, 18 Dec 2004 18:11:02 +0100, Paolo Ornati <ornati@fastwebnet.it>
wrote:
> On Sat, 18 Dec 2004 11:23:37 -0500
> "Joseph Seigh" <jseigh_02@xemaps.com> wrote:
>
>> It doesn't do anything that would actually guarantee that the fetch
>> from memory would be atomic as far as I can see, at least in the x86
>> version. The C standard has nothing to say about atomicity w.r.t.
>> multithreading or multiprocessing. Is this a gcc compiler thing? If
>> so, does gcc guarantee that it will fetch aligned ints with a single
>> instruction on all platforms or just x86? And what's with volatile
>> since if the C standard implies nothing about multithreading then it
>> follows that volatile has no meaning with respect to multithreading
>> either? Also a gcc thing? Are volatile semantics well defined enough
>> that you can use it to make the compiler synchronize memory state as
>> far as it is concerned?
>
> http://www.gnu.org/software/libc/manual/html_node/Atomic-Data-Access.html#Atomic%20Data%20Access
>
> http://www.gnu.org/software/libc/manual/html_node/Atomic-Types.html#Atomic%20Types
sig_atomic_t is only meaningful with respect to unix signals and is
meaningless with
respect to threads. And sig_atomic_t isn't atomic_t anyway. And it has
to useful
size, it could be in int on some platforms but only a byte on others.
Signals and
threading are difficult enough as separate subjects. Combining them is
insanely
difficult but that's another topic.
>
> http://gcc.gnu.org/onlinedocs/gcc/Volatiles.html
"The C standard leaves it implementation defined as to what constitutes a
volatile access."
Plus, I'm not sure sequence points are defined in C, and IIRC, C++ can
combine and/or
reorder volatile accesses between sequence points.
Joe Seigh
next prev parent reply other threads:[~2004-12-18 18:09 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-18 16:23 What does atomic_read actually do? Joseph Seigh
2004-12-18 17:11 ` Paolo Ornati
2004-12-18 18:14 ` Joseph Seigh [this message]
2004-12-18 18:34 ` Arjan van de Ven
2004-12-18 19:20 ` Joseph Seigh
2004-12-18 19:39 ` Joe Korty
2004-12-18 19:54 ` Arjan van de Ven
2004-12-18 20:43 ` Joseph Seigh
2004-12-18 21:03 ` Brian Gerst
2004-12-19 22:21 ` Robert Love
2004-12-19 23:50 ` Joseph Seigh
2004-12-20 11:51 ` Arjan van de Ven
2004-12-20 12:52 ` Andrea Arcangeli
2004-12-20 20:51 ` Joseph Seigh
2004-12-18 20:47 ` Brian Gerst
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=opsi7uaby0s29e3l@grunion \
--to=jseigh_02@xemaps.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.