JDK-8236594 : G1: Provide object pinning
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 15
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2019-12-30
  • Updated: 2024-02-23
  • Resolved: 2024-02-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdResolved
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
G1 presently uses the GCLocker mechanism to support JNI critical array and string operations.  It could instead use object pinning via region pinning.

Comments
Also we need some printing on how many pinned/evac failed regions per region type were.
14-10-2020

Given that we will likely reuse the existing evacuation failure mechanism for implementing this, change the evacuation failure handling to distinguish between real evacuation failures and pinning.
14-10-2020

Some code attempts to wait until the GCLocker is inactive, i.e. all code has left JNI critical sections to achieve maximum compaction during a VM operation. Examples are VM_GC_HeapInspection::collect and HeapShared::run_gc(). Some alternative should be found that is potentially more universal than the current code.
10-06-2020