This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Optimization of conditional access to globals: thread-unsafe?
- From: Andi Kleen <andi at firstfloor dot org>
- To: Tomash Brechko <tomash dot brechko at gmail dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 29 Oct 2007 12:54:22 +0100
- Subject: Re: Optimization of conditional access to globals: thread-unsafe?
- References: <e2e108260710260634q7a291337s6e66dfa25f28b68a@mail.gmail.com.suse.lists.egcs> <e2e108260710260705s170a7c82udb0c9db26a408d84@mail.gmail.com.suse.lists.egcs> <18210.795.425145.46885@zebedee.pink.suse.lists.egcs> <e2e108260710270510j56fe188dkabe070f4c6bcbe0a@mail.gmail.com.suse.lists.egcs> <87hckcpvp5.fsf@mid.deneb.enyo.de.suse.lists.egcs> <e2e108260710270607u6798af5em6467bd38788f48cd@mail.gmail.com.suse.lists.egcs> <87abq4ofym.fsf@mid.deneb.enyo.de.suse.lists.egcs> <e2e108260710280631i405e4fd8te51ff7aa2ebece23@mail.gmail.com.suse.lists.egcs> <472492F8.90700@adacore.com.suse.lists.egcs> <20071028141821.GA4898@moonlight.home.suse.lists.egcs>
Tomash Brechko <tomash.brechko@gmail.com> writes:
> - optimization in question might well turn out to be misoptimization
> for anything but microbenchmarks (read LKML for cache flush/dirty
> page issues).
See http://gcc.gnu.org/ml/gcc/2007-10/msg00607.html for a test case
that shows where it can go horrible wrong (optimized code significantly
slower than unoptimized code) Admittedly it is a constructed
one, but I don't think it is that unrealistic.
> - there's also a good talk on lawyer-ish vs attached-to-reality
> approach. I personally doubt those who continue to advise to use
> volatile are actually writing such multithreaded programs. Most
> argue just for the fun of it.
Also they don't volunteer to audit multi-million LOC code bases to add
volatile everywhere. That has to be always taken into account. For
the compiler it is a relatively simple localized change and then the
computer does all the work. For the compiled programs
auditing/changing this would be a huge effort done by humans.
-Andi