RFR: JDK-8061802 - REDO - Remove the generations array

Jesper Wilhelmsson jesper.wilhelmsson at oracle.com
Thu Jan 29 10:45:21 UTC 2015


Please review this second attempt to remove the generations array.

There were two bugs that caused this patch to be backed out the last time:

1. Collection of the old generation was always run even if the young collection 
freed up enough to satisfy the allocation need. This was due to an unexpected 
use of the size variable and stopped working when the code that changed the 
variable was broken out into a separate function.

2. The new _young_generation and _old_generation fields was missing from the 
declarations in vm_structs.cpp. Cut'n'paste error when the original huge change 
was split into smaller parts for easier review.

I have resolved these issues. I also moved the BiasedLocking::preserve_marks() 
since the previous change didn't preserve exactly the same behavior. And I added 
a comment in a test that caused some issues when I was debugging this.

Testing: AdHoc run of the nightly GC tests, JPRT, and JTREG

RFE: https://bugs.openjdk.java.net/browse/JDK-8061802

Webrev: http://cr.openjdk.java.net/~jwilhelm/8061802/webrev.01/

I also made an incremental webrev based on the old patch applied to a fresh 
version of the GC repo. Please note that the old patch do not apply cleanly to a 
current GC repo, but the changes in the incremental diff should cover what has 
been changed with regards to this RFE. Please refer to the full webrevs if in doubt.

Incremental webrev:

Old (buggy) webrev: http://cr.openjdk.java.net/~jwilhelm/8055702/webrev.01/

For reference, as I mentioned above the original huge change was split into 
several smaller parts. This is the first of those parts. The other can be found 


Please note that these are the old patches that applies on top of the old 
(buggy) patch above. They will not apply cleanly on top of the new patch. I'll 
update these once the first part is finalized.


More information about the hotspot-gc-dev mailing list