RFR: Aggregated bitmap slicing

Aleksey Shipilev shade at redhat.com
Wed Oct 11 15:05:05 UTC 2017


http://cr.openjdk.java.net/~shade/shenandoah/bitmaps-uncommit-aggr/wevrev.01/

Bitmap slice uncommit works well on x86, where the default page size is 4K. But, on platforms that
have larger default page sizes, notably AArch64 that has 64K pages, current bitmap slicing drives
the minimum region size to at least 4M, and 10 min regions take 40M of Java heap. This is not
pleasant, and we can do better.

The way out is to aggregate regions per each bitmap slice: when all regions with the bitmap slice
uncommit, uncommit the bitmap slice. When at least one region is committed, commit the entire slice.
This works well for compact idle heaps.

On the plus side, this also works with UseLargePages for bitmaps!

Testing: hotspot_gc_shenandoah

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list