On Thu, 29 Aug 2024 17:24:47 GMT, Markus Grönlund <mgron...@openjdk.org> wrote:
>> With UseCompressedClassPointers off, I think >> Metaspace::is_in_shared_metaspace() would still return true but I don't >> think he compression base is the bottom of the CDS archive. I asked Markus >> to have a look. > > The code supports the JfrTraceID load barrier that enqueues tagged Klass*. It > selects a more compact representation (a single word, instead of two words), > if a Klass* can be compressed (i.e. there exists a compress class scheme in > place (CompressedKlassPointers::encode(const_cast<Klass*>(klass)); AND the > traceid (u8) value is low enough to be represented by only 4 bytes). > > struct JfrEpochQueueKlassElement { > traceid id; > const Klass* klass; > }; > > struct JfrEpochQueueNarrowKlassElement { > u4 id; > narrowKlass compressed_klass; > }; // Return TRUE only if UseCompressedClassPointers is True. static bool using_class_space() { return NOT_LP64(false) LP64_ONLY(UseCompressedClassPointers); } I see now that was wrong for 32-bit. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19157#discussion_r1736779802