[8u] RFR (S): Backport: JDK-8048556: Unnecessary GCLocker-initiated young GCs
johnc at azul.com
Tue Oct 15 19:16:03 UTC 2019
I’d like to contribute a back port of the changes for JDK-8048556 to jdk8u-dev/hotspot. You can find the webrev at http://cr.openjdk.java.net/~johnc/8048556/webrev.00/.
Please bare with me since it’s been a long time since I contributed to OpenJDK. I apologize for any mis-steps in advance. Andrew has said in email that he has/had added jdk8u-fix-request label to the bug entry.
As you would expect the import did not apply cleanly — mostly because of different paths so a lot had to manually back ported. The main places that needed some hand massaging were:
* minor tweaks to the comments in g1CollectedHeap.cpp and genCollectedHeap.cpp,
* setting the _full attribute in the VM_GenCollectFull operation (I suppose I should have followed the coding model in vmPSOperations.cpp and added a static is_cause_full() helper routine — I can do that if people wish),
* changing Kim’s test to use GC MXBeans and output Before GC Eden information in a test local format along with some message if the Eden use was below or above 40% of max/committed and have the test grep for the bad message.
I also manually tested using Tony P’s second test that was attached to the bug entry with the following combinations of options:
Please note that since CMS and G1 with -XX:+GCLockerInvokesConcurrent does not drop GCLocker initiated GCs we can still see GCs with under utilized Edens with these combinations.
Once everything looks OK I think I’ll have to have someone else from Azul push the actual change.
More information about the jdk8u-dev