[GHC] #4001: Implement an atomic readMVar

GHC ghc-devs at haskell.org
Sat Jun 15 09:51:54 CEST 2013


#4001: Implement an atomic readMVar
-------------------------------------------+--------------------------------
    Reporter:  simonmar                    |       Owner:  ezyang          
        Type:  task                        |      Status:  new             
    Priority:  low                         |   Milestone:  7.6.2           
   Component:  Runtime System              |     Version:  6.12.2          
    Keywords:                              |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple            |     Failure:  None/Unknown    
  Difficulty:  Moderate (less than a day)  |    Testcase:                  
   Blockedby:                              |    Blocking:                  
     Related:                              |  
-------------------------------------------+--------------------------------

Comment(by ezyang):

 Performance impact with the extra queue:

 {{{
 --------------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 --------------------------------------------------------------------------------
     callback001          +0.1%     +0.0%     -1.7%     -1.7%     +0.0%
     callback002          +0.1%     +0.0%     -3.1%     -3.1%     +0.0%
            chan          +0.1%     +2.0%     +2.6%     +2.6%     +3.8%
           sieve          +0.1%     +0.0%     +0.0%     +0.3%    -13.0%
      threads001          +0.1%     +0.0%     +5.1%     +5.2%     +0.0%
      threads003          +0.1%     +0.0%     +1.0%     +0.8%     +0.0%
      threads006          +0.1%     +0.0%     +0.0%     +0.0%     +2.6%
      threads007          +0.1%     +1.1%     +1.3%     +1.2%     +0.0%
 --------------------------------------------------------------------------------
             Min          +0.1%     +0.0%     -3.1%     -3.1%    -13.0%
             Max          +0.1%     +2.0%     +5.1%     +5.2%     +3.8%
  Geometric Mean          +0.1%     +0.4%     +0.6%     +0.6%     -1.0%
 }}}

 Mysteriously enough threads001 doesn't create that many MVars, so it must
 be the added overhead in putMVar

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



More information about the ghc-tickets mailing list