On Fri, Aug 2, 2013 at 6:36 AM, David Jeske <[email protected]> wrote:

> my brain is still trying to understand the implications of Shap's comment
> about inferring the non-applicability of gc for a region..


I'm honestly not sure how useful it is in practical terms. My sketchy
thought is this:

It seems that I often have large, durable DAGs with internal pointers.
Often, there is some "master" pointer (or small set of such pointers) that
keeps the structure alive. For example, in Coyotos we have large vectors of
GPT, Process, and ObjectHeader structures. These are allocated at startup
and never shrink. These could be viewed, logically, as being allocated in a
dedicated subregion. Any pointers *other than* the master pointers,
including the internal cross-referencing pointers between these structures,
could be borrowed pointers. Since they are borrowed pointers, we can
overwrite them without any possibility of shrinking the region. The end
result that I *hope* for is to establish that this particular subregion
can't shrink, and doesn't benefit from collection. The only pointer slots
we ever need to consider in this subregion would be pointer slots to
*other* regions,
in much the same way that we consider pointers from old space to new space.

So maybe it gives us a way in *some* programs to carve up the heap into
"collection worthwhile" and "collection not worthwhile" sub-parts.

It doesn't help us with a tenured region that has slow churn, of course.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to