mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Pavel Machek <pavel@suse.cz>,
	kernel list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>,
	mtk.manpages@gmail.com, rdunlap@xenotime.net,
	linux-doc@vger.kernel.org
Subject: Re: atomics: document that linux expects certain atomic behaviour from unsigned long
Date: Mon, 5 Jan 2009 21:54:45 +1100	[thread overview]
Message-ID: <200901052154.45958.nickpiggin@yahoo.com.au> (raw)
In-Reply-To: <20090103231419.197727ba@lxorguk.ukuu.org.uk>

On Sunday 04 January 2009 10:14:19 Alan Cox wrote:
> > Is there concrete architecture where it breaks? I'd expect i386/x86-64
> > to be safe, and pretty much everyone to be safe as long as that long
> > is aligned.... or that was the result of arch-maintainers
> > discussion...
>
> It'll break on x86 if gcc decides to cache the value and you don't have
> explicit barriers.

Same as atomic_read on x86.

> If the long is not aligned it's not safe on x86 at all.

Same as atomic_t.

AFAIK, Linux requires aligned loads and stores to int and long (and pointer)
to be atomic.

Pretty much everywhere that uses RCU for example does so using atomic pointer
loads and stores. The nastiest issue IMO actually is reloading the value
through the pointer even if it isn't explicitly dereferenced. RCU gets this
right with ACCESS_ONCE. Probably a lot of code using basic types does not.
x86 atomic_read maybe should be using ACCESS_ONCE too...


  reply	other threads:[~2009-01-05 10:55 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-03 12:44 Pavel Machek
2009-01-03 20:19 ` Alan Cox
2009-01-03 20:27   ` Pavel Machek
2009-01-03 20:30     ` Alan Cox
2009-01-03 20:56       ` Pavel Machek
2009-01-03 23:01         ` david
2009-01-03 23:14         ` Alan Cox
2009-01-05 10:54           ` Nick Piggin [this message]
2009-01-05 11:23             ` Alan Cox
2009-01-05 12:00               ` Nick Piggin
2009-01-05 16:05                 ` Paul E. McKenney
2009-01-05 16:25                   ` Nick Piggin
2009-01-05 17:30                     ` Paul E. McKenney
2009-01-05 18:25                       ` Nick Piggin
2009-01-05 22:01                         ` Paul E. McKenney
2009-01-03 23:53         ` Robert Hancock
2009-01-04 18:05       ` Tilman Schmidt

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=200901052154.45958.nickpiggin@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=pavel@suse.cz \
    --cc=rdunlap@xenotime.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome