Footnotes for Concurrent Remembered Set Refinement in Generational Garbage Collection
1. Some card marking variants increase precision by
increasing write barrier cost, for example, by filtering out
old-to-old pointers in the write barrier.
2. Note, though, that we are departing somewhat
from their terminology in this paper, and using {\it remembered set}
to refer to the general class of data structures for recording
cross-generational pointers, rather than a specific such data
structure.
3. Except that it marks the card containing the
precise location of the modified field rather than the ``imprecise''
location of the object head, which is used in H\"olzle's barrier.
H\"olzle's optimization saves an instruction and, more importantly a
register; it is more important on register-poor architectures such as
x86 than on a register-rich RISC architecture such as the SPARC.
Using precise marking simplifies our GC code.
4. The self-pointing barrier can also be considered to
produces a overflow event when it allocates a new buffer. But the
whole point of the self-pointing barrier is to avoid such allocations,
since they are triggered by dereferencing a null pointer,
which invokes a relatively expensive signal handler. So these
cannot be counted on as a reliable indicator of mutator activity.
5. As discussed previously, other mechanisms ensure
that the entire field-write/write-barrier combination is atomic with
respect to GC.
6. The term ``Java virtual machine'' means a virtual
machine for the Java\texttrademark\ platform.
7. Earlier versions of this benchmark have been
used in other studies of concurrent
[Printezis00] and parallel
[Flood01] collection.
8. This is to allow more direct comparisons; the standard
configuration of the ResearchVM allows only 2 such entries.