This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libstdc++/7383: atomic operations not atomic on ppc405


>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]