RFR (XS): 8054808: Bitmap verification sometimes fails after Full GC aborts concurrent mark

Thomas Schatzl thomas.schatzl at oracle.com
Wed Aug 27 13:24:08 UTC 2014


Hi all,

  can I have reviews for the following fix that fixes next bitmap
verification after a full gc aborted concurrent mark?

The original code to verify whether a region's next bitmap contained a
mark or not was racy: in CheckBitmapClearHRClosure::doHeapRegion the
result whether the bitmap had marks was:

    return _bitmap->getNextMarkedWordAddress(r->bottom(), r->end()) !=
r->end();

The problem is that concurrent humongous object allocation changes
HeapRegion::_end, and if that occurs between the initial evaluation for
the method call and the comparison, the checking will fail.

CR:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8054808
Webrev:
http://cr.openjdk.java.net/~tschatzl/8054808/webrev/
Testing:
Inspecting generated code, test case in the CR, jprt

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list