Changes between Version 2 and Version 3 of Commentary/Rts/Storage/GC/Immix


Ignore:
Timestamp:
Nov 10, 2010 5:54:41 PM (4 years ago)
Author:
marcotmarcot
Comment:

Spelling

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Rts/Storage/GC/Immix

    v2 v3  
    2020Currently, it overwrites the [wiki:Commentary/Rts/Storage/GC/Sweeping mark/sweep algorithm].  It uses the same mark bits as [wiki:Commentary/Rts/Storage/GC/Marking mark/compact and mark/sweep], but consider these bits in groups of 32 or 64, depending on the architecture used, which are called lines.  It creates a list of free lines for each [http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC/Aging generation], and allocates on them when possible. 
    2121 
    22 As only the first part of each object in memory is marked in the [wiki:Commentary/Rts/Storage/GC/Marking bitmap], it skips the first free line for each group of subsequent lines, because it's possible that an object that starts in the previous line is using part of it.  Also, it don't deal with [wiki:Commentary/Rts/Storage/BlockAlloc blocks] that objects bigger than the size of a line, called medium sized objects, marked with `BF_MEDIUM`. 
     22As only the first part of each object in memory is marked in the [wiki:Commentary/Rts/Storage/GC/Marking bitmap], it skips the first free line for each group of subsequent lines, because it's possible that an object that starts in the previous line is using part of it.  Also, it doesn't deal with [wiki:Commentary/Rts/Storage/BlockAlloc blocks] that objects bigger than the size of a line, called medium sized objects, marked with `BF_MEDIUM`. 
    2323 
    2424The mark stack is used to ensure that the objects allocated on lines get scavenged.