Re: [GHC] #7602: Threaded RTS performing badly on recent OS X (10.8?)

#7602: Threaded RTS performing badly on recent OS X (10.8?) -----------------------------------+---------------------------------- Reporter: simonmar | Owner: thoughtpolice Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Runtime System | Version: 7.7 Resolution: | Keywords: Operating System: MacOS X | Architecture: x86_64 (amd64) Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: 7678 Blocking: | Related Tickets: -----------------------------------+---------------------------------- Comment (by thoughtpolice): I investigated Mavericks and talked with Simon about this. 10.9 is problematic. It still emits indirect jumps via a call through `%rdi` when using `__thread`, so it can't perform a simple direct load/store to a 'fast' location. You can also use `pthread_{get,set}specific`, but these are indirect dynamic calls too (and probably performs even worse.) Furthermore I can't find the source code for `pthread_getspecific` & co, so it's impossible to check if my 10.8 fix still works OK. We decided to: * Make the runtime use `__thread` on OS X for now. This cleans up the code, and in the future could be optimized by the compiler/runtime handling of TLS variables in future versions. * Document the fact OS X will suffer a performance regression with the `-threaded` garbage collector. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7602#comment:33 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC