OSDN Git Service

Use the card marks to find gray objects during a concurrent collection.
authorCarl Shapiro <cshapiro@google.com>
Wed, 28 Jul 2010 21:12:27 +0000 (14:12 -0700)
committerCarl Shapiro <cshapiro@google.com>
Wed, 28 Jul 2010 21:45:26 +0000 (14:45 -0700)
commit106c5fd9745a47d663e28217f3dd5ac48f606f81
treee31f414ff385337a90e4f3e8a31cac9528b03de6
parent4be7dc211ba588ed83c3bb09e8020c6f7de6c438
Use the card marks to find gray objects during a concurrent collection.

Presently, the garbage collector scans the mark bits looking for gray
objects.  As of this change, only objects spanning dirty cards will be
reexamined during re-marking.

As part of this change, re-marking of roots will push objects onto the
mark stack instead of setting their mark bits.  The number of gray
roots discovered during re-marking is small.  If this changes we can
dirty the cards instead and let re-scanning push the gray objects.

Change-Id: If270812821e070d09af344edb63dfede26d10410
vm/alloc/CardTable.c
vm/alloc/CardTable.h
vm/alloc/Heap.c
vm/alloc/MarkSweep.c
vm/alloc/MarkSweep.h
vm/alloc/Visit.c