FW: RFR(S): 8130434: [TESTBUG] Harden TestLargePageUseForAuxMemory for more page size combinations.
goetz.lindenmaier at sap.com
Mon Jul 20 09:27:18 UTC 2015
Thanks for picking this up!
> I can sponsor the change.
That's great, thank you.
> > We have a machine with page size = 64K and large page size 4M.
> > In this case heapSizeDiffForBitmap was too small to reduce the heap
> > size.
> > Due to the big value for the normal page size heap alignment is >
> > largePageSize
> > and the heap size was aligned up to the original value.
> > Error: "'G1 'Prev Bitmap': pg_sz=65536' missing from stdout/stderr"
> > Fix: consider heap alignement for heapSizeDiffForBitmap.
> I am possibly missing something here:
> So page size is 64k, large page size 4M.
> In this case, heapSizeForBitmapUsingLargePages = 4M * 64 = 256M, and
> heapSizeDiffForBitmap is (assuming allocGranularity = page size = 64k),
> max(4M (=64k * 64), 1M, 4M)
> = 4M, which does not seem to be an issue?
> Further, the use of lcm indicates that the actual reason is that in some
> of your setups, small-page-size * card size > largePageSize? It is
> possible, so this is just another try to make the test more robust?
To find out the heap alignment, I must do the same as is done in the VM.
The lcm stems from collectorPolicy.cpp:181, CollectorPolicy::compute_heap_alignment()
The VM runs with heap alignment 512*64K = 32M.
You are correct, the old test used heapSizeDiffForBitmap = 4M.
So test case6 does: heapSizeForBitmapUsingLargePages - heapSizeDiffForBitmap is 252M. Because of
the large heap alignment, this was rounded up by the VM to 256 again, failing the test. Actually,
it falls back to test case4.
After my fix,
heapSizeDiffForBitmap = 32M.
heapSizeForBitmapUsingLargePages - heapSizeDiffForBitmap is 224M
and the VM comes up with that heap size, passing the test.
Thanks and best regards,
More information about the hotspot-gc-dev