[GHC] #8724: CAS and Xchange in SMP.h don't use quadword instructions on x86_64 systems

GHC ghc-devs at haskell.org
Sat Feb 1 07:28:31 UTC 2014


#8724: CAS and Xchange in SMP.h don't use quadword instructions on x86_64 systems
----------------------------------+-------------------------------------
       Reporter:  carter          |             Owner:
           Type:  bug             |            Status:  new
       Priority:  highest         |         Milestone:  7.8.1
      Component:  Compiler        |           Version:  7.8.1-rc1
       Keywords:                  |  Operating System:  Unknown/Multiple
   Architecture:  x86_64 (amd64)  |   Type of failure:  None/Unknown
     Difficulty:  Unknown         |         Test Case:
     Blocked By:                  |          Blocking:
Related Tickets:                  |
----------------------------------+-------------------------------------
 Ryan Newton pointed out on the mailing list that CAS wasn't behaving
 correctly in his heavy concurrency benchmarks.
 http://www.haskell.org/pipermail/ghc-devs/2014-February/003944.html

 upon looking at the inline ASM, it looks like both CAS and Xchng were
 probably using the 32bit versions of their asm operations, or at least
 thats my strawman interpretation.


 https://github.com/cartazio/ghc/compare/ghc:ghc-7.8...fix_64bit_intel_cas
 is the patch, which should be tested and confirmed to resolve this issue
 before getting merged in.


 This patch makes the 64 bit versions of CAS and xchg use the quad word
 instructions

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8724>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list