RFR (S): 8132708: Add tests for Humongous objects allocation threshold

Thomas Schatzl thomas.schatzl at oracle.com
Mon Aug 24 13:31:54 UTC 2015


Hi Kirill,

On Mon, 2015-08-24 at 16:23 +0300, Kirill Zhaldybin wrote:
> Hi Thomas,
[...]
> >
> >   - MAX_CONTINIUS_SIZE_CHECK: typo in "CONTINUOUS".
> Will be fixed in next iteration.
> 
> >
> >   - I am a bit puzzled about the verification whether the object should
> > be humongous. Shouldn't the test program ask the VM whether a given
> > object is humongous or not?
> > Currently it seems to me that the test program only checks itself, since
> > it on the one hand allocates objects of varying sizes, using
> > REGION_SIZE/2 and then in allocateAndCheck again uses this same formula
> > to determine that an object is humongous.
> >
> > At most the test program seems to verify that
> > Helpers.detectByteArrayAllocationOverhead() is correct.
> >
> > In this case I would expect a whitebox method to ask the VM whether the
> > given object is a humongous object.
> 
> There are two asserts in allocateAndCheck:
> 1. We do some obscure calculations to find out exact byte array's length 
> we need to allocate largest non-humongous/smallest humongous object.
> I think it worth to double-check that we calculated right.
> The first check gets real allocation size (using white box method 
> getObjectSize(Object)) and verifies that allocation was as we expected. 
> If it's not as we expected it's likely a test bug.
> 
> 2. The second check uses White box method g1IsHumongous(Object) and 
> verifies that objects larger that a half of region are humongous and 
> other object are non-humongous (I believe that is definition for 
> humongous objects).
> 

Okay, I just overlooked that somehow. Then there is only the typo that
should be fixed.

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list