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

Jon Masamitsu jon.masamitsu at oracle.com
Thu May 16 22:16:55 UTC 2013

On 5/16/13 10:19 AM, John Cuthbertson wrote:
> 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.
Sounds reasonable.

Rest looks good.


> JohnC
> 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