RFR: 8062943: REDO - Parallelize clearing the next mark bitmap

Marcus Larsson marcus.larsson at oracle.com
Thu Nov 6 14:53:14 UTC 2014


Hi,

Can I have some reviews for the following re-do patch to parallelize 
clearing of the next mark bitmap [1].

The previous patch would cause some asserts in 
HeapRegionManager::par_iterate() to fail because iteration was happening 
concurrently with humongous heap region reclamation. These asserts are 
invalid if iteration is performed concurrently.

With this updated patch I add a concurrent flag to the par_iterate() 
function that when set causes iteration to ignore the humongous status 
of heap regions, and simply iterate over regions one-by-one.

An alternative solution would be to just remove the special handling of 
the humongous regions altogether. Right now there are no closures that 
depend on this behavior from the par_iterate() function (they either 
ignore humongous regions or skip over continues-humongous regions). 
Future changes might however want this behavior, and the asserts are 
probably helpful in the cases they can be used, so I believe it might be 
a good idea to keep this functionality.

Webrev:
http://cr.openjdk.java.net/~mlarsson/8062943/webrev.00/

Incremental webrev from original patch:
http://cr.openjdk.java.net/~mlarsson/8062943/webrev.00-inc/

Bug:
https://bugs.openjdk.java.net/browse/JDK-8062943

Testing:
Local JTReg

Thanks,
Marcus

[1]: https://bugs.openjdk.java.net/browse/JDK-8049341


More information about the hotspot-gc-dev mailing list