RFR: JDK-8322943: runtime/CompressedOops/CompressedClassPointers.java fails on AIX [v2]
Goetz Lindenmaier
goetz at openjdk.org
Thu Feb 15 13:03:04 UTC 2024
On Wed, 14 Feb 2024 16:45:05 GMT, Joachim Kern <jkern at openjdk.org> wrote:
>> Even after recent fixes like
>> https://bugs.openjdk.org/browse/JDK-8305765
>> the test runtime/CompressedOops/CompressedClassPointers.java fails on AIX.
>>
>> This error results from the fact, that on AIX the shmat() allocation granularity is 256MB instead of the standard Pagesize (4KB or 64KB).
>>
>> As a solution we introduce a new method `os::vm_shm_allocation_granularity()`, which on all platforms except AIX returns the same value as `os::vm_allocation_granularity()`, but on AIX it returns (in the apropriate cases) 256MB.
>>
>> This new getter is used at all needed places instead of `os::vm_allocation_granularity()`.
>
> Joachim Kern has updated the pull request incrementally with one additional commit since the last revision:
>
> following Goetz objections
Hi,
I think this should not be named shm_allocation_granularity, or at least not the function used in os.cpp should have that name.
(A function shm_allocation_granularity is useful to deliver the base platform dependent value).
Most platforms do not use shmated memory allocation here. It should probably be pd_attempt_reserve_memory_allocation_granularity(). You could even pass the size here so the check for Use64KPagesThreshold can be used in it on AIX making it more precise.
Thanks for fixing the randomization issue.
If tests require unscaled oops, they should set either Use64KPagesThreshold very high on AIX, or disable RandomizeClassSpaceLocation. Background: On AIX, randomization fails because with shmat alignment less than 16 attach points are identified.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17708#issuecomment-1946052229
More information about the hotspot-runtime-dev
mailing list