RFR: 8365932: Implementation of JEP 516: Ahead-of-Time Object Caching with Any GC [v13]

Axel Boldt-Christmas aboldtch at openjdk.org
Thu Oct 30 07:52:08 UTC 2025


On Thu, 30 Oct 2025 07:21:48 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> FWIW the first instance of this I observed was our compiler threads. But yeah the practice to do this seems to be there for several JVM internal threads, but it does cause a nasty fatal error during initialization that I just wanted to smoothen out.
>
> I think the thought process here was that we should "never" get exceptions during these parts of VM init because the minimum heap size should ensure the VM can safely init. Hence getting an actual exception was indeed a "fatal error" because something was misconfigured - hence the EM. With AoTOC that may no longer be the case.

Interesting. So the idea is that we should at the time of the `set_init_completed();` call determine if we have a correct configuration and exit gracefully there, expecting that all future init code should succeed, and if it does not we throw a fatal. 

Currently we have a lot of "graceful" exits in initialisation code which runs between init completed and successfully returning from `Threads::create_vm`, but OOME was not one of them.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27732#discussion_r2476730154


More information about the hotspot-dev mailing list