[gclist] write barrier via VM traps

Charles Fiterman cef@geodesic.com
Tue, 27 May 1997 12:10:47 -0500


>I agree that "pseudo incremental mode" or abortable collections are cheaper
>than real incremental collections.   And they're often perfectly sufficient.
> But they're not a complete replacement for a write-barrier.  The main problem
>is that not all applications have idle time at predictable and sufficiently
>short intervals, or at all.  This is particularly a problem with multi-threaded
>applications that run a compute-bound thread in the background, while expecting
>interactive performance from a "foreground" thread.

In the problem you describe the answer is to define idle so the background
doesn't inhibit the collector. Since the background is compute-bound this
means it should be lower priority than the foreground and the collector
that supports it. True incremental mode may not help anyway.

Garbage Collection with a large number of threads is a whole new problem we
are just starting to think about. I don't think it can be done with minor
twitches on normal collector algorithms. I'm thinking about a page as object
variation on the Baker Treadmill. This involves a write barrier.

>A less serious issue is that even if there is idle time, you may run into more
>problems than necessary with programs that page, since the computation during
>idle time will most likely replace the mutator's working set, causing it to run
>more slowly when it resumes.

I'm considering a two pass collector first do the pages in ram then the pages
that were missed. This might do a pessimal job of making things worse for
the mutator. I think it needs experiment. The mutator might not need those
pages.
			-  
Charles Fiterman		Geodesic Systems
414 North Orleans Suite 410	Phone 312 832 1221 x223
Chicago IL 60610-4418		FAX   312 832 1230
				http://www.geodesic.com

A young man saw a product advertised in a magazine that said
"Guaranteed 100% effective against bugs when properly used."
He sent away and got two blocks of wood with the instructions
"Place bug on block A, strike sharply with block B." Debuggers
are like that, and you can get stung while using them. Great
Circle tries to be something better than that.