-
Bug
-
Resolution: Unresolved
-
P4
-
None
-
None
After vmop_entry_final_mark() identifies regions of immediate garbage, the current Shenandoah implementation does in order:
entry_thread_roots()
entry_weak_refs()
entry_weak_roots()
entry_cleanup_early()
The immediate garbage is not reclaimed until entry_cleanup_early(). We may experience out-of-memory during entry_thread_roots(), entry_weak_refs(), or entry_weak_roots().
By performing entry_cleanup_early() before entry_thread_roots(), we reduce the likelihood of OOM that might cause unnecessary degenerated GC cycles.
entry_thread_roots()
entry_weak_refs()
entry_weak_roots()
entry_cleanup_early()
The immediate garbage is not reclaimed until entry_cleanup_early(). We may experience out-of-memory during entry_thread_roots(), entry_weak_refs(), or entry_weak_roots().
By performing entry_cleanup_early() before entry_thread_roots(), we reduce the likelihood of OOM that might cause unnecessary degenerated GC cycles.