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.