Incremental GC (was RE: Projects)

Boehm, Hans hans_boehm@hp.com
Sun May 14 15:52:00 GMT 2000


GC_incremental really controls both incremental and generational collection.
A full collection just consists of

1) Clearing the mark bits (which normally doesn't happen for a minor
collection; everything surviving a single collection is implicitly
promoted).
2) A full asynchronous marking of the heap.  (In fact all asynchronous
marking currently stops the workd for about 50 msecs at the beiginning.  If
I can finish the entire collection in 50 msecs, it's done, and it avoided
some extra overhead.) 
3) A minor collection, the last part of which stops the world for a short
period.

Incremental collection currently doesn't really work on PowerPC/Linux, since
there is no VM write barrier support.  The issue is usually getting a hold
of the fault address from the signal handler.  My understanding is that
since 2.3.47, the fault address should be universally accessible through the
siginfo structure as the si_addr field.  Thus the IA64 code in os_dep.c
should work on PowerPC.  If someone would care to verify that ...

Hans    

> -----Original Message-----
> From: Corey Minyard [ mailto:minyard@acm.org ]
> Sent: Saturday, May 13, 2000 2:34 PM
> To: Boehm, Hans
> Cc: Jonathan P. Olson; Tom Tromey; green@cygnus.com;
> java-discuss@sourceware.cygnus.com
> Subject: Re: Incremental GC (was RE: Projects)
> 
> 
> Corey Minyard <minyard@acm.org> writes:
> 
> > I did try for a while to get your collector working, I looked at the
> > insides for a while so I'm a little familiar with how it works.  I
> > could not make the incremental mode collect anything at all on Linux
> > PowerPC.  It also seemed to require a full mark-and-sweep 
> periodically
> > as evidenced by the GC_full_freq variable.  We need a purely
> > incremental collector; we cannot take the delay of a full cycle.
> > 
> 
> Oops, I realized that GC_full_freq is for generational collection.  I
> had forgotten that detail, it's been a while.  Generational collection
> did not work at least on the PowerPC.  I believe incremental did work,
> it was generational that didn't work.
> 
> Corey
> 


More information about the Java mailing list