[Vm-dev] Why does updating the root table use a red zone?

Andreas Raab andreas.raab at gmx.de
Sun Sep 2 19:28:18 UTC 2007


bryce at kampjes.demon.co.uk wrote:
> I'm not sure why noteAsRoot:headerLoc: uses a red zone. Why can't it
> just not update the root table? The root table is only used for
> incremental GCs and they will perform a full GC if the root table
> has overflowed?

Yes. But a root table overflow shouldn't trigger a full GC - it should 
tenure. That's what the red zone achieves; If we hit the red zone we 
force an IGC upon next allocation which will then tenure.

> I'm asking because I had a bug in Exupery's version of this which I
> fixed by setting allocationCount on root table overflow. This appears
> to work but is there a good reason for the logic that the interpreter
> uses now?

Yes. Avoiding excessive full GCs is a good reason.

Cheers,
   - Andreas


More information about the Vm-dev mailing list