JEP 242: JVM Trace Events for Failed Allocations

OwnerMarcus Larsson
Created2014/10/10 02:37
Updated2015/06/25 17:29
TypeFeature
StatusClosed / Delivered
Componenthotspot / gc
ScopeJDK
Discussionhotspot dash dev at openjdk dot java dot net
EffortM
DurationM
Priority4
Reviewed byMikael Vidstedt
Endorsed byMikael Vidstedt
Release8u60
Issue8060092

Summary

Add trace events to expose information about threads that trigger garbage-collection operations and threads that are waiting for such operations to complete.

Description

We will define one new trace event. This event will be sent by threads for which an allocation has failed such that garbage collection is now required.

In the case of multiple threads triggering GCs at the same time, every thread will send the event. Only one of them will succeed in triggering a GC, however, and that thread will send a garbage collection event. This way one can trace the information about allocations waiting on a GC by looking at the allocation-requiring-gc events (the new event) preceding the garbage collection event.

The event will contain the allocation size and the id of the pending GC operation.

The performance impact of generating these events will be negligible.