RFR(S/M): 7132678: G1: verify that the marking bitmaps have no marks for objects over TAMS

John Cuthbertson john.cuthbertson at oracle.com
Thu May 16 17:19:57 UTC 2013

Hi Jon,

Thanks for looking at the webrev. I'll try to answer your question but, 
since the change originated with Tony, I'll be speculating.

I know that Tony preferred to use guarantee vs assert when he could. In 
routines that were not compiled out in product builds - a guarantee 
(even guarded) can affect the code generated by compiler while an assert 
will not. In that case he would use an assert. In routines that are 
completely compiled out in product builds there's no difference or 
penalty by using guarantee.


On 5/15/2013 3:11 PM, Jon Masamitsu wrote:
> John,
> Why use guarantee() here instead of a  assert()?
> http://cr.openjdk.java.net/~johnc/7132678/webrev.0/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.frames.html 
> 5945 void G1CollectedHeap::check_bitmaps(const char* caller, 
> HeapRegion* hr) {
> 5946   if (!G1VerifyBitmaps) return;
> 5947
> 5948   guarantee(verify_bitmaps(caller, hr), "bitmap verification");
> 5949 }
> check_bitmap() has a PRODUCT_RETURN.  Is this so it works in an 
> optimized build?
> Jon
> On 1/15/2013 12:10 PM, John Cuthbertson wrote:
>> Hi Everyone,
>> Can I have a couple of volunteers review the changes for this CR? The 
>> webrev can be found at: 
>> http://cr.openjdk.java.net/~johnc/7132678/webrev.0/
>> Most of the changes come from a patch that Tony gave me before he 
>> left and I had to tweak them slightly to remove a spurious failure. 
>> The changes verify that the heap regions don't have any marks between 
>> [TAMS, top) at strategic places: start and end of each GC, start and 
>> end of remark and cleanup, and when allocating a region. Tony 
>> deserves the bulk of the credit so, if possible and there are no 
>> objections, I intend to list him as author of the change and include 
>> myself as a reviewer.
>> Testing:
>> GC test suite with the both the new flags (separately and together) 
>> and a low IHOP value.
>> jprt with the new flags (+IgnoreUnrecognizedVMOptions so that product 
>> test runs did not fail).
>> Thanks,
>> JohnC

More information about the hotspot-gc-dev mailing list