OK. Two things have me puzzled about RC-immix and immix. Both relate to coalescing (a.k.a. forwarding).
First, I don't see why they need two forwarding bits. Neither system allows mutators and collectors to run concurrently, so tri-coloring shouldn't be necessary. Can anybody explain this? Second: in *any* scheme, if mutators and (forwarding) collection are allowed to run concurrently, I don't see how to make things work without a read barrier. A mutator can be preempted by a collector immediately after loading an object pointer to the object that the collector is about to forward. Object moves, and then the mutator does an oblivious read from the stale location. It seems to me that concurrent forwarding probably requires that the origin page be unmapped in the mutator address space. Is there a trick here that I'm missing? shap
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
