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