Modifying the JVM to have a more deterministic garbage collection model

Christian Thalinger twisti at complang.tuwien.ac.at
Tue Nov 4 11:45:51 UTC 2008


On Mon, 2008-11-03 at 11:10 -0500, Tony Printezis wrote:
> Hi there,
> 
> How long will you have to do this and how familiar are you with 
> modifying JVMs? I don't mean to put you off, but implementing an RC GC 
> in HotSpot is not a trivial project. Not only you will have to implement 
> the memory management part (maybe the CMS old gen will be a good start 
> for this, given that it doesn't compact like all other GCs and RC 
> typically requires a non-moving space), but also you will have to modify 
> the JVM / interpreter / JIT to change the barriers to maintain the 
> reference counts. Modifying the JIT will be tricky (C1, the client JIT, 
> will be easier; C2, the server JIT, will be much harded). So, maybe, you 
> could do this by turning off the JIT and run interpreter-only. Look at 
> the oop_store* methods in oop.hpp to see how to change the barriers in 
> the JVM (but I think you'll still need to modify the interpreter).

My advice would be to use a simpler JVM than HotSpot.  You should
probably have a look at JamVM[1].  You could also try CACAO[2] or
Kaffe[3], but I think JamVM will be the easiest one.

[1] http://jamvm.sourceforge.net/
[2] http://www.cacaovm.org/
[3] http://www.kaffe.org/

- Christian




More information about the hotspot-gc-dev mailing list