RFR 8150013: ParNew: Prune nmethods scavengable list
Jon Masamitsu
jon.masamitsu at oracle.com
Thu Mar 3 23:46:06 UTC 2016
Carsten,
Changes look good.
A couple of suggestions.
http://cr.openjdk.java.net/~cvarming/scavenge_nmethods_auto_prune/2/src/share/vm/code/codeCache.cpp.frames.html
661 if (is_live) {
662 // Perform cur->oops_do(f), maybe just once per nmethod.
663 f->do_code_blob(cur);
664 }
665 nmethod* const next = cur->scavenge_root_link();
666 if (fix_relocations) {
667 if (!is_live || !cur->detect_scavenge_root_oops()) {
668 unlink_scavenge_root_nmethod(cur, prev);
669 } else {
670 prev = cur;
671 }
672 }
673 cur = next;
Although this does not change the actions, I find this easier to
read. You and Tony (and whoever else wants to) can vote
on it.
if (is_live) { ... } else {
if (fix_relocations) { if (cur->detect_scavenge_root_oops()) { prev =
cur; } else { unlink_scavenge_root_nmethod(cur, prev);} } cur =
cur->scavenge_root_link(); }
Also I'd suggest a comment before the if-test
if you find it correct.
// Unless the relocations have been updated (fixed), the //
detect_scavenge_root_oops() will not be precise so skip // the check to
unlink. Note that not doing the unlinking // is safe but less optimal.
if (fix_relocations) {
The comment in the header file for fix_relocations helped
but a comment here might be helpful.
I'll sponsor.
Jon
On 2/28/2016 6:16 PM, Carsten Varming wrote:
> Dear Hotspot developers,
>
> Any chance of a review of this patch? The patch cut between 7ms and
> 10ms of every ParNew with one application at Twitter and I expect a
> 1-2ms improvement for most applications.
>
> I touch the code cache and GenCollectedHeap, so I assume I need
> reviews from both gc and compiler reviewers. Thank you Tony Printezis
> for the review (posted on the hotspot-gc-dev list).
>
> I also need a sponsor.
>
> Carsten
>
> On Fri, Feb 19, 2016 at 10:52 AM, Carsten Varming <varming at gmail.com
> <mailto:varming at gmail.com>> wrote:
>
> Dear Hotspot developers,
>
> I would like to contribute a patch for JDK-8150013
> <https://bugs.openjdk.java.net/browse/JDK-8150013>. The current
> webrev can be found here:
> http://cr.openjdk.java.net/~cvarming/scavenge_nmethods_auto_prune/2/
> <http://cr.openjdk.java.net/%7Ecvarming/scavenge_nmethods_auto_prune/2/>.
>
> Suggestions for improvements are very welcome.
>
> Carsten
>
>
More information about the hotspot-dev
mailing list