[jdk21u-dev] RFR: 8334371: [AIX] Beginning with AIX 7.3 TL1 mmap() supports 64K memory pages [v5]
Joachim Kern
jkern at openjdk.org
Tue Feb 4 10:49:53 UTC 2025
> Beginning with AIX 7.3 TL1 mmap() supports 64K memory pages. As an enhancement, during the initialization of the VM the availability of this new feature is examined. If the 64K pages are supported the VM will use mmap() with 64K pages instead of shmget()/shmat() with 64K pages due to the bad 256M alignment of shmget()/shmat().
>
> In this downport to jdk21 we want to support the new AIX 7.3 TL1 feature, but with some differences explained here:
> - `static void query_multipage_support()` in `src/hotspot/os/aix/os_aix.cpp`
> The structure of the function was changed identically in head and jdk21. Because jdk21 beforehand used trcVerbose(...) and head beforehand used log_warning(pagesize)(...) this seems to be a difference, but I just kept the tracing functions as the were before.
>
> - `src/hotspot/share/memory/virtualspace.cpp`
> Adding the use of `os::Aix::supports_64K_mmap_pages()` introduces the dependency to the header `src/hotspot/os/aix/os_aix.hpp`. In head this header was included with `#include "runtime/os.inline.hpp"` beforehand by dependant code added after jdk21. Therefore I have to include `#include "runtime/os.inline.hpp" `explicitely in virtualspace.cpp. `#include "runtime/os.hpp"` can be dropped instead.
>
> - `src/hotspot/share/runtime/os.cpp`
> Function `char* os::attempt_reserve_memory_between()` does not exist in jdk21, so I do not have to port the adoptions of head there.
>
> - `TEST_VM(os, aix_reserve_at_non_shmlba_aligned_address)` moved from `test/hotspot/gtest/runtime/test_os.cpp` to `test/hotspot/gtest/runtime/test_os_aix.cpp`
> This test function does not exist in jdk21, so there is nothing to move.
Joachim Kern has updated the pull request incrementally with one additional commit since the last revision:
runtime/os.hpp replaced by runtime/os.inline.hpp
-------------
Changes:
- all: https://git.openjdk.org/jdk21u-dev/pull/1362/files
- new: https://git.openjdk.org/jdk21u-dev/pull/1362/files/7a128fe2..8b5a6d2c
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk21u-dev&pr=1362&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk21u-dev&pr=1362&range=03-04
Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod
Patch: https://git.openjdk.org/jdk21u-dev/pull/1362.diff
Fetch: git fetch https://git.openjdk.org/jdk21u-dev.git pull/1362/head:pull/1362
PR: https://git.openjdk.org/jdk21u-dev/pull/1362
More information about the jdk-updates-dev
mailing list