RFR: 8261268: LOAD_INSTANCE placeholders unneeded for parallelCapable class loaders
Coleen Phillimore
coleenp at openjdk.java.net
Tue Feb 9 12:29:33 UTC 2021
On Tue, 9 Feb 2021 02:33:19 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> See CR for more details. This optimizes some code for class loading.
>> Tested with tier1-6.
>
> src/hotspot/share/classfile/placeholders.cpp line 107:
>
>> 105: // Doubly-linked list of Threads per action for class/classloader pair
>> 106: // Class circularity support: links in thread before loading superclass
>> 107: // bootstrap loader support: links in a thread before load_instance_class
>
> I don't think the loader is what the comment is referring to. The reference to bootstrapsearchpath relates to this comment in SD::resolve_instance_class_or_null:
> // add placeholder entry to record loading instance class
> // Five cases:
> // All cases need to prevent modifying bootclasssearchpath
> // in parallel with a classload of same classname
I don't see any code that does this though. The code used to compute_loader_lock_object() and return NULL in JVMTI where it was modifying the bootclass search path. I wonder if that code should have a wait on the placeholder. I'll investigate.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2469
More information about the hotspot-runtime-dev
mailing list