[GHC] #7602: Threaded RTS performing badly on recent OS X (10.8?)
GHC
ghc-devs at haskell.org
Sun Apr 20 22:05:58 UTC 2014
#7602: Threaded RTS performing badly on recent OS X (10.8?)
-------------------------------------+-------------------------------------
Reporter: simonmar | Owner: thoughtpolice
Type: bug | Status: new
Priority: highest | Milestone: 7.8.3
Component: Runtime System | Version:
Resolution: | Keywords: thread-local
Operating System: MacOS X | state, TLS clang
Type of failure: Runtime | Architecture: x86_64 (amd64)
performance bug | Difficulty: Unknown
Test Case: | Blocked By: 7678
Blocking: | Related Tickets:
-------------------------------------+-------------------------------------
Comment (by thoughtpolice):
For those who didn't follow the list:
- Mark Seaborn, a !Chromium/NaCl engineer, stated that they have this
exact same problem in Native Client on 64bit OS X. In particular, they
came up with the same solution I did essentially: inline the fast path of
`pthread_{get,set}specific`. Their code is more robust than my patch
however, as it's actually paranoid enough to check the machine code and
bail otherwise:
https://src.chromium.org/viewvc/native_client/trunk/src/native_client/src/trusted/service_runtime/arch/x86_64/nacl_tls_64.c?revision=11149
I think this is probably the best approach at the moment
- Renato Golin, the proposer of the initial change, updated me to say
that their updated proposal does include register variables for general
purpose registers (GPRs), but it's only one part of the overall set of
changes, which will take more time (their particular motivation now seems
to be as a principled approach to defining `__builtin_return_address` and
friends at the moment). However, they understand that proposal doesn't
accommodate our design, and would like us to give more feedback as they
evolve the work to support true register variables.
So, in the long haul, I think things will get better here. In the mean
time, I think this is a signal that we should go ahead and jump on the
fast-path-inline change I spoke of in comment 13.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7602#comment:44>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list