From: Andrew Haley <aph@redhat.com>
To: "Bart Van Assche" <bart.vanassche@gmail.com>
Cc: "David Schwartz" <davids@webmaster.com>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Tomash Brechko" <tomash.brechko@gmail.com>
Subject: Re: Is gcc thread-unsafe?
Date: Fri, 2 Nov 2007 15:38:09 +0000 [thread overview]
Message-ID: <18219.17505.443550.620503@zebedee.pink> (raw)
In-Reply-To: <e2e108260711020829p5994f79bp48ca35a1ce84ff03@mail.gmail.com>
Bart Van Assche writes:
> On 10/30/07, Andrew Haley <aph@redhat.com> wrote:
> > David Schwartz writes:
> > >
> > > Can we get some kind of consensus that 'optimizations' that add
> > > writes to any object that the programmer might have taken the
> > > address of are invalid on any platform that supports memory
> > > protection?
> >
> > That's what the proposed standard language says, kinda-sorta. There's
> > an informal description at
> > http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2338.html.
>
> There is other important information in the cited text. A.o. it is
> explained that register promotion of potentially shared variables
> can introduce data races. Or: register promotion can introduce bugs
> in multithreaded software when compiled with optimization
> enabled. Are there any register promotion transformations
> implemented in gcc that can introduce data races in multithreaded
> software ?
I expect so. We're going to have to audit this whole enormous code
base to find them all and take them out.
Note that some of these optimizations have been around since gcc 3.4.
> This is very important information both for kernel developers and
> for developers of multithreaded userspace applications.
> Another conclusion from the cited text is that in contrast with
> what was stated before on the gcc mailing list, it is not required
> to declare thread-shared variables volatile if that thread-shared
> data is consistently protected by calls to locking functions.
Well, let's be clear: ISO 9899:1999 doesn't say so, but the proposed
standard language does.
Andrew.
--
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903
next prev parent reply other threads:[~2007-11-02 15:38 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <e2e108260710260729x4603211cgb68d7434ce1e54e9@mail.gmail.com>
2007-10-26 14:40 ` Bart Van Assche
2007-10-26 15:09 ` Linus Torvalds
2007-10-26 15:34 ` Andrew Haley
2007-10-26 18:06 ` David Schwartz
2007-10-30 10:20 ` Andrew Haley
2007-11-02 15:29 ` Bart Van Assche
2007-11-02 15:38 ` Andrew Haley [this message]
2007-11-04 15:13 ` Bart Van Assche
2007-11-04 17:45 ` Linus Torvalds
2007-11-04 17:58 ` Andrew Haley
2007-11-04 18:06 ` Bart Van Assche
2007-11-02 17:18 ` David Schwartz
2007-10-26 21:45 ` Giacomo Catenazzi
2007-10-26 22:24 ` Linus Torvalds
2007-10-26 15:27 ` Linus Torvalds
2007-10-26 16:28 ` Linus Torvalds
2007-10-26 17:07 ` Bart Van Assche
2007-10-26 17:12 ` Andrew Haley
2007-10-26 17:25 ` Linus Torvalds
2007-10-26 18:08 ` Alan Cox
2007-10-26 18:14 ` Linus Torvalds
2007-10-26 20:39 ` Andi Kleen
2007-10-28 18:19 linux
[not found] <fa.JbRGo0cQWncrcfKHmiNdvchsA50@ifi.uio.no>
[not found] ` <fa.8qDECVaPIo7DWbjhQbyw6N5Infg@ifi.uio.no>
[not found] ` <fa.M4DOMggyrQmdTqekWSuw4xCxiTc@ifi.uio.no>
2007-10-25 23:27 ` Robert Hancock
-- strict thread matches above, loose matches on Subject: below --
2007-10-25 3:24 Nick Piggin
2007-10-25 3:46 ` Arjan van de Ven
2007-10-25 3:58 ` Nick Piggin
2007-10-25 4:29 ` David Schwartz
2007-10-25 4:35 ` Arjan van de Ven
2007-10-25 18:45 ` Måns Rullgård
2007-10-25 4:47 ` Nick Piggin
2007-10-25 9:40 ` Samuel Tardieu
2007-10-25 9:44 ` Samuel Tardieu
2007-10-25 9:54 ` Samuel Tardieu
2007-10-25 9:55 ` Andi Kleen
2007-10-25 7:15 ` Andi Kleen
2007-10-25 11:58 ` linux-os (Dick Johnson)
2007-10-25 12:16 ` Andi Kleen
2007-10-25 22:49 ` Nick Piggin
2007-10-25 23:09 ` Andi Kleen
2007-10-25 23:14 ` Linus Torvalds
2007-10-25 23:16 ` Andi Kleen
2007-10-25 23:32 ` Linus Torvalds
2007-10-25 23:42 ` Andi Kleen
2007-10-25 23:57 ` Linus Torvalds
2007-10-26 1:15 ` Zachary Amsden
2007-10-26 4:57 ` Willy Tarreau
2007-10-25 23:43 ` Nick Piggin
2007-10-25 23:55 ` Andi Kleen
2007-10-25 23:57 ` Nick Piggin
2007-10-25 14:55 ` Linus Torvalds
2007-10-25 15:12 ` Pekka Enberg
2007-10-25 21:42 ` David Schwartz
2007-10-25 23:22 ` Nick Piggin
2007-10-26 11:59 ` Andrew Haley
2007-10-26 11:59 ` Andrew Haley
2007-10-26 17:39 ` Chris Friesen
2007-10-25 22:26 ` Ismail Dönmez
2007-10-25 22:56 ` Jeff Garzik
2007-10-25 23:04 ` Jeff Garzik
2007-10-31 22:10 ` Phillip Susi
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=18219.17505.443550.620503@zebedee.pink \
--to=aph@redhat.com \
--cc=bart.vanassche@gmail.com \
--cc=davids@webmaster.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tomash.brechko@gmail.com \
/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