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

Reply via email to