On Mon, 8 Dec 2025 05:01:15 GMT, David Holmes <[email protected]> wrote:

>> Thomas Stuefe has updated the pull request with a new target base due to a 
>> merge or a rebase. The pull request now contains 62 commits:
>> 
>>  - Replace Klass::_metadata union with narrowKlass member
>>  - Ivan: fix various instances of ObjLayout::undefined should assert
>>  - Ivan: Update src/hotspot/share/oops/instanceKlass.cpp
>>    
>>    Co-authored-by: Ivan Walulya <[email protected]>
>>  - David: reduce diff in ObjectCountEventVerifier.java
>>  - David: minimize change in GetObjectSizeIntrinsicsTest.java
>>  - David: minimize diffs in TestZGCWithCDS.java
>>  - David: minimize diffs for 
>> runtime/ErrorHandling/TestVMConfigInHsErrFile.java
>>  - David: revert type change in arguments.cpp
>>  - David: fix comment in metaspace
>>  - Merge branch 'master' into JDK-8363996-Obsolete-UseCompressedClassPointers
>>  - ... and 52 more: https://git.openjdk.org/jdk/compare/ffb6279c...642604ac
>
> test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointers.java line 
> 294:
> 
>> 292:     }
>> 293: 
>> 294:     public static void heapBaseMinAddressTestNoCoop() throws Exception {
> 
> It is not obvious to me why this test case was deleted.

Related to the change here: 
https://github.com/openjdk/jdk/pull/28366/changes#diff-027490ce3f4a92be9b489d9d2e54c7baaea87b7489399b198543c79f1ce1e2e3L1576

This test only worked by accident, and never made sense. 

`HeapBaseMinAddress`: in `+UseCompressedOops` mode, it forces the heap to this 
address (arguably, the name is a misnomer); failing that, it will treat it as a 
low barrier in further reservation attempts. But not always: if we cannot get 
any preferred address, we will use whatever address the OS gives us, which may 
be lower than a high value for `HeapBaseMinAddress`. (Writing this now, I think 
that should be a bug).

In `-UseCompressedClassPointers` mode, the flag does nothing. The test always 
worked because the value of 1M is so low that no OS will accidentally map into 
that area.

---

Note that it's a different question of whether we *should* honor the flag for 
`-UseCompressedOops +UseCompressedClassPointers`. Could a barrier like that be 
useful to keep the heap away from low-address regions to increase the chance 
for a low-address class space? But looking closely, probably not worth it for 
two reasons: on all 64-bit platforms, the chance of "OS-determined" mappings to 
hit the low address regions < 32GB is so rare its not worth the complexity. And 
low-address heap is more useful performance-wise than low-address class space 
anyway.

> test/hotspot/jtreg/runtime/ErrorHandling/TestVMConfigInHsErrFile.java line 59:
> 
>> 57:     switch (args[0]) {
>> 58:       case "coh-on" -> testCompactObjectHeaders();
>> 59:       case "coh-off" -> testCompressedClassPointers();
> 
> You seem to have done a complete test rewrite here and it is not obvious to 
> me it follows as part of the obsoletion of UCCP.

Okay, I reverted most of my changes and kept the diff minimal. The test could 
be cut down a lot more, though.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28366#discussion_r2781257967
PR Review Comment: https://git.openjdk.org/jdk/pull/28366#discussion_r2781772213

Reply via email to