This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
libstdc++/7383: atomic operations not atomic on ppc405
- From: dank at kegel dot com
- To: gcc-gnats at gcc dot gnu dot org
- Date: 23 Jul 2002 04:08:49 -0000
- Subject: libstdc++/7383: atomic operations not atomic on ppc405
- Reply-to: dank at kegel dot com
>Number: 7383
>Category: libstdc++
>Synopsis: atomic operations not atomic on ppc405
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jul 22 21:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Dan Kegel
>Release: gcc-3.1
>Organization:
>Environment:
IBM PPC405 embedded processor
>Description:
Routines such as atomic_add() that use the stwcx
instruction fail occasionally, as the ppc405cr
occasionally misbehaves if the stwcx instruction
interrupted. See erratum 77 in
http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
See also http://www.kegel.com/xgcc3/ppc405erratum77.html
>How-To-Repeat:
Difficult. We have reproduced it by running a
large C++ program under network load on a 128-computer
farm of uniprocessor machines; failure usually happens
within 1000 to 2000 cpu-minutes. We have not yet found
a small testcase; we're still trying.
>Fix:
Apply workaround 4 from IBM's erratum sheet.
Patch available at
http://www.kegel.com/xgcc3/gcc-20020715-ppc405erratum77.patch
Patch does seem to fix the libstdc++ problem, and should be
suitable for mainline use. Note: patch does not fix
libgcj or boehm-gc, which are also affected by this
problem. They will need a similar patch.
>Release-Note:
>Audit-Trail:
>Unformatted: