-
Enhancement
-
Resolution: Not an Issue
-
P4
-
22
VtableStubs::entry_point() is used to query whether a given address is a vtable (or itable) stub.
It takes the global VtableStubs_lock to do so. However this is not necessary - these hashtable entries are only ever added, so a much faster store_release()/load_acquire() pair is sufficient to guarantee consistency during querying.
This is particularly important during class unloading where multiple threads do that query in parallel while cleaning CompiledICs. This can improve runtime of that part of the class unloading quite a bit.
It takes the global VtableStubs_lock to do so. However this is not necessary - these hashtable entries are only ever added, so a much faster store_release()/load_acquire() pair is sufficient to guarantee consistency during querying.
This is particularly important during class unloading where multiple threads do that query in parallel while cleaning CompiledICs. This can improve runtime of that part of the class unloading quite a bit.
- relates to
-
JDK-8317600 VtableStubs::stub_containing() table load not ordered wrt to stores
- Resolved