RFR: Aggregated bitmap slicing

Aleksey Shipilev shade at redhat.com
Thu Oct 12 09:26:47 UTC 2017


On 10/11/2017 05:05 PM, Aleksey Shipilev wrote:
> 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!

We have discovered some bad testing failures with this patch on aarch64, and this prompted me to
rewrite it (it is also simplified):
   http://cr.openjdk.java.net/~shade/shenandoah/bitmaps-uncommit-aggr/wevrev.02/

Testing: hotspot_gc_shenandoah (x86_64 and aarch64), footprint tests
(there are some timeouts on aarch64 that do not seem related)

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list