RFR(S) 8142436: [JVMCI] fix management of nmethod::_installed_code field

Tom Rodriguez tom.rodriguez at oracle.com
Wed Nov 11 16:32:56 UTC 2015



> On Nov 10, 2015, at 2:47 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
> Looks good.
>> On Nov 10, 2015, at 10:53 AM, Tom Rodriguez <tom.rodriguez at oracle.com <mailto:tom.rodriguez at oracle.com>> wrote:
>> http://cr.openjdk.java.net/~never/8142436/webrev/ <http://cr.openjdk.java.net/~never/8142436/webrev/>
>> nmethod::_installed_code maintains a link to the InstalledCode instance associated with an nmethod and will be cleared out once the InstalledCode reference is dead or when the nmethod becomes a zombie.  Since G1 tracks which nmethods have references into a region, special care must be take when updating this field to avoid crashes.  Barriers must be run with changing the value of this field, which wasn’t being done in maybe_invalidate_installed_code, so the clearing of that field was consolidated with barriers.   There was also an extra copy of some special logic in do_unloading_parallel that was missing the barriers, which was deleted.  Tested with Graal bootstrap running with G1 that would previously crash in G1 about 1 in 4 times.
>> tom

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20151111/7b04fb9f/attachment-0001.html>

More information about the hotspot-compiler-dev mailing list