1. 14 Jul, 2012 10 commits
  2. 13 Jul, 2012 7 commits
  3. 11 Jul, 2012 8 commits
  4. 10 Jul, 2012 15 commits
    • dterei's avatar
    • Duncan Coutts's avatar
      Have a go at fixing the heap info DTrace build failue on OSX · 45c80482
      Duncan Coutts authored
      This patch will need to be tested by someone on OSX.
      Fixed a couple wrong names:
        CapsetID vs EventCapsetID
        gc__sync vs gc__global__sync
    • Duncan Coutts's avatar
      Emit the task-tracking events · 38397354
      Duncan Coutts authored
      Based on initial patches by Mikolaj Konarski <mikolaj@well-typed.com>
      Use the new task tracing functions traceTaskCreate/Migrate/Delete.
      There are two key places. One is for worker tasks which have a
      relatively simple life cycle. Worker tasks are created and deleted by
      the RTS. The other case is bound tasks which are either created by the
      RTS, or appear as foreign C threads making calls into the RTS. For bound
      threads we do the tracing in rts_lock/unlock, which actually covers both
      threads coming in from outside, and also bound threads made by the RTS.
    • Duncan Coutts's avatar
      Define the task-tracking events · 54c98b68
      Duncan Coutts authored
      Based on initial patches by Mikolaj Konarski <mikolaj@well-typed.com>
      These new eventlog events are to let profiling tools keep track of all
      the OS threads that belong to an RTS capability at any moment in time.
      In the RTS, OS threads correspond to the Task abstraction, so that is
      what we track. There are events for tasks being created, migrated
      between capabilities and deleted. In particular the task creation event
      also records the kernel thread id which lets us match up the OS thread
      with data collected by others tools (in the initial use case with
      Linux's perf tool, but in principle also with DTrace).
    • Simon Peyton Jones's avatar
      Merge branch 'master' of ../HEAD · 4450cc7f
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      Be careful not to look for Functor unnecessarily · c548f91f
      Simon Peyton Jones authored
      Otherwise we try to load package 'base' when
      we are compiling 'ghc-prim'.
      See Note [Getting base classes]
    • Simon Peyton Jones's avatar
      Merge branch 'master' of http://darcs.haskell.org/ghc · 8bbdab18
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      More changes to kind inference for type and class declarations · 3fe3ef50
      Simon Peyton Jones authored
      These should fix #7024 and #7022, among others.
      The main difficulty was that we were getting occ-name clashes
      between kind and type variables in TyCons, when spat into an
      interface file. The new scheme is to tidy TyCons during the
      conversoin into IfaceSyn, rather than trying to generate them
      pre-tidied, which was the already-unsatisfactory previous plan.
      There is the usual wave of refactorig as well.
    • Simon Peyton Jones's avatar
      Remove dead code · cdcd0749
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Remove dead code · 7b6b26c8
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      Comments and pretty printing · a8c9f7fc
      Simon Peyton Jones authored
    • Simon Marlow's avatar
      Parallelise clearNurseries() in the parallel GC · 713cf473
      Simon Marlow authored
      The clearNurseries() operation resets the free pointer in each nursery
      block to the start of the block, emptying the nursery.  In the
      parallel GC this was done on the main GC thread, but that's bad
      because it accesses the bdescr of every nursery block, and move all
      those cache lines onto the CPU of the main GC thread.  With large
      nurseries, this can be especially bad.  So instead we want to clear
      each nursery in its local GC thread.
      Thanks to Andreas Voellmy <andreas.voellmy@gmail.com> for idenitfying
      the issue.
      After this change and the previous patch to make the last GC a major
      one, I see these results for nofib/parallel on 8 cores:
         blackscholes          +0.0%     +0.0%     -3.7%     -3.3%     +0.3%
                coins          +0.0%     +0.0%     -5.1%     -5.0%     +0.4%
                 gray          +0.0%     +0.0%     -4.5%     -2.1%     +0.8%
               mandel          +0.0%     -0.0%     -7.6%     -5.1%     -2.3%
              matmult          +0.0%     +5.5%     -2.8%     -1.9%     -5.8%
              minimax          +0.0%     +0.0%    -10.6%    -10.5%     +0.0%
                nbody          +0.0%     -4.4%     +0.0%      0.07     +0.0%
               parfib          +0.0%     +1.0%     +0.5%     +0.9%     +0.0%
              partree          +0.0%     +0.0%     -2.4%     -2.5%     +1.7%
                 prsa          +0.0%     -0.2%     +1.8%     +4.2%     +0.0%
               queens          +0.0%     -0.0%     -1.8%     -1.4%     -4.8%
                  ray          +0.0%     -0.6%    -18.5%    -17.8%     +0.0%
             sumeuler          +0.0%     -0.0%     -3.7%     -3.7%     +0.0%
            transclos          +0.0%     -0.0%    -25.7%    -26.6%     +0.0%
                  Min          +0.0%     -4.4%    -25.7%    -26.6%     -5.8%
                  Max          +0.0%     +5.5%     +1.8%     +4.2%     +1.7%
       Geometric Mean          +0.0%     +0.1%     -6.3%     -6.1%     -0.7%