simonmar    2005/11/18 07:24:12 PST

  Modified files:
    ghc/includes         Closures.h Regs.h RtsFlags.h 
                         StgMiscClosures.h Storage.h 
    ghc/rts              Capability.c GC.c Interpreter.c 
                         RtsFlags.c Schedule.c Schedule.h Sparks.c 
                         Sparks.h StgCRun.c StgStartup.cmm 
                         Updates.cmm Updates.h 
  Log:
  Two improvements to the SMP runtime:
  
    - support for 'par', aka sparks.  Load balancing is very primitive
      right now, but I have seen programs that go faster using par.
  
    - support for backing off when a thread is found to be duplicating
      a computation currently underway in another thread.  This also
      fixes some instability in SMP, because it turned out that when
      an update frame points to an indirection, which can happen if
      a thunk is under evaluation in multiple threads, then after GC
      has shorted out the indirection the update will trash the value.
      Now we suspend the duplicate computation to the heap before this
      can happen.
  
  Additionally:
  
    - stack squeezing is separate from lazy blackholing, and now only
      happens if there's a reasonable amount of squeezing to be done
      in relation to the number of words of stack that have to be moved.
      This means we won't try to shift 10Mb of stack just to save 2
      words at the bottom (it probably never happened, but still).
  
    - update frames are now marked when they have been visited by lazy
      blackholing, as per the SMP paper.
  
    - cleaned up raiseAsync() a bit.
  
  Revision  Changes    Path
  1.45      +5 -0      fptools/ghc/includes/Closures.h
  1.25      +24 -8     fptools/ghc/includes/Regs.h
  1.51      +1 -0      fptools/ghc/includes/RtsFlags.h
  1.66      +2 -0      fptools/ghc/includes/StgMiscClosures.h
  1.19      +1 -1      fptools/ghc/includes/Storage.h
  1.47      +4 -1      fptools/ghc/rts/Capability.c
  1.207     +108 -118  fptools/ghc/rts/GC.c
  1.57      +1 -1      fptools/ghc/rts/Interpreter.c
  1.86      +5 -0      fptools/ghc/rts/RtsFlags.c
  1.278     +176 -145  fptools/ghc/rts/Schedule.c
  1.58      +8 -0      fptools/ghc/rts/Schedule.h
  1.11      +196 -192  fptools/ghc/rts/Sparks.c
  1.8       +64 -12    fptools/ghc/rts/Sparks.h
  1.55      +2 -1      fptools/ghc/rts/StgCRun.c
  1.8       +2 -2      fptools/ghc/rts/StgStartup.cmm
  1.5       +14 -0     fptools/ghc/rts/Updates.cmm
  1.4       +5 -10     fptools/ghc/rts/Updates.h
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to