RFR: 8015107: NPG: Use consistent naming for metaspace concepts

Erik Helin erik.helin at oracle.com
Wed Sep 4 10:36:35 PDT 2013

Hi all,

this patch changes the name of two flags:
- -XX:+UseCompressedKlassPointers becomes
  -XX:+UseCompressedClassPointers (note the 'K' instead of the 'C')
- -XX:ClassMetaspaceSize becomes -XX:CompressedClassSpaceSize

These two flags were introduced when metaspace was merged into hs25.
To use a smaller size for the Java object headers, the pointer in the
object header that points to the Klass instance for the object can be 32
bits on a 64-bit system. Such pointers has been called compressed klass
pointers. This is the same concept as compressed oops.

For the current implementation of compressed class pointers to work, the
Klass instances need to be placed in a continuous virtual memory space.
This virtual memory space was called ClassMetaspace but this patch
introduces the name CompressedClassSpace to emphasize that the concept
is closely related to compressed klass pointers.

The 'K' in the CompressedKlassPointers and CompressedClassSpace was
changed to a 'C' since the C++ class Klass is an implementation detail
that we do not want to expose to the users.

I've also added a check in Arguments::parse that checks if the user has
set CompressedClassSpaceSize when compressed class pointers
are _not_ used. If this is the case, then the VM will print a warning. I've
also added a test that verifies this actually happens.

The change touches a lot of files, but the change in each file is very



- The jtreg tests in hotspot/test
- Newly added jtreg test


More information about the hotspot-dev mailing list