Concurrent thread-stack processing in the Z Garbage Collector
summary
JEP 376 removes thread-stack scanning from safepoint pauses by deferring it to concurrent phases using stack watermarks and a per-thread thread-local poll value that triggers slow-path processing. Threads perform initial processing of three frames on wakeup; remote GC threads can incrementally process one frame under a lock while only the thread itself disarms its poll. The framework handles marking and relocation fixes, supports HotSpot and Shenandoah, and shows about an order-of-magnitude pause reduction on SPECjbb2015 (128 GB heap).
AI-written summary · about
chapters (12)
- 0:00Introduction and speaker intro
- 2:19ZGC overview and goals
- 6:55JEP 376 goals explained
- 8:19Stack watermarks concept
- 13:43Initial processing details
- 15:08Dangerous returns interception
- 23:26Inter-thread interactions
- 27:43Exception unwinding handling
- 31:14Frame processing mechanics
- 34:01Extensible framework benefits
- 34:46Evaluation and results
- 35:50Q&A session
related talks
47mConcurrent Garbage Collectors: ZGC & Shenandoah
39mZGC: The Next Generation Low-Latency Garbage Collector
49mConcurrent Garbage Collectors: ZGC & Shenandoah
01h 01mOpenJDK: In the new age of Concurrent Garbage Collectors
34mContinuations - Under the Covers
01h 32mUnderstanding Java Garbage Collection and what you can do about it
19mZ Garbage Collector: The Next Generation
46mZGC: A Scalable Low-Latency Garbage Collector
