RFR: 8293182: Improve testing of CDS archive heap [v3]
Ioi Lam
iklam at openjdk.org
Fri Sep 2 04:17:59 UTC 2022
> Currently, the CDS archive heap supports a fixed set of built-in classes, specified by hard-coded lists in heapShared.cpp:
>
> https://github.com/openjdk/jdk/blob/372fc58e897d25713db0dfe289ed25c40d9a3985/src/hotspot/share/cds/heapShared.cpp#L104-L107
>
> As we plan to improve the archive heap, it becomes critical to be able to write specific test cases for different scenarios.
>
> For example, supporting LambdaForms in the CDS archive heap would require archiving enums of the type [sun.invoke.util.Wrapper](https://github.com/openjdk/jdk/blob/607612899678234c093dc644d3a40cb831c7e43b/src/java.base/share/classes/sun/invoke/util/Wrapper.java), which doesn't work yet (see [JDK-8293187](https://bugs.openjdk.org/browse/JDK-8293187)). This RFE makes it possible to develop support for sun.invoke.util.Wrapper separately, without implementing the full support of LambdaForms in a single colossal step.
>
> - Added `-XX:ArchiveHeapTestClass` to inject extra classes into the archive heap. See the test case ArchiveHeapTestClass.java for examples. For paranoia, This flag is available only in debug builds.
> - I also tighten the requirement for the type of classes that can be stored into the archive heap. E.g., we no longer allow classes outside of the `java.base` module.
Ioi Lam has updated the pull request incrementally with two additional commits since the last revision:
- clarified assert message
- @calvinccheung comments
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/10110/files
- new: https://git.openjdk.org/jdk/pull/10110/files/c8882d1d..50f4a01c
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=10110&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=10110&range=01-02
Stats: 11 lines in 3 files changed: 3 ins; 0 del; 8 mod
Patch: https://git.openjdk.org/jdk/pull/10110.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10110/head:pull/10110
PR: https://git.openjdk.org/jdk/pull/10110
More information about the hotspot-runtime-dev
mailing list