Request for review: 8008079 G1: Add nextObject routine to CMBitMapRO and replace nextWord

Tao Mao tao.mao at oracle.com
Fri Feb 22 02:16:43 UTC 2013


8008079 G1: Add nextObject routine to CMBitMapRO and replace nextWord
https://jbs.oracle.com/bugs/browse/JDK-8008079

webrev:
http://cr.openjdk.java.net/~tamao/8008079/webrev.00/

changeset:
When concurrent marking scans an object, the task local finger is 
updated to point to the start of the object. If the marking task is 
asked to abort, the local finger is updated to the next word where 
another could possibly start. When the marking task is restarted, we 
restart scanning the marking bitmap from the updated local finger.

This is a safe implementation but has not been fully exploited for 
efficiency because the contents of the marking bitmap should be all 0's 
until the offset associated with the actual start of the next object. 
When the marking task is restarted, we will scan these 0's looking for 
the first set bit.

We can avoid this redundant scanning by updating the finger to and 
re-starting the scan at the actual offset where the next object starts.

testing:
passed gc-test-suite with stressing marking cycles
script:
./run.sh /home/tamao/jdk1.8.0 --bits 64 --args -tamao -XX:+UseG1GC 
-XX:InitiatingHeapOccupancyPercent=10 -XX:+UnlockDiagnosticVMOptions 
-XX:+VerifyDuringGC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20130221/bdb838b1/attachment.htm>


More information about the hotspot-gc-dev mailing list