Concurrent Scavenge Garbage Collection Policy

This post is meant to serve as a technical overview of the Concurrent Scavenge (CS) Garbage Collection (GC) policy, from the perspective of a Just-In-Time (JIT) compiler. It explains various CS and GC concepts, serving as background to later discussion on implementation details in JIT compiler’s Code Generator (CodeGen) and Optimizer, as well as the…

GC Internship: Read Barrier Verification

In the fall of 2018, I had the opportunity to intern with OpenJ9’s Garbage Collection (GC) team. OpenJ9 is a Java Virtual Machine (JVM). At the time, I was a fourth year computer engineering student at the University of Waterloo. Before working with the GC team, I had also worked in OpenJ9’s Release Engineering team….



In Eclipse OpenJ9 release Version 0.9.0, a new gcpolicy:nogc is supported for Java 8 and above. The new gcpolicy:nogc is implemented based on the requirement of JDK Enhancement Proposal 318: Epsilon: A No-Op Garbage Collector. It maintains a specific garbage collector that handles only memory allocation and heap expansion, but doesn’t actually reclaim any memory back….


Eclipse OpenJ9 in Containers

There has been a lot of talk about Java not behaving properly when running in a docker container. Many blogs like this cover the problems that Java faces in containers. Although these talks are targeting OpenJDKs that use the Hotspot JVM, such issues are mostly applicable to Eclipse OpenJ9 too. The root cause of these problems can be attributed to the fact…