DDR Support for Virtual Threads in JDK 21

DDR (Direct Dump Reader) is a Java implementation of the DTFJ (Diagnostic Tooling Framework for Java) API. It works by walking the J9 structures inside a dump to extract the VM and application state. It’s useful for inspecting Java objects at a certain point of execution of a program. For example, you can list all…

Collecting native stack traces on MacOS with libunwind

Eclipse OpenJ9 uses the omrintrospect library in Eclipse OMR to incorporate native stack traces in the javacores (diagnostic files). This library allows the collection of thread call stacks in a process by suspending and iterating over each thread. On MacOS, all stacks are generated using the libunwind library, a simple and efficient API for register…

Categoriesvm

Updates on Jenkins Pipeline scripts and the JCasC plugin

My name is Yingjie (Jenny) Chen and I am a computer science student from the University of Waterloo. This blog post summarizes my internship experience in the release engineering team of Eclipse OpenJ9. Modifications to Jenkins Pipeline scripts I made several enhancements to the pipelines, and I will introduce four specific examples. Reduce Intermittent Network…

Changes in Tril

This post describes my fall 2019 internship in the Eclipse OpenJ9 team. After 4-months study term at school, I was excited to return to the team. I joined the OMR team and got the chance to work on Tril (the Testarossa Intermediate Language). Tril is a Domain Specific Language (DSL) for generating the Testarossa Intermediate Language…

CategoriesUncategorized

Dynamic Threads for Scavenger GC

Background In order for Scavenger to find all live objects, it uses multiple threads and parallelizes the work as it traverses through the object trees. The number of working threads is dependent on the system: systems with more threads can use more threads to work on highly parallelized tasks. More information about this topic can…

Categoriesgc