RFR: 8031639: make dependency management (mostly) ci independent
roland.westrelin at oracle.com
Mon Jan 20 13:57:10 PST 2014
> Stepping back a moment, what is the requirement for VM_ENTRY here?
The compiler threads run concurrently with the GC.
You get an oop from JNIHandles::resolve(call_site) and then load its klass. The GC may run in between, move objects around and when the klass is read, what you get may be garbage.
> It does’t seem to make any real difference. In fact, the "Code Installation” time after applying the changes decreased by about 4% although it’s hard to say what the error bars are for this measurement. See the details of my mini-experiement at the end of this message.
Thanks for doing the experiments.
> I can understand that extracting the raw pointers from ciMetadata needs to be done carefully. However, the only difference this change makes is that it extracts the raw values earlier (i.e. as dependencies are recorded) instead of when they are serialized (in Dependencies::encode_content_bytes()).
If we take your change as it is then it means the ciMetadata subtree of classes are effectively deprecated and should be removed. I wonder whether we want that or not.
More information about the hotspot-compiler-dev