All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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.