RFR: 8308009: Generational ZGC: OOM before clearing all SoftReferences

Erik Österlund eosterlund at openjdk.org
Thu May 25 16:09:30 UTC 2023


On Wed, 24 May 2023 12:18:19 GMT, Erik Österlund <eosterlund at openjdk.org> wrote:

> When a major GC in generational ZGC with a different cause that doesn’t pre-clean and doesn’t clear soft references, we ask if there are allocations stalled on old. And part of that condition is to check if we are not stalled on young. So if an allocation request comes in just before such a “weak” major GC, we will say we won’t clear soft references. But after that major collection we will satisfy all the constraints to throw OOM as both an YC and OC has passed since the allocation request was installed.
> The solution is to let the driver remember if it cleared soft references or not, and only throw OOM if it cleared soft references.

I added an assert checking that we don't mess up pre-cleaning and a comment explaining why it holds.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14122#issuecomment-1563161226


More information about the hotspot-gc-dev mailing list