Review request: 8013160: NPG: Remove unnecessary mark stack draining after CodeCache::do_unloading

Stefan Karlsson stefan.karlsson at oracle.com
Wed Apr 24 20:18:21 UTC 2013


http://cr.openjdk.java.net/~stefank/8013160/webrev.00/

There's some remnants from the PermGen that's confusing in the class 
unloading code. This patch removes the unnecessary code, cleans up some 
comments and unifies the code structure over different GCs.

 From the Bug report:
---
The PermGen Removal changed CompiledICHolders from being Java objects to 
C++ objects.

CodeCache::do_unloading(...) used to take a keep_alive closure that was 
applied to CompiledICHolders deep down in nmethod::do_unloading. Since 
CompileICHolders don't move anymore, and we have other ways to keep them 
alive, we don't use the keep_alive closures in these functions anymore.

Because of this, CodeCache::do_unloading will not populate the marking 
stacks, and we can remove the call to drain the stacks after the calls 
to CodeCache::do_unloading.

This also has the neat effect that we now can verify that the marking 
has really completed before we start unloading classes, which makes the 
code easier to maintain/understand.
---

thanks,
StefanK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20130424/e2870026/attachment.htm>


More information about the hotspot-gc-dev mailing list