RFR: 8340012: [C2] assert(KlassEncodingMetaspaceMax > pd) failed: change encoding max if new encoding after 8338526

Thomas Stuefe stuefe at openjdk.org
Fri Sep 13 16:26:04 UTC 2024


On Fri, 13 Sep 2024 16:02:49 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

> > Which CPUs are affected? Only PPC64?
> 
> The C2 transformation is used on aarch64, ppc64, riscv, s390. The issue has been observed on AIX only so far. It may be possible to trigger it on other platforms by extra flags.
> 
> > use CompressedClassSpaceBaseAddress to enforce a low base address, e.g. 1GB.
> 
> Thanks for the hints! We need `CompressedKlassPointers::base() == nullptr` to trigger the problem. Otherwise, C2 will not use the transformation.

the described process should then work for ppc64, risc and s390 at least.

Update: ah, I realize the misunderstanding. 

`CompressedClassSpaceBaseAddress` is badly named. It should be named `CompressedClassSpaceStartAddress` .  It places the class space at that address, and then encoding scheme will be decided from that. With a low-placed and small class space you will get base=zero on most platforms.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20971#issuecomment-2349326342


More information about the hotspot-dev mailing list