Bug 100877 - MarkedBlocks should use something other than the mark bits to indicate liveness for newly allocated objects
Summary: MarkedBlocks should use something other than the mark bits to indicate livene...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Mark Hahnenberg
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-31 12:32 PDT by Mark Hahnenberg
Modified: 2012-11-02 15:14 PDT (History)
1 user (show)

See Also:


Attachments
Patch (10.21 KB, patch)
2012-10-31 12:40 PDT, Mark Hahnenberg
no flags Details | Formatted Diff | Diff
Patch (9.71 KB, patch)
2012-11-02 12:43 PDT, Mark Hahnenberg
no flags Details | Formatted Diff | Diff
Patch (9.71 KB, patch)
2012-11-02 13:06 PDT, Mark Hahnenberg
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Hahnenberg 2012-10-31 12:32:32 PDT
Currently when we canonicalize cell liveness data in MarkedBlocks, we set the mark bit for every cell in the block except for those in the free list. This allows us to consider objects that were allocated since the previous collection to be considered live until they have a chance to be properly marked by the collector.

If we want to use the mark bits to signify other types of information, e.g. using sticky mark bits for generational collection, we will have to keep track of newly allocated objects in a different fashion when we canonicalize cell liveness.

One method would be to allocate a separate set of bits while canonicalizing liveness data. These bits would track the newly allocated objects in the block separately from those objects who had already been marked. We would then check these bits, along with the mark bits, when determining liveness. At the end of the conservative scan, we then throw away these Bitmaps.
Comment 1 Mark Hahnenberg 2012-10-31 12:40:14 PDT
Created attachment 171705 [details]
Patch
Comment 2 Mark Hahnenberg 2012-11-02 12:43:35 PDT
Created attachment 172113 [details]
Patch
Comment 3 Early Warning System Bot 2012-11-02 12:53:49 PDT
Comment on attachment 172113 [details]
Patch

Attachment 172113 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14714023
Comment 4 Early Warning System Bot 2012-11-02 12:58:33 PDT
Comment on attachment 172113 [details]
Patch

Attachment 172113 [details] did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14714026
Comment 5 Mark Hahnenberg 2012-11-02 13:06:09 PDT
Created attachment 172121 [details]
Patch
Comment 6 WebKit Review Bot 2012-11-02 15:14:52 PDT
Comment on attachment 172121 [details]
Patch

Clearing flags on attachment: 172121

Committed r133358: <http://trac.webkit.org/changeset/133358>
Comment 7 WebKit Review Bot 2012-11-02 15:14:55 PDT
All reviewed patches have been landed.  Closing bug.