-
Enhancement
-
Resolution: Fixed
-
P4
-
17
-
b10
When expanding the old gen heap during young gc, that section of code is guarded by the ExpandHeap_lock. If multiple threads are out of memory (i.e. old gen PLAB), they will queue up on that lock.
Since the threads after the first getting the ExpandHeap_lock do not retry the allocation, they will blindly expand the heap again, ultimately causing a "heap expansion storm".
This not only takes lots of time, but also expands the heap unnecessarily.
Since the threads after the first getting the ExpandHeap_lock do not retry the allocation, they will blindly expand the heap again, ultimately causing a "heap expansion storm".
This not only takes lots of time, but also expands the heap unnecessarily.
- relates to
-
JDK-8260332 ParallelGC: Cooperative pretouch for oldgen expansion
-
- Open
-
-
JDK-8260044 Parallel GC: Concurrent allocation after heap expansion may cause unnecessary full gc
-
- Resolved
-