RFR: 8350550: Preload classes from AOT cache during VM bootstrap [v10]

Ioi Lam iklam at openjdk.org
Tue Sep 23 03:24:34 UTC 2025


On Tue, 23 Sep 2025 01:29:00 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   @ashu-mehra comment - AOTLinkedClassBulkLoader::link_or_init_javabase_classes() should also call exit_on_exception()
>
> src/hotspot/share/cds/aotLinkedClassBulkLoader.cpp line 97:
> 
>> 95:   }
>> 96: 
>> 97:   ClassLoaderData* loader_data = ClassLoaderData::class_loader_data(loader());
> 
> `loader_data` is not used in this method.

Removed.

> src/hotspot/share/cds/aotLinkedClassBulkLoader.hpp line 52:
> 
>> 50: //
>> 51: // [2] load_javabase_classes() and load_non_javabase_classes():
>> 52: //     This happens after some Java code is executed, to load aot-linked classes in the dynamic archive.
> 
> Previous comment say that dynamic archive is not supported.

That comment was written before AOTClassLinking was removed from dynamic archive. I have removed it.

I also added a comment about the new `link_or_init_xxx()` functions added in this PR.

> src/hotspot/share/cds/aotLinkedClassTable.hpp line 45:
> 
>> 43: 
>> 44:   Array<InstanceKlass*>* _boot1; // boot classes in java.base module
>> 45:   Array<InstanceKlass*>* _boot2; // boot classes in all other (named and unnamed) modules
> 
> Do you mean JDK's modules or user's modules too?

Currently it's not possible to use `--module-path` to add user modules to the boot loader, so the only kind of user classes that can be loaded in `boot2` are the ones from `-Xbootclasspath/a`, which are loaded from the unnamed module. I updated the comment.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26375#discussion_r2370946983
PR Review Comment: https://git.openjdk.org/jdk/pull/26375#discussion_r2370947364
PR Review Comment: https://git.openjdk.org/jdk/pull/26375#discussion_r2370948225


More information about the net-dev mailing list