[GHC] #4391: forkIO threads do not properly save/restore the floating point environment

GHC cvs-ghc at haskell.org
Thu Nov 18 11:43:01 EST 2010


#4391: forkIO threads do not properly save/restore the floating point environment
---------------------------------+------------------------------------------
    Reporter:  draconx           |        Owner:              
        Type:  bug               |       Status:  new         
    Priority:  normal            |    Milestone:  7.2.1       
   Component:  Runtime System    |      Version:  6.12.3      
    Keywords:                    |     Testcase:              
   Blockedby:                    |   Difficulty:              
          Os:  Unknown/Multiple  |     Blocking:              
Architecture:  x86_64 (amd64)    |      Failure:  None/Unknown
---------------------------------+------------------------------------------
Changes (by simonmar):

  * component:  Compiler => Runtime System


Comment:

 I doubt we'll fix this.  The floating-point environment is 9 words of
 stuff (according to my rough count), whereas a Haskell thread is 17 words.
 Typically the amount of stuff saved and restored over a context switch is
 only a handful of words, which is why Haskell threads are so cheap.  If we
 had to save the floating point unit state as well, that would
 significantly impact thread performance.

 Is it terrible to require the use of OS threads for this?  Or is there
 some way we can avoid saving and restoring the full FP state?

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4391#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list