[gclist] Another question on Boehm-Demers-Weiser

Chris Smith cdsmith@adams1-182.reshall.ou.edu
Tue, 7 Jul 1998 14:49:37 -0500 (CDT)


While we're on the topic of discussing the Boehm-Demers-Weiser collector,
I have been wondering about something.  I believe Hans Boehm said earlier
that an earlier version of the collector was concurrent, but that he had
decided to make it incremental to spread work around threads more fairly.
Does one of the earlier versions still do this?  Would it be too much of a
step backwards in performance terms if I grabbed and modified a concurrent
version instead of the current version?  Are the changes that large, so
that it would take a while to retrace the collector back to its concurrent

The reason that I ask is that, because the first two generations of my VM
are collected with stop-and-copy, I would end up performing all allocation
in the Boehm collector when the entire process is suspended except for
collection.  This means that if collection is performed incrementally on
allocation, stop times would probably increase greatly with an incremental
version over a concurrent one.

Also, I'm assuming from my own intuition that it wouldn't be too difficult
to modify the collector to do precise collection based on a reference
bitmap in a per-object type descriptor (always reachable through the first
word of an object), and that it won't be much of a pain to modify the
collector to stop scanning the root set (that's scanned at stop times,
anyway, and you've gotta be at a gc point for it to be safely done.)
Would either of these tasks spawn great difficulties that anyone can


       Chris Smith      |  The right to be right is irrelevant; it's
 University of Oklahoma |  only the right to be wrong that makes you
     cd_smith@ou.edu    |                    free.
                        |       - Tom DeMarco and Timothy Lister