RFR: 8234338: ZGC: Improve small heap usage

Per Liden per.liden at oracle.com
Tue Nov 19 18:54:45 UTC 2019

When using small heaps (like less than 128M), the heap reserve tends to 
take up a relatively large portion of the heap. We have quite a lot of 
tests that explicitly set the heap size to small values (like -Xmx8M, 
-Xmx16M, etc). Today, these tests often fail with OOME when using ZGC. 
While ZGC isn't really that focused on tiny/small heaps, we still want 
to make testing of ZGC easy without having to adjust these tests to use 
a larger heap.

There are at least two things we can do when ZGC is given a small heap:
1) Dynamically scale the medium ZPage size, and even disable medium 
pages all together when using tiny heaps.
2) Stop using per-CPU small pages for allocations, and instead switch to 
using a single small page.

With this patch, ZGC can scale down to 8M.

Bug: https://bugs.openjdk.java.net/browse/JDK-8234338
Webrev: http://cr.openjdk.java.net/~pliden/8234338/webrev.0

Testing: Tier1-7 using ZGC. A new small heap test was also added.


More information about the hotspot-gc-dev mailing list