[kaffe] Memory Management Subsystem

Jim Pick jim@kaffe.org
16 Jun 2002 09:40:23 -0700


On Fri, 2002-06-07 at 10:07, rougeau@cs.unt.edu wrote:
>   Hi, I'm working with a research group at the University of North Texas and
> I've been tinkering around with Kaffe's gc/allocator. The main goal is to
> create a pluggable environment for the allocator and the gc so that we can
> collect data on the behavior of various gc/allocator algorithm combinations
> with ease.

Cool.  I'd like to see that.  I see that some of the other VMs out there
(Jikes RVM, ORP) have some support for pluggable gc subsystems (of
course, they're going to be radically different from Kaffe).

> Currently, however I am having difficulties just implementing a
> different allocator. Instead of allocating pages or multiple pages and then
> segregating allocation type, color, etc within them, I'm allocating on a per
> object basis and storing this information contiguous with the object itself.
> I have also removed the 'grey' list in the gc, since it serves no real
> purpose yet. So far, I am able to compile and run small programs, but get a
> ton of errors when I try to run the GCTest regression test. I'm wondering if
> Kaffe is inherently dependent somehow on how the allocator is currently
> implemented, since I have only been looking at the memory management part.

Those two parts are implemented together, so I think you really need to
look at the code for both the gc and the allocator and understand both. 
There doesn't seem to be much documentation inside Kaffe describing how
the gc subsystem is implemented and what the internal interfaces are -
so you basically have to read the code.  If you have specific questions,
the list is always helpful.

Probably the #1 thing I want to improve with Kaffe is the
documentation.  I think documenting some of the internal interfaces
would really help people who are trying to do interesting things with
the code.

Cheers,

 - Jim