Changes between Version 9 and Version 10 of Commentary/Rts/Storage/CAFs


Ignore:
Timestamp:
Oct 8, 2009 10:05:22 PM (6 years ago)
Author:
diatchki
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Rts/Storage/CAFs

    v9 v10  
    2525  * "large": if {{{srt_bitmask}}} is all 1s, then GET_FUN?_SRT contains a large bitmap, and the actual SRT.
    2626
     27
     28== Evacuating Static Objects ==
     29Files: [[GhcFile(rts/sm/GcTrhead.h)]], [[GhcFile(rts/sm/Evac.c)]], [[GhcFile(rts/sm/GC.c)]]
     30
     31While scavenging objects, we also process (aka "evacuate") any static objects that need to be kept alive.  When a GC thread discovers a live static object, it places it on its {{{static_objects}}}
     32list.  Later, this list is used to scavange the static objects, potentially finding more live objects.
     33Note that this process might find more static objects, and thus further extend the {{{static_objects}}} list.
     34
     35When a static object is scavenged, it is removed from {{{static_objects}}} and placed on another list, called {{{scavenged_static_objects}}}.  Later, we use this list to "clean up" the liveness markers from these static objects, so that we can repeat the process on the next garbage collection.
     36Note that we can't "clean up" the liveness markers as we go along because we use them to notice
     37cycles among the static objects.
     38
     39