Attempt to drop the min region alignment with JDK-8337828 highlights an interesting trouble. The roots array we are creating during the dump time can easily be larger than the min region alignment. We are currently "lucky" none of our tests hit this limit. AFAICS, about 128K classes would be enough to hit the current 1M min region alignment. Dropping the min region alignment to 256K starts to fail the test with "only" 30K classes, JDK-8338856.
There might be a way to allow larger roots count. For example, we can try and slice the roots array, and thus let the individual slices be sized below min region alignment. It remains to be seen how hard is that, and what performance implications it has.
There might be a way to allow larger roots count. For example, we can try and slice the roots array, and thus let the individual slices be sized below min region alignment. It remains to be seen how hard is that, and what performance implications it has.
- blocks
-
JDK-8340166 [REDO] CDS: Trim down minimum GC region alignment
-
- Resolved
-
- is blocked by
-
JDK-8339830 CDS: Make sure headers are deterministically initialized
-
- Closed
-
- relates to
-
JDK-8341091 CDS: Segmented roots array misses roots
-
- Resolved
-
-
JDK-8340171 CDS: Enhance bitmap truncation
-
- Resolved
-
-
JDK-8337828 CDS: Trim down minimum GC region alignment
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/dc00eb87
-
Review(master) openjdk/jdk/20858
(2 links to)