On Thu, 29 Aug 2024 17:55:53 GMT, Markus Grönlund <mgron...@openjdk.org> wrote:
>> narrowKlass is the result of encoding Klass* with >> CompressedKlassPointers::encode() which is relative to the compressed base, >> so if UseCompressedClassPointers is false then the encoding to narrowKlass >> from some other (CDS?) base isn't valid. >> using_class_space() above doesn't look wrong for 32 bits. It should return >> false. >> >> With this patch, interface and abstract classes cannot be encoded and >> decoded to yield a valid compressed narrowKlass, since they're now allocated >> in the non-class metaspace. Yes, this now a function of which space the >> Klass resides in. We do crash for these classes in JFR without this change. > > I mean its wrong from JFRs perspective not to handle 32-bit outside of the > call to using_class_space(), because that call will always be false for > 32-bit, although the Klass* will still fit in 4-bytes. This means trying to > represent the tracied (which is always 64-bit) more effectively is skipped on > 32-bit. Looks ok from a JFR perspective, Coleen. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19157#discussion_r1736895410